permlib  0.2.8
Library for permutation computations
 All Classes Functions Variables Typedefs Enumerations Friends
Public Member Functions | Protected Member Functions | Protected Attributes
permlib::ShallowSchreierTreeTransversal< PERM > Class Template Reference

Transversal class that stores elements in a shallow Schreier tree. More...

#include <shallow_schreier_tree_transversal.h>

Inheritance diagram for permlib::ShallowSchreierTreeTransversal< PERM >:
permlib::SchreierTreeTransversal< PERM > permlib::Transversal< PERM > permlib::Orbit< PERM, unsigned long >

List of all members.

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 $\alpha$ under generators
virtual void orbitUpdate (unsigned long alpha, const std::list< typename PERM::ptr > &generators, const typename PERM::ptr &g)
 updates transversal based on orbit of $\alpha$ under generators where g is a new generator
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
- Public Member Functions inherited from permlib::SchreierTreeTransversal< PERM >
 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 $u$ such that $\alpha^u$ equals val
- Public Member Functions inherited from permlib::Transversal< PERM >
 Transversal (unsigned int n)
 constructor
virtual ~Transversal ()
 virtual destructor
virtual bool contains (const unsigned long &val) const
 true iff there exists a transversal element mapping $\alpha$ to val
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
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
- Protected Member Functions inherited from permlib::SchreierTreeTransversal< PERM >
virtual void registerMove (unsigned long from, unsigned long to, const typename PERM::ptr &p)
 stores that 'p' maps 'from' onto 'to'
- Protected Member Functions inherited from permlib::Transversal< PERM >
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

std::list< typename PERM::ptr > m_cubeLabels
 ordered list of group elements that are used as cube labels

Additional Inherited Members

- Public Attributes inherited from permlib::SchreierTreeTransversal< PERM >
unsigned int m_statMaxDepth
 maximal depth of tree structure representing the transversal

Detailed Description

template<class PERM>
class permlib::ShallowSchreierTreeTransversal< PERM >

Transversal class that stores elements in a shallow Schreier tree.


Member Function Documentation

template<class PERM >
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

Parameters:
generatorChangetransition map

Reimplemented from permlib::SchreierTreeTransversal< PERM >.

template<class PERM >
void permlib::ShallowSchreierTreeTransversal< PERM >::orbit ( unsigned long  alpha,
const std::list< typename PERM::ptr > &  generators 
)
virtual

computes transversal based on orbit of $\alpha$ under generators

Parameters:
alpha$\alpha$
generatorsgroup generators for the orbit

Reimplemented from permlib::Transversal< PERM >.

template<class 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 $\alpha$ under generators where g is a new generator

Parameters:
alpha$\alpha$
generatorsgroup generators for the orbit
gnew generator that the transversal is updated for

Reimplemented from permlib::Transversal< PERM >.

template<class PERM >
void permlib::ShallowSchreierTreeTransversal< PERM >::permute ( const PERM &  g,
const PERM &  gInv 
)
virtual

updates transversal after group generators have been conjugated by g

Parameters:
gpermutation to conjugate
gInvinverse of g for performance reasons

Reimplemented from permlib::Transversal< PERM >.

template<class PERM >
void permlib::ShallowSchreierTreeTransversal< PERM >::updateGenerators ( const std::map< PERM *, typename PERM::ptr > &  generatorChange)
virtual

updates transversal after group generators have been exchanged

Parameters:
generatorChangemap of old generators to new generators

Reimplemented from permlib::SchreierTreeTransversal< PERM >.


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