13namespace layer3_group_actions {
14namespace data_structures_groups {
59 int f_v = (verbose_level >= 1);
62 cout <<
"schreier_vector_handler::init" << endl;
74 cout <<
"schreier_vector_handler::init done" << endl;
81 cout <<
"action A:" << endl;
83 cout <<
"action A2:" << endl;
86 cout <<
"action S->local_gens->A:" << endl;
88 cout <<
"schreier_vector_handler::coset_rep_inv "
90 <<
" local generators" << endl;
92 cout <<
"the local generators are:" << endl;
94 cout <<
"generator " << i <<
" / "
101 cout <<
"there are no local generators" << endl;
107 long int pt,
long int &pt0,
110 int f_v = (verbose_level >= 1);
116 cout <<
"schreier_vector_handler::coset_rep_inv_lint "
117 "tracing point pt" << endl;
122 cout <<
"schreier_vector_handler::coset_rep_inv_lint "
123 "pt = " << pt_int <<
" -> pt0 = " << pt0_int << endl;
134 int f_v = (verbose_level >= 1);
135 int f_vv = (verbose_level >= 2);
139 cout <<
"schreier_vector_handler::coset_rep_inv "
140 "tracing point pt" << endl;
145 cout <<
"schreier_vector_handler::coset_rep_inv "
153 cout <<
"schreier_vector_handler::coset_rep_inv "
154 "before coset_rep_inv_recursion" << endl;
160 cout <<
"schreier_vector_handler::coset_rep_inv "
161 "after coset_rep_inv_recursion cosetrep:" << endl;
166 cout <<
"schreier_vector_handler::coset_rep_inv "
167 "done " << pt <<
"->" << pt0 << endl;
170 cout <<
"schreier_vector_handler::coset_rep_inv "
171 "failure to find point" << endl;
182 int f_v = (verbose_level >= 1);
183 int f_vv = (verbose_level >= 2);
184 int hdl, pt_loc, pr, la, n;
188 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
189 "tracing point " << pt << endl;
199 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
200 "did not find point. "
201 "f_allow_failure is TRUE, "
202 "so we return FALSE" << endl;
207 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
208 "did not find pt" << endl;
209 cout <<
"pt = " << pt << endl;
210 cout <<
"vector of length " << n << endl;
222 pr = S->
sv[1 + n + pt_loc];
223 la = S->
sv[1 + 2 * n + pt_loc];
227 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
228 "prev = " << pr <<
" label = " << la << endl;
233 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
234 "using local_generator" << endl;
235 cout <<
"generator " << la <<
":" << endl;
244 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
245 "using global generator" << endl;
258 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
259 "check_image is TRUE" << endl;
265 cout <<
"schreier_vector_handler::coset_rep_inv_recursion: "
266 "pr != prev" << endl;
267 cout <<
"pr = " << pr << endl;
268 cout <<
"prev = " << prev << endl;
269 cout <<
"Elt1:" << endl;
271 cout <<
"Elt2:" << endl;
280 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
286 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
287 "before coset_rep_inv_recursion" << endl;
296 cout <<
"schreier_vector_handler::coset_rep_inv_recursion "
297 "after coset_rep_inv_recursion cosetrep" << endl;
304 cout <<
"prev = -1" << endl;
314 int gen_hdl_first,
int nb_gen,
315 ifstream &fp,
int verbose_level)
319 int f_v = (verbose_level >= 1);
324 cout <<
"schreier_vector_handler::sv_read_file" << endl;
326 fp.read((
char *)&I,
sizeof(int));
329 cout <<
"schreier_vector_handler::sv_read_file, "
330 "no schreier vector" << endl;
333 fp.read((
char *)&f_trivial_group,
sizeof(int));
335 fp.read((
char *)&n,
sizeof(int));
341 if (f_trivial_group) {
350 for (i = 0; i < len; i++) {
352 fp.read((
char *)&osv[1 + i],
sizeof(
int));
356 Sv->
init(gen_hdl_first, nb_gen, osv, verbose_level);
358 cout <<
"schreier_vector_handler::sv_read_file "
359 "read sv with " << n <<
" live points" << endl;
362 cout <<
"schreier_vector_handler::sv_read_file finished" << endl;
368 ofstream &fp,
int verbose_level)
371 int f_v = (verbose_level >= 1);
376 cout <<
"schreier_vector_handler::sv_write_file" << endl;
381 fp.write((
char *)&tmp,
sizeof(int));
386 fp.write((
char *)&tmp,
sizeof(int));
388 f_trivial_group =
TRUE;
391 f_trivial_group =
FALSE;
394 fp.write((
char *)&f_trivial_group,
sizeof(int));
395 if (Sv->
sv == NULL) {
396 cout <<
"schreier_vector_handler::sv_write_file "
397 "Sv->sv == NULL" << endl;
403 fp.write((
char *)&n,
sizeof(
int));
404 if (f_trivial_group) {
410 for (i = 0; i < len; i++) {
412 fp.write((
char *)&osv[1 + i],
sizeof(
int));
417 cout <<
"schreier_vector_handler::sv_write_file "
425 int f_v = (verbose_level >= 1);
433 cout <<
"schreier_vector_handler::get_orbits_as_set_of_sets" << endl;
436 cout <<
"schreier_vector_handler::get_orbits_as_set_of_sets "
437 "Sv->nb_gen == 0" << endl;
449 orbit_reps, nb_orbits);
455 cout <<
"i : pts : prev" << endl;
456 for (i = 0; i < n; i++) {
457 cout << i <<
" : " << pts[i] <<
" : " << prev[i] << endl;
466 for (i = 0; i < n; i++) {
470 for (i = 0; i < n; i++) {
472 pts, prev,
FALSE, depth, ancestor, i);
476 n, pts, prev,
FALSE , NULL,
477 depth, ancestor, verbose_level - 2);
480 cout <<
"i : pts : depth : ancestor" << endl;
481 for (i = 0; i < n; i++) {
482 cout << i <<
" : " << pts[i] <<
" : " << depth[i] <<
" : " << ancestor[i] << endl;
499 for (i = 0; i < C.
type_len[t]; i++) {
501 SoS->
Sets[t][i] = pts[a];
506 cout <<
"schreier_vector_handler::get_orbits_as_set_of_sets "
void init_basic_with_Sz_in_int(int underlying_set_size, int nb_sets, int *Sz, int verbose_level)
a collection of functions related to sorted vectors
int int_vec_search(int *v, int len, int a, int &idx)
int schreier_vector_determine_depth_recursion(int n, int *pts, int *prev, int f_use_pts_inv, int *pts_inv, int *depth, int *ancestor, int pos)
void schreier_vector_compute_depth_and_ancestor(int n, int *pts, int *prev, int f_use_pts_inv, int *pts_inv, int *&depth, int *&ancestor, int verbose_level)
a statistical analysis of data consisting of single integers
void init(int *data, int data_length, int f_second, int verbose_level)
a collection of functions related to file io
a permutation group in a fixed action.
void element_print_quick(void *elt, std::ostream &ost)
void element_retrieve(int hdl, void *elt, int verbose_level)
void element_mult(void *a, void *b, void *ab, int verbose_level)
void element_invert(void *a, void *av, int verbose_level)
void element_one(void *elt, int verbose_level)
void element_move(void *a, void *b, int verbose_level)
long int element_image_of(long int a, void *elt, int verbose_level)
int coset_rep_inv_recursion(schreier_vector *S, int pt, int &pt0, int verbose_level)
void sv_write_file(schreier_vector *Sv, std::ofstream &fp, int verbose_level)
int coset_rep_inv(schreier_vector *S, int pt, int &pt0, int verbose_level)
int nb_calls_to_coset_rep_inv_recursion
void init(actions::action *A, actions::action *A2, int f_allow_failure, int verbose_level)
schreier_vector * sv_read_file(int gen_hdl_first, int nb_gen, std::ifstream &fp, int verbose_level)
~schreier_vector_handler()
void print_info_and_generators(schreier_vector *S)
int nb_calls_to_coset_rep_inv
int coset_rep_inv_lint(schreier_vector *S, long int pt, long int &pt0, int verbose_level)
data_structures::set_of_sets * get_orbits_as_set_of_sets(schreier_vector *Sv, int verbose_level)
schreier_vector_handler()
compact storage of schreier vectors
int f_has_local_generators
void init(int gen_hdl_first, int nb_gen, int *sv, int verbose_level)
void count_number_of_orbits_and_get_orbit_reps(int *&orbit_reps, int &nb_orbits)
#define Int_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects