permlib  0.2.6
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

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

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: