permlib
0.2.9
Library for permutation computations
|
33 #ifndef BSGS_EXPORT_H_
34 #define BSGS_EXPORT_H_
38 #include <permlib/permutation.h>
39 #include <permlib/transversal/schreier_tree_transversal.h>
41 #include <boost/foreach.hpp>
43 namespace permlib {
namespace exports {
81 for (
unsigned int i = 0; i <
sgsSize; ++i)
84 for (
unsigned int i = 0; i <
baseSize; ++i)
105 std::map<Permutation::ptr, int> generatorMap;
111 std::copy(bsgs.B.begin(), bsgs.B.end(), data->
base);
117 data->
sgs[idx] =
new dom_int[bsgs.n];
118 std::copy(p->m_perm.begin(), p->m_perm.end(), data->
sgs[idx]);
119 generatorMap[p] = idx;
127 std::vector<int> transversalData(bsgs.n);
128 for (
unsigned int i = 0; i < bsgs.n; ++i) {
129 if (i == bsgs.B[idx]) {
152 std::map<int, Permutation::ptr> generatorMap;
158 for (
unsigned int idx = 0; idx < data->
sgsSize; ++idx) {
160 bsgs->S.push_back(perm);
161 generatorMap[idx] = perm;
167 for (
unsigned int idx = 0; idx < data->
baseSize; ++idx) {
169 for (
unsigned int i = 0; i < data->
n; ++i) {
173 }
else if (i == bsgs->B[idx]) {
188 #endif // -- BSGS_EXPORT_H_
dom_int ** sgs
strong generating set
Definition: bsgs_schreier_export.h:64
BSGS< Permutation, SchreierTreeTransversal< Permutation > > BSGSSchreier
a BSGS which uses Permutation and SchreierTreeTransversal
Definition: bsgs_schreier_export.h:94
std::list< unsigned long > m_orbit
orbit elements
Definition: transversal.h:157
export of a BSGS based on SchreierTreeTransversal
Definition: bsgs_schreier_export.h:99
dom_int * base
base
Definition: bsgs_schreier_export.h:56
dom_int baseSize
size of the base
Definition: bsgs_schreier_export.h:51
dom_int sgsSize
size of the strong generating set
Definition: bsgs_schreier_export.h:59
BSGSSchreier * importData(const BSGSSchreierData *data) const
Definition: bsgs_schreier_export.h:151
Permutation class storing all values explicitly.
Definition: permutation.h:58
BSGSSchreierData * exportData(const BSGSSchreier &bsgs) const
Definition: bsgs_schreier_export.h:104
Represents a base and strong generating set (BSGS)
Definition: bsgs.h:59
int ** transversals
transversals
Definition: bsgs_schreier_export.h:77
data structure with elementary data types to represent a BSGS based on SchreierTreeTransversal
Definition: bsgs_schreier_export.h:46
base class for import/export of a BSGS based on SchreierTreeTransversal
Definition: bsgs_schreier_export.h:92
Transversal class that stores transversal elements in a Schreier tree.
Definition: schreier_tree_transversal.h:44
boost::shared_ptr< Permutation > ptr
boost shared_ptr of this class
Definition: permutation.h:64
std::vector< boost::shared_ptr< PERM > > m_transversal
transversal elements
Definition: transversal.h:154
dom_int n
degree of the group
Definition: bsgs_schreier_export.h:48
import of a BSGS based on SchreierTreeTransversal
Definition: bsgs_schreier_export.h:146