36 #include <permlib/transversal/orbit.h>
41 template<
class PERM,
class PDOMAIN>
44 virtual bool contains(
const PDOMAIN& val)
const;
56 template<
class Action>
57 void orbit(
const PDOMAIN& beta,
const std::list<typename PERM::ptr> &generators, Action a);
62 virtual const PDOMAIN&
element()
const;
67 virtual bool foundOrbitElement(
const PDOMAIN& alpha,
const PDOMAIN& alpha_p,
const typename PERM::ptr& p);
70 template <
class PERM,
class PDOMAIN>
72 typename std::list<PDOMAIN>::iterator it = std::lower_bound(m_orbitList.begin(), m_orbitList.end(), alpha_p);
74 m_orbitList.insert(it, alpha_p);
80 template <
class PERM,
class PDOMAIN>
82 return std::binary_search(m_orbitList.begin(), m_orbitList.end(), val);
85 template <
class PERM,
class PDOMAIN>
86 template<
class Action>
89 std::list<PDOMAIN> orbitList;
93 template <
class PERM,
class PDOMAIN>
95 return *(m_orbitList.begin());
100 #endif // -- ORBIT_LIST_H_