permlib
0.2.9
Library for permutation computations
|
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) | |
GroupType * | analyze () |
analyzes the given group and attempts to determine the group type | |
PermutationGroupPtr | bsgs () const |
returns a BSGS if one was constructed during the analysis | |
GroupType * | largeSymmetricDiagonalSubgroup (std::vector< dom_int > &orbitCharacteristic) const |
attempts to find a large diagonal subgroup of symmetric groups More... | |
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.
permlib::TypeRecognition< PERM, TRANSVERSAL >::TypeRecognition | ( | unsigned int | n, |
InputIterator | genBegin, | ||
InputIterator | genEnd | ||
) |
n | the degree of the permutation group to analyze |
genBegin | begin-iterator to PERM::ptr-typed generators of the group to analyze |
genEnd | end-iterator to PERM::ptr-typed generators of the group to analyze |
permlib::TypeRecognition< PERM, TRANSVERSAL >::TypeRecognition | ( | const PermutationGroupPtr & | bsgs | ) |
bsgs | group to analyze |
GroupType * permlib::TypeRecognition< PERM, TRANSVERSAL >::largeSymmetricDiagonalSubgroup | ( | std::vector< dom_int > & | orbitCharacteristic | ) | const |
attempts to find a large diagonal subgroup of symmetric groups
orbitCharacteristic | filled 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. |