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
core data of a base and strong generating set (BSGS)
Definition: bsgs_core.h:42
dom_int n
degree of group
Definition: bsgs_core.h:61
std::vector< dom_int > B
base
Definition: bsgs_core.h:55
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