|
permlib 0.2.9
Library for permutation computations
|
Transversal base class corresponding to a base element 
#include <transversal.h>
Classes | |
| struct | TrivialAction |
| action of a PERM on unsigned long element More... | |
Public Member Functions | |
| Transversal (unsigned int n) | |
| constructor | |
| virtual | ~Transversal () |
| virtual destructor | |
| virtual PERM * | at (unsigned long val) const =0 |
| returns a transversal element | |
| virtual bool | trivialByDefinition (const PERM &x, unsigned long to) const =0 |
| true if Schreier generator constructed from x and the transversal element related to "to" is trivial by defintion | |
| virtual bool | contains (const unsigned long &val) const |
| true iff there exists a transversal element mapping | |
| std::list< unsignedlong >::const_iterator | begin () const |
| begin iterator of basic orbit | |
| std::list< unsignedlong >::const_iterator | end () const |
| end iterator of basic orbit | |
| std::pair< std::list< unsigned long >::const_iterator, std::list< unsigned long >::const_iterator > | pairIt () const |
| pair of begin, end iterator | |
| size_t | size () const |
| size of basic orbit / transversal | |
| unsigned int | n () const |
| size of the set the group is working on | |
| template<class InputIterator> | |
| void | sort (InputIterator Bbegin, InputIterator Bend) |
| sorts orbit according to order given by list of points | |
| bool | sorted () const |
| true iff orbit is sorted | |
| virtual void | orbit (unsigned long alpha, const std::list< typename PERM::ptr > &generators) |
| computes transversal based on orbit of | |
| virtual void | orbitUpdate (unsigned long alpha, const std::list< typename PERM::ptr > &generators, const typename PERM::ptr &g) |
| updates transversal based on orbit of | |
| virtual void | permute (const PERM &g, const PERM &gInv) |
| updates transversal after group generators have been conjugated by g | |
| virtual void | updateGenerators (const std::map< PERM *, typename PERM::ptr > &generatorChange) |
| updates transversal after group generators have been exchanged | |
| virtual const unsigned long & | element () const |
| returns one element of the orbit | |
Protected Member Functions | |
| virtual void | registerMove (unsigned long from, unsigned long to, const typename PERM::ptr &p) |
| stores that 'p' maps 'from' onto 'to' | |
| virtual bool | foundOrbitElement (const unsigned long &alpha, const unsigned long &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, unsigned long > | |
| void | orbit (const unsigned long &beta, const std::list< typename PERM::ptr > &generators, Action a, std::list< unsigned long > &orbitList) |
| computes orbit of beta under generators | |
| void | orbitUpdate (const unsigned long &beta, const std::list< typename PERM::ptr > &generators, const typename PERM::ptr &g, Action a, std::list< unsigned long > &orbitList) |
| updates an existing orbit of beta after one element has been added | |
Protected Attributes | |
| unsigned int | m_n |
| size of the set the group is working on | |
| std::vector< boost::shared_ptr< PERM > > | m_transversal |
| transversal elements | |
| std::list< unsigned long > | m_orbit |
| orbit elements | |
| bool | m_sorted |
| true if orbit is sorted (according to a previous sort(InputIterator, InputIterator) call | |
Friends | |
| std::ostream & | operator<< (std::ostream &out, const Transversal< PERM > &p) |
| to stream | |
Additional Inherited Members | |
| Public Types inherited from permlib::Orbit< PERM, unsigned long > | |
| typedef PERM | PERMtype |
| type of permutation used for this orbit | |
Transversal base class corresponding to a base element 
| permlib::Transversal< PERM >::Transversal | ( | unsigned int | n | ) |
constructor
| n | size of the set the group is working on |
|
pure virtual |
returns a transversal element 

Implemented in permlib::ExplicitTransversal< PERM >, permlib::SchreierTreeTransversal< PERM >, and permlib::SchreierTreeTransversal< PERMUTATION >.
|
virtual |
true iff there exists a transversal element mapping 
Implements permlib::Orbit< PERM, unsigned long >.
|
inlinevirtual |
returns one element of the orbit
Implements permlib::Orbit< PERM, unsigned long >.
|
protectedvirtual |
callback when the orbit algorithm constructs an element alpha_p from alpha and p
Implements permlib::Orbit< PERM, unsigned long >.
|
virtual |
computes transversal based on orbit of 
| alpha | |
| generators | group generators for the orbit |
Reimplemented in permlib::ShallowSchreierTreeTransversal< PERM >.
|
virtual |
updates transversal based on orbit of 
| alpha | |
| generators | group generators for the orbit |
| g | new generator that the transversal is updated for |
Reimplemented in permlib::ShallowSchreierTreeTransversal< PERM >.
|
virtual |
updates transversal after group generators have been conjugated by g
| g | permutation to conjugate |
| gInv | inverse of g for performance reasons |
Reimplemented in permlib::ExplicitTransversal< PERM >, and permlib::ShallowSchreierTreeTransversal< PERM >.
|
protectedvirtual |
stores that 'p' maps 'from' onto 'to'
Reimplemented in permlib::ExplicitTransversal< PERM >, and permlib::SchreierTreeTransversal< PERM >.
| void permlib::Transversal< PERM >::sort | ( | InputIterator | Bbegin, |
| InputIterator | Bend ) |
sorts orbit according to order given by list of points
| Bbegin | begin iterator of point list (unsigned long) inducing an order |
| Bend | end iterator of point list (unsigned long) inducing an order |
|
pure virtual |
true if Schreier generator constructed from x and the transversal element related to "to" is trivial by defintion
Implemented in permlib::ExplicitTransversal< PERM >, and permlib::SchreierTreeTransversal< PERM >.
|
inlinevirtual |
updates transversal after group generators have been exchanged
| generatorChange | map of old generators to new generators |
Reimplemented in permlib::SchreierTreeTransversal< PERM >, and permlib::ShallowSchreierTreeTransversal< PERM >.