permlib  0.2.9
Library for permutation computations
Public Member Functions | Protected Member Functions | List of all members
permlib::AbstractSymmetricProduct Class Reference

A high level interface implementing a direct product of symmetric groups. More...

#include <abstract_symmetric_product.h>

Inheritance diagram for permlib::AbstractSymmetricProduct:
permlib::AbstractPermutationGroup

Public Member Functions

template<typename InputIterator >
 AbstractSymmetricProduct (InputIterator begin, InputIterator end)
 constructor More...
 
virtual AbstractPermutationGroupsetStabilizer (const std::vector< dom_int > &s) const
 computes the stabilizer of a set More...
 
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 More...
 
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 More...
 
virtual AbstractGroupType type () const
 implementation type of this abstract class
 
- 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
 

Additional Inherited Members

- 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
 

Detailed Description

A high level interface implementing a direct product of symmetric groups.

Constructor & Destructor Documentation

◆ AbstractSymmetricProduct()

template<typename InputIterator >
permlib::AbstractSymmetricProduct::AbstractSymmetricProduct ( InputIterator  begin,
InputIterator  end 
)
inline

constructor

The group is constructed from a list of lists. Each inner list contains an orbit of indices on which a symmetric group acts.

Parameters
beginbegin iterator which in turn points to iterators
endend iterator which in turn points to iterators

Member Function Documentation

◆ isLexMinSet()

bool permlib::AbstractSymmetricProduct::isLexMinSet ( const std::vector< dom_int > &  setIndices,
const std::vector< dom_int > &  rankIndices 
) const
inlinevirtual

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()

AbstractPermutationGroup::OrbitList * permlib::AbstractSymmetricProduct::orbits ( const std::vector< dom_int > &  s) const
inlinevirtual

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()

AbstractPermutationGroup * permlib::AbstractSymmetricProduct::setStabilizer ( const std::vector< dom_int > &  s) const
inlinevirtual

computes the stabilizer of a set

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

Implements permlib::AbstractPermutationGroup.


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