permlib  0.2.9
Library for permutation computations
Public Types | Public Member Functions | List of all members
permlib::TypeRecognition< PERM, TRANSVERSAL > Class Template Reference

Class for a basic type recognition of permutation groups. More...

#include <type_recognition.h>

Public Types

typedef boost::shared_ptr< BSGS< PERM, TRANSVERSAL > > PermutationGroupPtr
 abbreviation for a pointer to a BSGS structure
 

Public Member Functions

template<class InputIterator >
 TypeRecognition (unsigned int n, InputIterator genBegin, InputIterator genEnd)
 
 TypeRecognition (const PermutationGroupPtr &bsgs)
 
GroupTypeanalyze ()
 analyzes the given group and attempts to determine the group type
 
PermutationGroupPtr bsgs () const
 returns a BSGS if one was constructed during the analysis
 
GroupTypelargeSymmetricDiagonalSubgroup (std::vector< dom_int > &orbitCharacteristic) const
 attempts to find a large diagonal subgroup of symmetric groups More...
 

Detailed Description

template<class PERM, class TRANSVERSAL = SchreierTreeTransversal<PERM>>
class permlib::TypeRecognition< PERM, TRANSVERSAL >

Class for a basic type recognition of permutation groups.

The algorithms used for recognition are partially non-deterministic, ie. they may report unknown for an otherwise known group type.

Constructor & Destructor Documentation

◆ TypeRecognition() [1/2]

template<class PERM , class TRANSVERSAL >
template<class InputIterator >
permlib::TypeRecognition< PERM, TRANSVERSAL >::TypeRecognition ( unsigned int  n,
InputIterator  genBegin,
InputIterator  genEnd 
)
Parameters
nthe degree of the permutation group to analyze
genBeginbegin-iterator to PERM::ptr-typed generators of the group to analyze
genEndend-iterator to PERM::ptr-typed generators of the group to analyze

◆ TypeRecognition() [2/2]

template<class PERM , class TRANSVERSAL >
permlib::TypeRecognition< PERM, TRANSVERSAL >::TypeRecognition ( const PermutationGroupPtr bsgs)
Parameters
bsgsgroup to analyze

Member Function Documentation

◆ largeSymmetricDiagonalSubgroup()

template<class PERM , class TRANSVERSAL >
GroupType * permlib::TypeRecognition< PERM, TRANSVERSAL >::largeSymmetricDiagonalSubgroup ( std::vector< dom_int > &  orbitCharacteristic) const

attempts to find a large diagonal subgroup of symmetric groups

Parameters
orbitCharacteristicfilled in by method. For each domain element there is an index. The value at the corresponding index is the same for all elements in the same orbit under the constructed diagonal subgroup.
Returns
diagonal subgroup of given group, may be trivial

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