permlib 0.2.9
Library for permutation computations
Loading...
Searching...
No Matches
permlib::OrbitList< PERM, PDOMAIN > Class Template Reference

stores an orbit in a sorted list More...

#include <orbit_list.h>

Inheritance diagram for permlib::OrbitList< PERM, PDOMAIN >:
permlib::Orbit< PERM, PDOMAIN >

Public Member Functions

virtual bool contains (const PDOMAIN &val) const
 true iff there exists a transversal element mapping $\alpha$ to val
 
bool empty () const
 true iff orbit is empty (i.e. contains no element at all)
 
template<class Action>
void orbit (const PDOMAIN &beta, const std::list< typename PERM::ptr > &generators, Action a)
 computes orbit of beta under generators
 
size_t size () const
 number of orbit elements
 
virtual const PDOMAIN & element () const
 returns one element of the orbit
 

Protected Member Functions

virtual bool foundOrbitElement (const PDOMAIN &alpha, const PDOMAIN &alpha_p, const typename PERM::ptr &p)
 callback when the orbit algorithm constructs an element alpha_p from alpha and p
 
- Protected Member Functions inherited from permlib::Orbit< PERM, PDOMAIN >
template<class Action>
void orbit (const PDOMAIN &beta, const std::list< typename PERM::ptr > &generators, Action a, std::list< PDOMAIN > &orbitList)
 computes orbit of beta under generators
 
template<class Action>
void orbitUpdate (const PDOMAIN &beta, const std::list< typename PERM::ptr > &generators, const typename PERM::ptr &g, Action a, std::list< PDOMAIN > &orbitList)
 updates an existing orbit of beta after one element has been added
 

Protected Attributes

std::list< PDOMAIN > m_orbitList
 orbit elements as set
 

Additional Inherited Members

- Public Types inherited from permlib::Orbit< PERM, PDOMAIN >
typedef PERM PERMtype
 type of permutation used for this orbit
 

Detailed Description

template<class PERM, class PDOMAIN>
class permlib::OrbitList< PERM, PDOMAIN >

stores an orbit in a sorted list

Member Function Documentation

◆ contains()

template<class PERM, class PDOMAIN>
bool permlib::OrbitList< PERM, PDOMAIN >::contains ( const PDOMAIN & val) const
inlinevirtual

true iff there exists a transversal element mapping $\alpha$ to val

Implements permlib::Orbit< PERM, PDOMAIN >.

◆ element()

template<class PERM, class PDOMAIN>
const PDOMAIN & permlib::OrbitList< PERM, PDOMAIN >::element ( ) const
inlinevirtual

returns one element of the orbit

Implements permlib::Orbit< PERM, PDOMAIN >.

◆ foundOrbitElement()

template<class PERM, class PDOMAIN>
bool permlib::OrbitList< PERM, PDOMAIN >::foundOrbitElement ( const PDOMAIN & alpha,
const PDOMAIN & alpha_p,
const typename PERM::ptr & p )
inlineprotectedvirtual

callback when the orbit algorithm constructs an element alpha_p from alpha and p

Returns
true iff alpha_p is a new element that has not been seen before

Implements permlib::Orbit< PERM, PDOMAIN >.

◆ orbit()

template<class PERM, class PDOMAIN>
template<class Action>
void permlib::OrbitList< PERM, PDOMAIN >::orbit ( const PDOMAIN & beta,
const std::list< typename PERM::ptr > & generators,
Action a )
inline

computes orbit of beta under generators

Parameters
beta
generators
a()-callable structure that defines how a PERM acts on a PDOMAIN-element
See also
Transversal::TrivialAction

The documentation for this class was generated from the following file: