permlib::RandomSchreierSimsConstruction< PERM, TRANS > Class Template Reference

BSGS construction with Random Schreier-Sims algorithm. More...

#include <random_schreier_sims_construction.h>

Inheritance diagram for permlib::RandomSchreierSimsConstruction< PERM, TRANS >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 RandomSchreierSimsConstruction (uint n, RandomGenerator< PERM > *rng, ulong knownOrder=0)
 constructor
template<class ForwardIterator >
BSGS< PERM, TRANS > construct (ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, bool &guaranteedBSGS) const
 constructs a probable BSGS for group given by generators with no base prescribed
template<class ForwardIterator , class InputIterator >
BSGS< PERM, TRANS > construct (ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, InputIterator prescribedBaseBegin, InputIterator prescribedBaseEnd, bool &guaranteedBSGS) const
 constructs a probable BSGS for group given by generators respecting prescribed base elements
 RandomSchreierSimsConstruction (uint n, RandomGenerator< PERM > *rng, ulong knownOrder=0)
 constructor
template<class ForwardIterator >
BSGS< PERM, TRANS > construct (ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, bool &guaranteedBSGS) const
 constructs a probable BSGS for group given by generators with no base prescribed
template<class ForwardIterator , class InputIterator >
BSGS< PERM, TRANS > construct (ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, InputIterator prescribedBaseBegin, InputIterator prescribedBaseEnd, bool &guaranteedBSGS) const
 constructs a probable BSGS for group given by generators respecting prescribed base elements

Public Attributes

uint m_statRandomElementsConsidered
 number of Schreier generators examined during the last construct call

Static Public Attributes

static const uint minimalConsecutiveSiftingElementCount = 20
 number of elements that have to sift through constructed BSGS consecutively that it is returned as a probable BSGS
static const uint maxIterationFactor = 10000
 factor limiting the number of maximal iterations depeding on the initial base size

Detailed Description

template<class PERM, class TRANS>
class permlib::RandomSchreierSimsConstruction< PERM, TRANS >

BSGS construction with Random Schreier-Sims algorithm.

Randomized algorithm for BSGS construction. If order is known it is Las Vegas type, otherwise Monte Carlo (it may return an incomplete BSGS).


Constructor & Destructor Documentation

template<class PERM , class TRANS >
permlib::RandomSchreierSimsConstruction< PERM, TRANS >::RandomSchreierSimsConstruction ( uint  n,
RandomGenerator< PERM > *  rng,
ulong  knownOrder = 0 
) [inline]

constructor

Parameters:
n cardinality of the set the group is acting on
rng a RandomGenerator generating uniformly distributed random group elements of the group that the BSGS is constructed of
knownOrder order of the group that the BSGS is constructed of. If non-zero upgrades algorithm to Las Vegas type and the output is guaranteed to be a BSGS.
template<class PERM , class TRANS >
permlib::RandomSchreierSimsConstruction< PERM, TRANS >::RandomSchreierSimsConstruction ( uint  n,
RandomGenerator< PERM > *  rng,
ulong  knownOrder = 0 
)

constructor

Parameters:
n cardinality of the set the group is acting on
rng a RandomGenerator generating uniformly distributed random group elements of the group that the BSGS is constructed of
knownOrder order of the group that the BSGS is constructed of. If non-zero upgrades algorithm to Las Vegas type and the output is guaranteed to be a BSGS.

Member Function Documentation

template<class PERM , class TRANS >
template<class ForwardIterator , class InputIterator >
BSGS<PERM, TRANS> permlib::RandomSchreierSimsConstruction< PERM, TRANS >::construct ( ForwardIterator  generatorsBegin,
ForwardIterator  generatorsEnd,
InputIterator  prescribedBaseBegin,
InputIterator  prescribedBaseEnd,
bool &  guaranteedBSGS 
) const [inline]

constructs a probable BSGS for group given by generators respecting prescribed base elements

runs (#{size of initial base} * maxIterationFactor) iterations or until constructed BSGS has knownOrder or minimalConsecutiveSiftingElementCount sift through the constructed BSGS consecutively

Parameters:
generatorsBegin begin iterator of group generators of type PERM
generatorsEnd end iterator of group generators of type PERM
prescribedBaseBegin begin iterator of prescribed base of type ulong
prescribedBaseEnd end iterator of prescribed base of type ulong
guaranteedBSGS iff true, return object is guaranteed to be a BSGS
template<class PERM , class TRANS >
template<class ForwardIterator >
BSGS<PERM, TRANS> permlib::RandomSchreierSimsConstruction< PERM, TRANS >::construct ( ForwardIterator  generatorsBegin,
ForwardIterator  generatorsEnd,
bool &  guaranteedBSGS 
) const [inline]

constructs a probable BSGS for group given by generators with no base prescribed

See also:
construct(ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, InputIterator prescribedBaseBegin, InputIterator prescribedBaseEnd, bool& guaranteedBSGS)
template<class PERM , class TRANS >
template<class ForwardIterator , class InputIterator >
BSGS< PERM, TRANS > permlib::RandomSchreierSimsConstruction< PERM, TRANS >::construct ( ForwardIterator  generatorsBegin,
ForwardIterator  generatorsEnd,
InputIterator  prescribedBaseBegin,
InputIterator  prescribedBaseEnd,
bool &  guaranteedBSGS 
) const [inline]

constructs a probable BSGS for group given by generators respecting prescribed base elements

runs (#{size of initial base} * maxIterationFactor) iterations or until constructed BSGS has knownOrder or minimalConsecutiveSiftingElementCount sift through the constructed BSGS consecutively

Parameters:
generatorsBegin begin iterator of group generators of type PERM
generatorsEnd end iterator of group generators of type PERM
prescribedBaseBegin begin iterator of prescribed base of type ulong
prescribedBaseEnd end iterator of prescribed base of type ulong
guaranteedBSGS iff true, return object is guaranteed to be a BSGS
template<class PERM , class TRANS >
template<class ForwardIterator >
BSGS< PERM, TRANS > permlib::RandomSchreierSimsConstruction< PERM, TRANS >::construct ( ForwardIterator  generatorsBegin,
ForwardIterator  generatorsEnd,
bool &  guaranteedBSGS 
) const [inline]

constructs a probable BSGS for group given by generators with no base prescribed

See also:
construct(ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, InputIterator prescribedBaseBegin, InputIterator prescribedBaseEnd, bool& guaranteedBSGS)

The documentation for this class was generated from the following files:
Generated on Fri Jun 18 21:59:32 2010 for PermLib by  doxygen 1.6.3