13namespace layer3_group_actions {
14namespace data_structures_groups {
52 int f_v = (verbose_level >= 1);
55 cout <<
"set_and_stabilizer::init" << endl;
60 cout <<
"set_and_stabilizer::init done" << endl;
67 cout <<
"set_and_stabilizer::group_order "
68 "Strong_gens == NULL" << endl;
77 cout <<
"set_and_stabilizer::group_order_as_int "
78 "Strong_gens == NULL" << endl;
88 int f_v = (verbose_level >= 1);
91 cout <<
"set_and_stabilizer::init_everything" << endl;
101 cout <<
"set_and_stabilizer::init_everything done" << endl;
107 int f_v = (verbose_level >= 1);
111 cout <<
"set_and_stabilizer::create_copy" << endl;
127 cout <<
"set_and_stabilizer::create_copy done" << endl;
134 int f_v = (verbose_level >= 1);
137 cout <<
"set_and_stabilizer::allocate_data" << endl;
142 cout <<
"set_and_stabilizer::allocate_data done" << endl;
148 int f_v = (verbose_level >= 1);
151 cout <<
"set_and_stabilizer::init_data" << endl;
157 cout <<
"set_and_stabilizer::init_data done" << endl;
162 int data_gens_size,
int nb_gens, std::string &ascii_target_go,
165 int f_v = (verbose_level >= 1);
169 cout <<
"set_and_stabilizer::init_stab_from_data" << endl;
174 gens->
init(
A, verbose_level - 2);
178 gens->
allocate(nb_gens, verbose_level - 2);
179 for (i = 0; i < nb_gens; i++) {
189 cout <<
"strong generators are:" << endl;
198 cout <<
"set_and_stabilizer::init_stab_from_data done" << endl;
203 const char *fname_gens,
206 int f_v = (verbose_level >= 1);
212 cout <<
"set_and_stabilizer::init_stab_from_file" << endl;
216 cout <<
"set_and_stabilizer::init_stab_from_file "
217 "the file " << fname_gens
218 <<
" does not exist or is empty" << endl;
223 ifstream f(fname_gens);
226 char target_go_ascii[1000];
229 f >> target_go_ascii;
239 gens->
init(
A, verbose_level - 2);
242 gens->
allocate(nb_gens, verbose_level - 2);
243 for (i = 0; i < nb_gens; i++) {
259 cout <<
"strong generators are:" << endl;
268 cout <<
"set_and_stabilizer::init_stab_from_file done" << endl;
299 int f_v = (verbose_level >= 1);
306 cout <<
"set_and_stabilizer::apply_to_self" << endl;
309 cout <<
"set_and_stabilizer::apply_to_self Elt=" << endl;
316 cout <<
"set_and_stabilizer::apply_to_self "
317 "mapping the set under action " <<
A2->
label <<
":" << endl;
318 for (i = 0; i <
sz; i++) {
319 cout << i <<
" : " <<
data[i] <<
" : " << data2[i] << endl;
325 cout <<
"set_and_stabilizer::apply_to_self "
326 "before conjugating generators" << endl;
331 cout <<
"set_and_stabilizer::apply_to_self "
332 "before testing the n e w generators" << endl;
336 gens->
ith(i),
sz, data2, 0 )) {
337 cout <<
"set_and_stabilizer::apply_to_self "
338 "conjugate element does not stabilize the set" << endl;
355 cout <<
"set_and_stabilizer::apply_to_self done" << endl;
361 int f_v = (verbose_level >= 1);
365 cout <<
"set_and_stabilizer::apply_to_self_inverse" << endl;
374 cout <<
"set_and_stabilizer::apply_to_self_inverse done" << endl;
379 int *Elt_data,
int verbose_level)
381 int f_v = (verbose_level >= 1);
385 cout <<
"set_and_stabilizer::apply_to_self_element_raw" << endl;
393 cout <<
"set_and_stabilizer::apply_to_self_element_raw done" << endl;
398 int *Elt_data,
int verbose_level)
400 int f_v = (verbose_level >= 1);
404 cout <<
"set_and_stabilizer::apply_to_self_"
405 "inverse_element_raw" << endl;
413 cout <<
"set_and_stabilizer::apply_to_self_"
414 "inverse_element_raw done" << endl;
420 int *&orbit_first,
int *&orbit_length,
421 int *&orbit,
int &nb_orbits,
int verbose_level)
423 int f_v = (verbose_level >= 1);
426 cout <<
"set_and_stabilizer::rearrange_by_orbits" << endl;
433 cout <<
"set_and_stabilizer::rearrange_by_orbits "
434 "creating restricted action on the set "
439 cout <<
"set_and_stabilizer::rearrange_by_orbits "
440 "creating restricted action on the set of "
441 "lines done" << endl;
446 int f, l, h, cur, j, a, b;
449 cout <<
"set_and_stabilizer::rearrange_by_orbits "
450 "computing orbits on set:" << endl;
453 A_on_set, verbose_level);
458 orbit_first =
NEW_int(nb_orbits);
459 orbit_length =
NEW_int(nb_orbits);
485 for (j = 0; j < l; j++) {
486 a = Orb->
orbit[f + j];
491 if (d < Orb->nb_orbits - 1) {
492 orbit_first[d + 1] = orbit_first[d] + l;
503 cout <<
"set_and_stabilizer::rearrange_by_orbits done" << endl;
510 int f_v = (verbose_level >= 1);
513 cout <<
"set_and_stabilizer::create_restricted_"
514 "action_on_the_set" << endl;
521 cout <<
"set_and_stabilizer::create_restricted_"
522 "action_on_the_set creating restricted "
523 "action on the set" << endl;
530 cout <<
"set_and_stabilizer::create_restricted_"
531 "action_on_the_set creating restricted "
532 "action on the set done" << endl;
541 int f_v = (verbose_level >= 1);
544 cout <<
"set_and_stabilizer::print_restricted_"
545 "action_on_the_set" << endl;
552 cout <<
"set_and_stabilizer::print_restricted_action_"
553 "on_the_set creating restricted action on the set" << endl;
560 cout <<
"set_and_stabilizer::print_restricted_action_"
561 "on_the_set creating restricted action "
562 "on the set done" << endl;
570 int f_v = (verbose_level >= 1);
573 cout <<
"set_and_stabilizer::test_if_group_acts" << endl;
577 cout <<
"set_and_stabilizer::test_if_group_acts done" << endl;
589 cout <<
"set_and_stabilizer::find" << endl;
a collection of functions related to sorted vectors
int lint_vec_search(long int *v, int len, long int a, int &idx, 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
long int file_size(std::string &fname)
interface to create latex output files
void lint_set_print_tex_for_inline_text(std::ostream &ost, long int *v, int len)
void lint_set_print_tex(std::ostream &ost, long int *v, int len)
a class to represent arbitrary precision integers
void create_from_base_10_string(const char *str, int verbose_level)
void assign_to(longinteger_object &b)
std::ostream & print_not_scientific(std::ostream &ost)
a permutation group in a fixed action.
action * restricted_action(long int *points, int nb_points, int verbose_level)
void element_print_quick(void *elt, std::ostream &ost)
void map_a_set(long int *set, long int *image_set, int n, int *Elt, int verbose_level)
void element_invert(void *a, void *av, int verbose_level)
void make_element(int *Elt, int *data, int verbose_level)
int check_if_in_set_stabilizer(int *Elt, int size, long int *set, int verbose_level)
void generators_to_strong_generators(int f_target_go, ring_theory::longinteger_object &target_go, data_structures_groups::vector_ge *gens, groups::strong_generators *&Strong_gens, int verbose_level)
a set and its known set stabilizer
void apply_to_self_element_raw(int *Elt_data, int verbose_level)
void init_stab_from_data(int *data_gens, int data_gens_size, int nb_gens, std::string &ascii_target_go, int verbose_level)
void apply_to_self_inverse(int *Elt, int verbose_level)
ring_theory::longinteger_object target_go
void print_restricted_action_on_the_set(int verbose_level)
groups::strong_generators * Strong_gens
long int group_order_as_lint()
void print_set_tex_for_inline_text(std::ostream &ost)
void test_if_group_acts(int verbose_level)
void apply_to_self_inverse_element_raw(int *Elt_data, int verbose_level)
void init(actions::action *A, actions::action *A2, int verbose_level)
void init_stab_from_file(const char *fname_gens, int verbose_level)
void init_everything(actions::action *A, actions::action *A2, long int *Set, int set_sz, groups::strong_generators *gens, int verbose_level)
actions::action * create_restricted_action_on_the_set(int verbose_level)
void allocate_data(int sz, int verbose_level)
void init_data(long int *data, int sz, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
set_and_stabilizer * create_copy(int verbose_level)
void apply_to_self(int *Elt, int verbose_level)
void print_generators_tex(std::ostream &ost)
void print_set_tex(std::ostream &ost)
void rearrange_by_orbits(int *&orbit_first, int *&orbit_length, int *&orbit, int &nb_orbits, int verbose_level)
to hold a vector of group elements
void init_conjugate_svas_of(vector_ge *v, int *Elt, int verbose_level)
void allocate(int length, int verbose_level)
void init(actions::action *A, int verbose_level)
Schreier trees for orbits of groups on points.
a strong generating set for a permutation group with respect to a fixed action
void init_copy(strong_generators *S, int verbose_level)
sims * create_sims(int verbose_level)
void print_generators_tex()
long int group_order_as_lint()
void print_generators(std::ostream &ost)
schreier * orbits_on_points_schreier(actions::action *A_given, int verbose_level)
void print_with_given_action(std::ostream &ost, actions::action *A2)
data_structures_groups::vector_ge * gens
void group_order(ring_theory::longinteger_object &go)
#define Lint_vec_copy(A, B, C)
the orbiter library for the classification of combinatorial objects