18namespace layer3_group_actions {
96 int page_length_log,
int verbose_level)
98 int f_v = (verbose_level >= 1);
102 cout <<
"permutation_representation_domain::init_product_action "
103 "m=" <<
m <<
" n=" <<
n << endl;
115 init_data(page_length_log, verbose_level);
117 cout <<
"permutation_representation_domain::init_product_action done" << endl;
123 int page_length_log,
int verbose_level)
125 int f_v = (verbose_level >= 1);
129 cout <<
"permutation_representation_domain::init" << endl;
137 init_data(page_length_log, verbose_level);
139 cout <<
"permutation_representation_domain::init done" << endl;
145 int f_v = (verbose_level >= 1);
146 int f_vv = (verbose_level >= 2);
150 cout <<
"permutation_representation_domain::init_data" << endl;
151 cout <<
"degree=" <<
degree << endl;
153 cout <<
"page_length_log=" << page_length_log << endl;
166 cout <<
"permutation_representation_domain::init_data "
167 "calling Elts->init()" << endl;
170 page_length_log, verbose_level - 2);
175 cout <<
"permutation_representation_domain::init_data "
176 "calling one()" << endl;
182 cout <<
"permutation_representation_domain::init_data "
183 "calling Elts->store()" << endl;
187 cout <<
"identity element stored, "
188 "hdl = " << hdl << endl;
193 cout <<
"permutation_representation_domain::init_data "
203 int base_length,
int *base,
int page_length_log,
206 int f_v = (verbose_level >= 1);
207 int f_vv = (verbose_level >= 2);
228 cout <<
"permutation_representation_domain::init" << endl;
229 cout <<
"degree=" << A.
degree << endl;
230 cout <<
"base_len=" << base_length << endl;
233 cout <<
"perm_group::init "
234 "calling Elts->init" << endl;
237 page_length_log, verbose_level - 2);
243 cout <<
"permutation_representation_domain::init "
244 "calling one()" << endl;
250 cout <<
"permutation_representation_domain::init "
251 "calling Elts->store" << endl;
255 cout <<
"identity element stored, "
256 "hdl = " << hdl << endl;
260 cout <<
"permutation_representation_domain::init "
261 "initializing base, and transversal_length" << endl;
272 for (i = 0; i < A.
base_len(); i++) {
297 sprintf(str1,
"Sym%d",
degree);
298 sprintf(str2,
"{\\rm Sym}_{%d}",
degree);
299 A.
label.assign(str1);
303 cout <<
"permutation_representation_domain::init finished" << endl;
312 int *Elt,
int verbose_level)
327 for (i = 0; i <
degree; i++) {
336 for (i = 0; i <
degree; i++) {
358 for (i = 0; i <
degree; i++) {
374 for (i = 0; i <
degree; i++) {
377 p = (
uchar *)(Elt + i);
378 for (j = 0; j < (int)
sizeof(
int); j++) {
388 for (i = 0; i <
degree; i++) {
391 p = (
uchar *)(Elt + i);
392 for (j = 0; j < (int)
sizeof(
int); j++) {
410 void (*point_label)(std::stringstream &sstr,
long int pt,
void *data),
411 void *point_label_data)
430 for (i = 0; i <
degree; i++) {
431 ost << Elt[i] <<
", ";
436 int *Elt, ostream &ost)
440 for (i = 0; i <
degree; i++) {
441 ost << Elt[i] <<
" ";
454 for (i = 0; i < A->
base_len(); i++) {
458 cout <<
"bi=" << bi <<
"a=" << a << endl;
460 ost <<
"(x=" << bi <<
") -> (x=" << a <<
")" << endl;
462 else if (bi <
m +
n) {
463 ost <<
"(y=" << bi -
m
464 <<
") -> (y=" << a -
m <<
")" << endl;
473 ost << bi <<
"=(" << x1 <<
"," << y1 <<
")"
475 << a <<
"=(" << x2 <<
"," << y2 <<
")";
479 ost << bi <<
" -> " << a;
481 if (i < A->base_len() - 1) {
500 int f_v = (verbose_level >= 1);
501 int f_vv = (verbose_level >= 2);
508 cout <<
"permutation_representation_domain::make_element" << endl;
525 cout <<
"permutation_representation_domain::make_element "
526 "The input is not a permutation" << endl;
533 cout <<
"permutation_representation_domain::make_element done" << endl;
a collection of combinatorial functions
int is_permutation(int *perm, long int n)
void perm_print_with_print_point_function(std::ostream &ost, int *a, int n, void(*point_label)(std::stringstream &sstr, long int pt, void *data), void *point_label_data)
void perm_print_offset(std::ostream &ost, int *a, int n, int offset, int f_print_cycles_of_length_one, int f_cycle_length, int f_max_cycle_length, int max_cycle_length, int f_orbit_structure, void(*point_label)(std::stringstream &sstr, long int pt, void *data), void *point_label_data)
void perm_inverse(int *a, int *b, long int n)
void perm_print_list_offset(std::ostream &ost, int *a, int n, int offset)
void perm_mult(int *a, int *b, int *c, long int n)
void perm_print(std::ostream &ost, int *a, int n)
bulk storage of group elements in compressed form
long int store(uchar *elt)
void init(int entry_size, int page_length_log, int verbose_level)
interface to the implementation functions for group actions
void init_function_pointers_permutation_group()
a permutation group in a fixed action.
int coded_elt_size_in_char
symmetry_group_type type_G
stabilizer_chain_base_data * Stabilizer_chain
void allocate_element_data()
action_pointer_table * ptr
the transversals in the stabilizer subgroup chain (Sims chain)
void allocate_base_data(action *A, int base_len, int verbose_level)
permutation_representation_domain()
void unpack(uchar *elt, int *Elt)
void make_element(int *Elt, int *data, int verbose_level)
void print(int *Elt, std::ostream &ost)
void code_for_make_element(int *Elt, int *data)
void print_for_make_element(int *Elt, std::ostream &ost)
void init_product_action(int m, int n, int page_length_log, int verbose_level)
void init_data(int page_length_log, int verbose_level)
void invert(int *A, int *Ainv)
void mult(int *A, int *B, int *AB)
void init(int degree, int page_length_log, int verbose_level)
void transversal_rep(int i, int j, int *Elt, int verbose_level)
void copy(int *A, int *B)
void print_for_make_element_no_commas(int *Elt, std::ostream &ost)
void init_with_base(int degree, int base_length, int *base, int page_length_log, actions::action &A, int verbose_level)
~permutation_representation_domain()
void print_with_action(actions::action *A, int *Elt, std::ostream &ost)
data_structures::page_storage * Elts
void print_with_print_point_function(int *Elt, std::ostream &ost, void(*point_label)(std::stringstream &sstr, long int pt, void *data), void *point_label_data)
void pack(int *Elt, uchar *elt)
#define Lint_vec_print(A, B, C)
#define Int_vec_copy(A, B, C)
#define Int_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects
groups::permutation_representation_domain * perm_grp