PermLib
|
A high level interface implementing a direct product of symmetric groups. More...
#include <abstract_symmetric_product.h>
Public Member Functions | |
template<typename InputIterator > | |
AbstractSymmetricProduct (InputIterator begin, InputIterator end) | |
constructor | |
virtual AbstractPermutationGroup * | setStabilizer (const std::vector< dom_int > &s) const |
computes the stabilizer of a set | |
virtual OrbitList * | orbits () const |
computes all orbits | |
virtual OrbitList * | orbits (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 | |
Protected Member Functions | |
virtual void | transversalSizes (std::vector< unsigned long > &sizes) const |
fills a list with sizes of transversals along a stabilizer chain |
A high level interface implementing a direct product of symmetric groups.
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.
begin | begin iterator which in turn points to iterators |
end | end iterator which in turn points to iterators |
bool permlib::AbstractSymmetricProduct::isLexMinSet | ( | const std::vector< dom_int > & | setIndices, |
const std::vector< dom_int > & | rankIndices | ||
) | const [inline, virtual] |
checks whether a set is lexicographically minimal with respect to a given ordering of indices
setIndices | indices of the set for which minimality has to checked |
rankIndices | list of indices; the order of these indices defines a partial order on {1..n} |
Implements permlib::AbstractPermutationGroup.
AbstractPermutationGroup::OrbitList * permlib::AbstractSymmetricProduct::orbits | ( | const std::vector< dom_int > & | s | ) | const [inline, virtual] |
computes all orbits which contain a given set of elements
s | set of elements of which orbit has to be computed; vector must be sorted |
Implements permlib::AbstractPermutationGroup.
AbstractPermutationGroup * permlib::AbstractSymmetricProduct::setStabilizer | ( | const std::vector< dom_int > & | s | ) | const [inline, virtual] |
computes the stabilizer of a set
s | set to be stabilized |
Implements permlib::AbstractPermutationGroup.