33 #ifndef KNOWNBSGSCONSTRUCTION_H_
34 #define KNOWNBSGSCONSTRUCTION_H_
36 #include <permlib/construct/base_construction.h>
37 #include <permlib/bsgs.h>
42 template <
class PERM,
class TRANS>
58 template <
class ForwardIterator,
class InputIterator>
59 BSGS<PERM, TRANS> construct(ForwardIterator generatorsBegin, ForwardIterator generatorsEnd, InputIterator knownBaseBegin, InputIterator knownBaseEnd)
const;
66 template <
class PERM,
class TRANS>
72 template <
class PERM,
class TRANS>
73 template <
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