permlib  0.2.9
Library for permutation computations
Public Member Functions | List of all members
permlib::PrimitivitySGSTest< TRANS > Class Template Reference

Tests a transitive group for which a strong generating set is availble for primitivity. More...

#include <primitivity_sgs_test.h>

Public Member Functions

template<typename InputIterator >
 PrimitivitySGSTest (InputIterator genBegin, InputIterator genEnd, dom_int alpha, InputIterator genStabBegin, InputIterator genStabEnd, const TRANS &U)
 
bool blockOfImprimitivity (std::vector< dom_int > *minimalBlock) const
 
bool isPrimitive () const
 

Detailed Description

template<typename TRANS>
class permlib::PrimitivitySGSTest< TRANS >

Tests a transitive group for which a strong generating set is availble for primitivity.

If group is not primitive, it can compute a minimal block.

This class implements the algorithm described in Seress: Permutation Group Algorithms, 2003. Chapter 5.5

Constructor & Destructor Documentation

◆ PrimitivitySGSTest()

template<typename TRANS >
template<typename InputIterator >
permlib::PrimitivitySGSTest< TRANS >::PrimitivitySGSTest ( InputIterator  genBegin,
InputIterator  genEnd,
dom_int  alpha,
InputIterator  genStabBegin,
InputIterator  genStabEnd,
const TRANS &  U 
)

Sets up the test

Parameters
genBeginiterator<PERM::ptr> begin for group generators
genEnditerator<PERM::ptr> end for group generators
alphaan arbitrary element of the domain the group acts on
genStabBeginiterator<PERM::ptr> begin for generators of the stabilizer of alpha in the group
genStabEnditerator<PERM::ptr> end for generators of the stabilizer of alpha in the group
Utransversal for group modulo the stabilizer of alpha

Member Function Documentation

◆ blockOfImprimitivity()

template<typename TRANS >
bool permlib::PrimitivitySGSTest< TRANS >::blockOfImprimitivity ( std::vector< dom_int > *  minimalBlock) const
Parameters
minimalBlockIf not null, this vector will be filled a (non-sorted) minimal block for the group. If the group is primitive, the vector will contain all elements of the domain.
Returns
true iff group is primitive

◆ isPrimitive()

template<typename TRANS >
bool permlib::PrimitivitySGSTest< TRANS >::isPrimitive ( ) const
inline
Returns
true iff group is primitive

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