permlib
0.2.8
Library for permutation computations
|
Transversal class that stores elements in a shallow Schreier tree. More...
#include <shallow_schreier_tree_transversal.h>
Public Member Functions | |
ShallowSchreierTreeTransversal (unsigned int n) | |
constructor | |
virtual void | orbit (unsigned long beta, 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 | updateGenerators (const std::map< PERM *, typename PERM::ptr > &generatorChange) |
updates transversal after group generators have been exchanged More... | |
ShallowSchreierTreeTransversal < PERM > | clone (const std::map< PERM *, typename PERM::ptr > &generatorChange) const |
returns a clone of this transversal More... | |
virtual void | permute (const PERM &g, const PERM &gInv) |
updates transversal after group generators have been conjugated by g More... | |
![]() | |
SchreierTreeTransversal (unsigned int n) | |
constructor | |
virtual bool | trivialByDefinition (const PERM &x, unsigned long to) const |
true if Schreier generator constructed from x and the transversal element related to "to" is trivial by defintion | |
virtual PERM * | at (unsigned long val) const |
returns a transversal element ![]() ![]() | |
SchreierTreeTransversal< PERM > | clone (const std::map< PERM *, typename PERM::ptr > &generatorChange) const |
returns a clone of this transversal More... | |
![]() | |
Transversal (unsigned int n) | |
constructor More... | |
virtual | ~Transversal () |
virtual destructor | |
virtual bool | contains (const unsigned long &val) const |
true iff there exists a transversal element mapping ![]() | |
std::list< unsigned long > ::const_iterator | begin () const |
begin iterator of basic orbit | |
std::list< unsigned long > ::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 More... | |
bool | sorted () const |
true iff orbit is sorted | |
virtual const unsigned long & | element () const |
returns one element of the orbit | |
Protected Member Functions | |
void | addNewCubeLabel (unsigned long beta, const PERM &s, const unsigned long &beta_prime) |
adds a new cube label where s maps beta_prime to a point that has no transversal element yet | |
![]() | |
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 More... | |
![]() | |
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 More... | |
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 More... | |
Protected Attributes | |
std::list< typename PERM::ptr > | m_cubeLabels |
ordered list of group elements that are used as cube labels | |
Additional Inherited Members | |
![]() | |
typedef PERM | PERMtype |
type of permutation used for this orbit | |
![]() | |
unsigned int | m_statMaxDepth |
maximal depth of tree structure representing the transversal | |
Transversal class that stores elements in a shallow Schreier tree.
ShallowSchreierTreeTransversal< PERM > permlib::ShallowSchreierTreeTransversal< PERM >::clone | ( | const std::map< PERM *, typename PERM::ptr > & | generatorChange) | const |
returns a clone of this transversal
the group generators that the clone may use are given by the transition map
generatorChange | transition map |
|
virtual |
computes transversal based on orbit of under generators
alpha | ![]() |
generators | group generators for the orbit |
Reimplemented from permlib::Transversal< PERM >.
|
virtual |
updates transversal based on orbit of under generators where g is a new generator
alpha | ![]() |
generators | group generators for the orbit |
g | new generator that the transversal is updated for |
Reimplemented from permlib::Transversal< PERM >.
|
virtual |
updates transversal after group generators have been conjugated by g
g | permutation to conjugate |
gInv | inverse of g for performance reasons |
Reimplemented from permlib::Transversal< PERM >.
|
virtual |
updates transversal after group generators have been exchanged
generatorChange | map of old generators to new generators |
Reimplemented from permlib::SchreierTreeTransversal< PERM >.