33#ifndef KNOWNBSGSCONSTRUCTION_H_
34#define KNOWNBSGSCONSTRUCTION_H_
36#include <permlib/construct/base_construction.h>
37#include <permlib/bsgs.h>
42template <
class PERM,
class TRANS>
58 template <
class ForwardIterator,
class InputIterator>
59 BSGS<PERM, TRANS> construct(ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, InputIterator knownBaseBegin, InputIterator knownBaseEnd)
const;
66template <
class PERM,
class TRANS>
72template <
class PERM,
class TRANS>
73template <
class ForwardIterator,
class InputIterator>
75 ::construct(ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, InputIterator knownBaseBegin, InputIterator knownBaseEnd)
const
77 const unsigned int &n = this->m_n;
79 std::vector<std::list<typename PERM::ptr> > S;
80 this->setup(generatorsBegin, generatorsEnd, knownBaseBegin, knownBaseEnd, ret, S);
81 BOOST_ASSERT( S.size() > 0 );
84 ret.
S.insert(ret.
S.end(), S[0].begin(), S[0].end());
base class for BSGS construction algorithms
Definition base_construction.h:46
BSGS construction from a known base and strong generating set.
Definition known_bsgs_construction.h:43
BSGS< PERM, TRANS > construct(ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, InputIterator knownBaseBegin, InputIterator knownBaseEnd) const
sets up a BSGS data structure for a known base and strong generating set
Definition known_bsgs_construction.h:75
KnownBSGSConstruction(unsigned int n)
constructor
Definition known_bsgs_construction.h:67
PERMlist S
strong generating set
Definition bsgs_core.h:57
Represents a base and strong generating set (BSGS)
Definition bsgs.h:89