permlib
0.2.6
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 | |
ShallowSchreierTreeTransversal < PERM > | clone (const std::map< PERM *, typename PERM::ptr > &generatorChange) const |
returns a clone of this transversal | |
virtual void | permute (const PERM &g, const PERM &gInv) |
updates transversal after group generators have been conjugated by g | |
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 | |
Protected Attributes | |
std::list< typename PERM::ptr > | m_cubeLabels |
ordered list of group elements that are used as cube labels |
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 |
Reimplemented from permlib::SchreierTreeTransversal< PERM >.
void permlib::ShallowSchreierTreeTransversal< PERM >::orbit | ( | unsigned long | alpha, |
const std::list< typename PERM::ptr > & | generators | ||
) | [virtual] |
computes transversal based on orbit of under generators
alpha | ![]() |
generators | group generators for the orbit |
Reimplemented from permlib::Transversal< PERM >.
void permlib::ShallowSchreierTreeTransversal< PERM >::orbitUpdate | ( | unsigned long | alpha, |
const std::list< typename PERM::ptr > & | generators, | ||
const typename PERM::ptr & | g | ||
) | [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 >.
void permlib::ShallowSchreierTreeTransversal< PERM >::permute | ( | const PERM & | g, |
const PERM & | gInv | ||
) | [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 >.
void permlib::ShallowSchreierTreeTransversal< PERM >::updateGenerators | ( | const std::map< PERM *, typename PERM::ptr > & | generatorChange | ) | [virtual] |
updates transversal after group generators have been exchanged
generatorChange | map of old generators to new generators |
Reimplemented from permlib::SchreierTreeTransversal< PERM >.