33#ifndef SYMMETRICGROUP_H_
34#define SYMMETRICGROUP_H_
36#include <permlib/bsgs_core.h>
37#include <permlib/transversal/symmetric_group_transversal.h>
39#include <boost/shared_ptr.hpp>
72 BOOST_ASSERT(this->
n > 0);
74 for (
unsigned int i = 0; i < this->
n; ++i) {
77 if (i <
static_cast<unsigned int>(this->n-1)) {
78 boost::shared_ptr<PERM> gen(
new PERM(this->n));
79 gen->setTransposition(i, i+1);
88 const unsigned long& n2 = symGroup.
n;
90 for (
unsigned int i = 0; i < n2; ++i) {
94 boost::shared_ptr<PERM> gen(
new PERM(n2));
95 gen->setTransposition(i, i+1);
111 BOOST_ASSERT(symGroup.
n == this->n);
transversal of a symmetric group
Definition symmetric_group_transversal.h:45
dom_int n
Definition bsgs_core.h:61
std::vector< TRANS > U
transversals along the stabilizer chain
Definition bsgs_core.h:59
std::vector< dom_int > B
base
Definition bsgs_core.h:55
PERMlist S
strong generating set
Definition bsgs_core.h:57
BSGSCore(unsigned int id)
Definition bsgs_core.h:73
int m_id
id of this BSGS instance
Definition bsgs_core.h:81
representation of a symmetric group
Definition symmetric_group.h:52
virtual bool isSymmetricGroup() const
true if this structure represents a symmetric group
Definition symmetric_group.h:63
SymmetricGroup(unsigned int n)
constructs a symmetric group of degree n
Definition symmetric_group.h:69
SymmetricGroup & operator=(const SymmetricGroup< PERM > &symGroup)
assignment operator
Definition symmetric_group.h:109
SymmetricGroupTransversal< PERM > TRANS
transversal type used for the BSGS representation
Definition symmetric_group.h:61