Cycle need to fulfill the interface:
CycleArchetype { void flip(VertexType,VertexType); VertexIterator vbegin(VertexType v); VertexIterator vbegin(); VertexIterator vend(); }
CycleElem and VertexIterator types are provided through paal::data_structures::CycleTraits and are detected automatically.
The library provide one very simple implementation of cycle that is paal::data_structures::SimpleCycle. Also cycle vesion based on the splay tree is included (see paal::data_structures::SplayCycle). Note that SplayCycle is going to work better than SimpleCycle only for sufficiently big isntances. For instances of size 10000 smaller we recomend using SimpleCycle.