permlib 0.2.9
Library for permutation computations
Loading...
Searching...
No Matches
permlib::AbstractBSGS< TRANS > Class Template Reference

A high level interface implementing a group represented by a BSGS data structure. More...

#include <abstract_bsgs.h>

Inheritance diagram for permlib::AbstractBSGS< TRANS >:
permlib::AbstractPermutationGroup

Public Types

typedef BSGS< typename TRANS::PERMtype, TRANSPermutationGroup
 typedef for the BSGS type associated with this group
 
- Public Types inherited from permlib::AbstractPermutationGroup
typedef std::list< std::set< dom_int > > OrbitList
 typedef for a list of orbits, each of which is a set
 

Public Member Functions

 AbstractBSGS (const boost::shared_ptr< PermutationGroup > &bsgs_, bool computeSupport=true)
 constructor
 
virtual AbstractPermutationGroupsetStabilizer (const std::vector< dom_int > &s) const
 computes the stabilizer of a set
 
virtual OrbitListorbits () const
 computes all orbits
 
virtual OrbitListorbits (const std::vector< dom_int > &s) const
 computes all orbits which contain a given set of elements
 
virtual bool isLexMinSet (const std::vector< dom_int > &setIndices, const std::vector< dom_int > &rankIndices) const
 checks whether a set is lexicographically minimal with respect to a given ordering of indices
 
virtual AbstractGroupType type () const
 implementation type of this abstract class
 
std::list< typename TRANS::PERMtype::ptr > generators () const
 strong generating set of this permutation group
 
const boost::shared_ptr< PermutationGroupbsgs () const
 BSGS data structure for this permutation group.
 
template<typename Iterator>
AbstractPermutationGroup::OrbitListorbits (Iterator begin, Iterator end) const
 
- Public Member Functions inherited from permlib::AbstractPermutationGroup
virtual ~AbstractPermutationGroup ()
 destructor
 
template<typename Integer>
Integer order () const
 order of the group
 
boost::uint64_t order () const
 order of the group
 

Protected Member Functions

virtual void transversalSizes (std::vector< unsigned long > &sizes) const
 fills a list with sizes of transversals along a stabilizer chain
 
template<typename Iterator>
OrbitListorbits (Iterator begin, Iterator end) const
 
helpers::BaseSupportRestrictionsupportRestriction (const std::vector< dom_int > &s) const
 returns a strategy to decide whether the action of this group is trivial on /s/
 

Detailed Description

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

A high level interface implementing a group represented by a BSGS data structure.

Constructor & Destructor Documentation

◆ AbstractBSGS()

template<typename TRANS>
permlib::AbstractBSGS< TRANS >::AbstractBSGS ( const boost::shared_ptr< PermutationGroup > & bsgs_,
bool computeSupport = true )

constructor

Parameters
bsgs_the BSGS data structure that represents this group
computeSupportif true, the support of the group is computed to accelerate stabilizer and lexMin computations

Member Function Documentation

◆ isLexMinSet()

template<class TRANS>
bool permlib::AbstractBSGS< TRANS >::isLexMinSet ( const std::vector< dom_int > & setIndices,
const std::vector< dom_int > & rankIndices ) const
virtual

checks whether a set is lexicographically minimal with respect to a given ordering of indices

Parameters
setIndicesindices of the set for which minimality has to checked
rankIndiceslist of indices; the order of these indices defines a partial order on {1..n}
Returns
true iff set is minimal with respect to given ordering

Implements permlib::AbstractPermutationGroup.

◆ orbits() [1/2]

template<class TRANS>
AbstractPermutationGroup::OrbitList * permlib::AbstractBSGS< TRANS >::orbits ( ) const
virtual

computes all orbits

Implements permlib::AbstractPermutationGroup.

◆ orbits() [2/2]

template<class TRANS>
AbstractPermutationGroup::OrbitList * permlib::AbstractBSGS< TRANS >::orbits ( const std::vector< dom_int > & s) const
virtual

computes all orbits which contain a given set of elements

Parameters
sset of elements of which orbit has to be computed; vector must be sorted
Returns
all orbits of the group which contain an elements from s

Implements permlib::AbstractPermutationGroup.

◆ setStabilizer()

template<class TRANS>
AbstractPermutationGroup * permlib::AbstractBSGS< TRANS >::setStabilizer ( const std::vector< dom_int > & s) const
virtual

computes the stabilizer of a set

Parameters
sset to be stabilized
Returns
stabilizer; may return this if set is already stabilized

Implements permlib::AbstractPermutationGroup.

◆ transversalSizes()

template<class TRANS>
void permlib::AbstractBSGS< TRANS >::transversalSizes ( std::vector< unsigned long > & sizes) const
protectedvirtual

fills a list with sizes of transversals along a stabilizer chain

Implements permlib::AbstractPermutationGroup.

◆ type()

template<typename TRANS>
virtual AbstractGroupType permlib::AbstractBSGS< TRANS >::type ( ) const
inlinevirtual

implementation type of this abstract class

Implements permlib::AbstractPermutationGroup.


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