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 n
degree of group
Definition: bsgs_core.h:61
BSGS< Permutation, SchreierTreeTransversal< Permutation > > BSGSSchreier
a BSGS which uses Permutation and SchreierTreeTransversal
Definition: bsgs_schreier_export.h:94
BSGSSchreierData * exportData(const BSGSSchreier &bsgs) const
Definition: bsgs_schreier_export.h:104
BSGSSchreier * importData(const BSGSSchreierData *data) const
Definition: bsgs_schreier_export.h:151
dom_int * base
base
Definition: bsgs_schreier_export.h:56
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
dom_int ** sgs
strong generating set
Definition: bsgs_schreier_export.h:64
Transversal class that stores transversal elements in a Schreier tree.
Definition: schreier_tree_transversal.h:44
std::vector< dom_int > B
base
Definition: bsgs_core.h:55
export of a BSGS based on SchreierTreeTransversal
Definition: bsgs_schreier_export.h:99
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
data structure with elementary data types to represent a BSGS based on SchreierTreeTransversal ...
Definition: bsgs_schreier_export.h:46
boost::shared_ptr< Permutation > ptr
boost shared_ptr of this class
Definition: permutation.h:64
base class for import/export of a BSGS based on SchreierTreeTransversal
Definition: bsgs_schreier_export.h:92
Represents a base and strong generating set (BSGS)
Definition: bsgs.h:58
std::vector< TRANS > U
transversals along the stabilizer chain
Definition: bsgs_core.h:59
int ** transversals
transversals
Definition: bsgs_schreier_export.h:77
Permutation class storing all values explicitly.
Definition: permutation.h:58
std::list< unsigned long > m_orbit
orbit elements
Definition: transversal.h:157
PERMlist S
strong generating set
Definition: bsgs_core.h:57
std::vector< boost::shared_ptr< PERM > > m_transversal
transversal elements
Definition: transversal.h:154
Definition: abstract_bsgs.h:49