19namespace layer4_classification {
131 long int *canonical_pts,
138 int f_v = (verbose_level >= 1);
141 cout <<
"compute_stabilizer::init" << endl;
149 cout <<
"compute_stabilizer::init A=" << endl;
154 cout <<
"compute_stabilizer::init A2=" << endl;
163 cout <<
"compute_stabilizer::init canonical substructure: ";
175 cout <<
"compute_stabilizer::init before Stab_orbits->init" << endl;
181 cout <<
"compute_stabilizer::init after Stab_orbits->init" << endl;
186 cout <<
"compute_stabilizer::init before creating Stab" << endl;
197 cout <<
"compute_stabilizer::init before A2->restricted_action" << endl;
201 cout <<
"compute_stabilizer::init after A2->restricted_action" << endl;
213 cout <<
"compute_stabilizer::init before restricted_action_on_interesting_points" << endl;
217 cout <<
"compute_stabilizer::init after restricted_action_on_interesting_points" << endl;
223 cout <<
"compute_stabilizer::init before compute_canonical_form" << endl;
227 cout <<
"compute_stabilizer::init after compute_canonical_form" << endl;
234 cout <<
"compute_stabilizer::init before init_U" << endl;
237 init_U(verbose_level);
239 cout <<
"compute_stabilizer::init after init_U" << endl;
245 cout <<
"compute_stabilizer::init before compute_automorphism_group" << endl;
249 cout <<
"compute_stabilizer::init after compute_automorphism_group" << endl;
268 cout <<
"compute_stabilizer::init input : ";
271 cout <<
"compute_stabilizer::init canonical: ";
277 cout <<
"compute_stabilizer::init done" << endl;
284 int f_v = (verbose_level >= 1);
289 cout <<
"compute_stabilizer::compute_automorphism_group" << endl;
306 cout <<
"compute_stabilizer::compute_automorphism_group "
308 cout <<
"compute_stabilizer::compute_automorphism_group "
315 cout <<
"compute_stabilizer::compute_automorphism_group done" << endl;
322 int f_v = (verbose_level >= 1);
323 int f_vv = (verbose_level >= 2);
329 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case STABILIZER loop "
337 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
338 "before Stab_orbits->map_reduced_set_and_do_orbit_counting" << endl;
345 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
346 "after Stab_orbits->map_reduced_set_and_do_orbit_counting" << endl;
356 cout <<
"compute_automorphism_group_handle_case !Stab_orbits->check_orbit_count()" << endl;
362 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
363 "before Stab_orbits->compute_local_labels" << endl;
370 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
371 "after Stab_orbits->compute_local_labels" << endl;
374 cout <<
"local labels:" << endl;
386 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
387 "before compute_canonical_set_and_group" << endl;
395 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
396 "after compute_canonical_set_and_group" << endl;
407 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
408 "before compute_canonical_set" << endl;
417 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
418 "after compute_canonical_set" << endl;
423 cout <<
"canonical form:" << endl;
433 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
434 "the two canonical sets are not the same, error" << endl;
440 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
441 "before setup_stabilizer" << endl;
445 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
446 "after setup_stabilizer" << endl;
451 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
452 "before retrieve_automorphism" << endl;
456 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
457 "after retrieve_automorphism" << endl;
465 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
466 "before add_automorphism" << endl;
470 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
471 "after add_automorphism" << endl;
476 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
477 "before update_stabilizer" << endl;
481 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case "
482 "after update_stabilizer" << endl;
489 cout <<
"compute_stabilizer::compute_automorphism_group_handle_case done" << endl;
495 int f_v = (verbose_level >= 1);
498 cout <<
"compute_stabilizer::setup_stabilizer" << endl;
516 cout <<
"compute_stabilizer::setup_stabilizer kernel has order " <<
K_go << endl;
524 cout <<
"compute_stabilizer::setup_stabilizer before Kernel_original->conjugate" << endl;
530 cout <<
"compute_stabilizer::setup_stabilizer after Kernel_original->conjugate" << endl;
534 cout <<
"compute_stabilizer::setup_stabilizer after conjugation, kernel has order " <<
K_go << endl;
538 cout <<
"compute_stabilizer::setup_stabilizer adding kernel of order " <<
K_go
539 <<
" to the stabilizer (in action " <<
Stab->
A->
label <<
")" << endl;
542 cout <<
"compute_stabilizer::setup_stabilizer before Stab->build_up_group_random_process" << endl;
547 cout <<
"compute_stabilizer::setup_stabilizer after Stab->build_up_group_random_process" << endl;
552 cout <<
"compute_stabilizer::setup_stabilizer kernel of action on the set has been added to stabilizer" << endl;
553 cout <<
"compute_stabilizer::setup_stabilizer current stabilizer order " <<
stab_order << endl;
557 cout <<
"set stabilizer does not stabilize" << endl;
561 cout <<
"set stabilizer of order " <<
stab_order <<
" is OK" << endl;
575 cout <<
"compute_stabilizer::setup_stabilizer before A_induced.make_canonical" << endl;
576 cout <<
"verbose_level=" << verbose_level << endl;
577 cout <<
"before make_canonical: ";
589 cout <<
"compute_stabilizer::setup_stabilizer current stabilizer order " <<
ago << endl;
592 cout <<
"transporter1:" << endl;
599 cout <<
"testing stabilizer of canonical set" << endl;
601 cout <<
"set stabilizer does not stabilize" << endl;
610 cout <<
"T1:" << endl;
624 cout <<
"compute_stabilizer::setup_stabilizer after conjugation, group in action " <<
Aut_original->
A->
label << endl;
625 cout <<
"compute_stabilizer::setup_stabilizer automorphism group order before = " <<
ago << endl;
626 cout <<
"compute_stabilizer::setup_stabilizer automorphism group order after = " <<
ago1 << endl;
633 cout <<
"compute_stabilizer::setup_stabilizer K_go=" <<
K_go << endl;
634 cout <<
"compute_stabilizer::setup_stabilizer ago=" <<
ago << endl;
635 cout <<
"compute_stabilizer::setup_stabilizer target_go=" <<
target_go << endl;
636 cout <<
"compute_stabilizer::setup_stabilizer adding automorphisms to set-stabilizer" << endl;
639 cout <<
"compute_stabilizer::setup_stabilizer before Stab->build_up_group_random_process in action ";
646 cout <<
"compute_stabilizer::setup_stabilizer after Stab->build_up_group_random_process" << endl;
650 cout <<
"compute_stabilizer::setup_stabilizer set stabilizer is added to stabilizer" << endl;
651 cout <<
"compute_stabilizer::setup_stabilizer current stabilizer order " <<
stab_order << endl;
655 cout <<
"set stabilizer does not stabilize" << endl;
659 cout <<
"set stabilizer of order " <<
stab_order <<
" is OK" << endl;
667 cout <<
"compute_stabilizer::setup_stabilizer done" << endl;
675 int f_v = (verbose_level >= 1);
678 cout <<
"compute_stabilizer::restricted_action_on_interesting_points" << endl;
686 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
687 "interesting_points=" << endl;
695 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
696 "computing induced action by restriction" << endl;
704 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
705 "after A2->restricted_action" << endl;
708 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
709 "before A_induced->group_order" << endl;
713 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
715 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
716 "A_induced:" << endl;
721 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
722 "before A_induced->induced_action_override_sims" << endl;
728 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
729 "after A_induced->induced_action_override_sims" << endl;
733 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
734 "A_induced does not have kernel" << endl;
739 cout <<
"compute_stabilizer::restricted_action_on_interesting_points "
740 "induced action by restriction: group order = " <<
induced_go << endl;
741 cout <<
"kernel group order = " <<
K_go << endl;
751 cout <<
"compute_stabilizer::restricted_action_on_interesting_points done" << endl;
759 int f_v = (verbose_level >= 1);
764 cout <<
"compute_stabilizer::compute_canonical_form" << endl;
798 cout <<
"Canonical forms:" << endl;
835 cout <<
"canonical form : " << endl;
838 cout <<
"interesting_subsets_rr:" << endl;
845 cout <<
"compute_stabilizer::compute_canonical_form done" << endl;
851 int f_v = (verbose_level >= 1);
852 int f_vv = (verbose_level >= 2);
855 cout <<
"compute_stabilizer::compute_canonical_form_handle_case "
861 cout <<
"compute_stabilizer::compute_canonical_form_handle_case "
862 "before Stab_orbits->map_subset_and_compute_local_labels" << endl;
866 cout <<
"compute_stabilizer::compute_canonical_form_handle_case "
867 "after Stab_orbits->map_subset_and_compute_local_labels" << endl;
873 cout <<
"compute_stabilizer::compute_canonical_form_handle_case before compute_canonical_set" << endl;
883 cout <<
"compute_stabilizer::compute_canonical_form_handle_case after compute_canonical_set" << endl;
886 cout <<
"canonical form:" << endl;
906 cout <<
"compute_stabilizer::compute_canonical_form_handle_case "
914 int *transporter,
int verbose_level)
918 int f_v = (verbose_level >= 1);
923 cout <<
"compute_stabilizer::compute_canonical_set" << endl;
926 cout <<
"compute_stabilizer::compute_canonical_set before A_induced->make_canonical" << endl;
935 set_out, transporter, nb_nodes,
942 cout <<
"compute_stabilizer::compute_canonical_set after A_induced->make_canonical" << endl;
945 cout <<
"compute_stabilizer::compute_canonical_set done" << endl;
950 long int *set_in,
long int *set_out,
int sz,
951 int *transporter,
groups::sims *&stab,
int verbose_level)
954 int f_v = (verbose_level >= 1);
958 cout <<
"compute_stabilizer::compute_canonical_set_and_group" << endl;
961 cout <<
"compute_stabilizer::compute_canonical_set_and_group before A_induced->make_canonical" << endl;
969 set_out, transporter, nb_nodes,
974 cout <<
"compute_stabilizer::compute_canonical_set_and_group after A_induced->make_canonical" << endl;
977 cout <<
"compute_stabilizer::compute_canonical_set_and_group done" << endl;
982void compute_stabilizer::init_U(
int verbose_level)
984 int f_v = (verbose_level >= 1);
987 cout <<
"compute_stabilizer::init_U before U->init" << endl;
998 cout <<
"compute_stabilizer::init_U after U->init" << endl;
1008 int f_v = (verbose_level >= 1);
1017 cout <<
"compute_stabilizer::update_stabilizer new stabilizer order is " <<
new_stab_order << endl;
1038 cout <<
"stabilizer transversal length:" << endl;
1042 cout <<
"set stabilizer does not stabilize" << endl;
1051 int f_v = (verbose_level >= 1);
1052 int f_v4 = (verbose_level >= 4);
1053 int drop_out_level, image, f_added;
1061 cout <<
"compute_stabilizer::main_loop_handle_case element strips through" << endl;
1063 cout <<
"compute_stabilizer residue:" << endl;
1074 cout <<
"compute_stabilizer::main_loop_handle_case element needs to be inserted at level = "
1075 << drop_out_level <<
" with image " << image << endl;
1082 cout <<
"compute_stabilizer::main_loop_handle_case residue does not stabilize original set" << endl;
1087 cout <<
"compute_stabilizer::main_loop_handle_case calling closure_group" << endl;
1095 int f_v = (verbose_level >= 1);
1099 cout <<
"compute_stabilizer::retrieve_automorphism found automorphism" << endl;
1102 cout <<
"compute_stabilizer::retrieve_automorphism automorphism:" << endl;
1109 cout <<
"compute_stabilizer::retrieve_automorphism does not stabilize original set" << endl;
1113 cout <<
"compute_stabilizer::retrieve_automorphism is in the set stabilizer" << endl;
1117 cout <<
"the automorphism is: " << endl;
1120 cout <<
"the automorphism acts on the set as: " << endl;
1128 int f_v = (verbose_level >= 1);
1129 int f_v4 = (verbose_level >= 4);
1133 cout <<
"compute_stabilizer::make_canonical_second_set" << endl;
1136 cout <<
"compute_stabilizer::make_canonical_second_set before A_induced->make_canonical" << endl;
1144 cout <<
"compute_stabilizer::make_canonical_second_set after A_induced->make_canonical" << endl;
1149 cout <<
"compute_stabilizer::make_canonical_second_set nb_nodes=" << nb_nodes << endl;
1152 cout <<
"compute_stabilizer::make_canonical_second_set canonical set2: ";
1157 cout <<
"compute_stabilizer::make_canonical_second_set transporter2:" << endl;
1165 cout <<
"compute_stabilizer::make_canonical_second_set T2:" << endl;
1172 cout <<
"compute_stabilizer::make_canonical_second_set done" << endl;
1182 ost <<
"Input set of size " <<
SubSt->
nb_pts <<
" : ";
1186 ost <<
"\\\\" << endl;
1192 ost <<
"interesting_subsets: ";
1196 ost <<
"\\\\" << endl;
1198 ost <<
"Classification of small sets: ";
1213 cout <<
"input set: ";
1218 cout <<
"output set: ";
1223 cout <<
"transporter: ";
void matrix_print(long int *p, int m, int n)
a collection of functions related to sorted vectors
int lint_vec_compare(long int *p, long int *q, int len)
data_structures::lint_vec * Lint_vec
domain to compute with objects of type longinteger
void mult(longinteger_object &a, longinteger_object &b, longinteger_object &c)
int compare_unsigned(longinteger_object &a, longinteger_object &b)
void assign_to(longinteger_object &b)
action * restricted_action(long int *points, int nb_points, int verbose_level)
void element_print(void *elt, std::ostream &ost)
void mult(void *a, void *b, void *ab)
void element_mult(void *a, void *b, void *ab, int verbose_level)
void make_canonical(int size, long int *set, long int *canonical_set, int *transporter, int &total_backtrack_nodes, int f_get_automorphism_group, groups::sims *Aut, int verbose_level)
void element_invert(void *a, void *av, int verbose_level)
void element_move(void *a, void *b, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
int check_if_in_set_stabilizer(int *Elt, int size, long int *set, int verbose_level)
void induced_action_override_sims(action &old_action, groups::sims *old_G, int verbose_level)
void element_print_as_permutation(void *elt, std::ostream &ost)
a permutation group represented via a stabilizer chain
void conjugate(actions::action *A, sims *old_G, int *Elt, int f_overshooting_OK, int verbose_level)
void init(actions::action *A, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
void init_trivial_group(int verbose_level)
int closure_group(int nb_times, int verbose_level)
void add_generator_at_level(int *elt, int lvl, int verbose_level)
int strip(int *elt, int *residue, int &drop_out_level, int &image, int verbose_level)
void print_transversal_lengths()
int test_if_in_set_stabilizer(actions::action *A, long int *set, int size, int verbose_level)
void build_up_group_random_process(sims *K, sims *old_G, ring_theory::longinteger_object &target_go, int f_override_choose_next_base_point, int(*choose_next_base_point_method)(actions::action *A, int *Elt, int verbose_level), int verbose_level)
a strong generating set for a permutation group with respect to a fixed action
void print_generators(std::ostream &ost)
void init_from_sims(groups::sims *S, int verbose_level)
void print_canonical_sets()
int nb_interesting_subsets_rr
actions::action * A_on_the_set
void add_automorphism(int verbose_level)
void update_stabilizer(int verbose_level)
void report(std::ostream &ost)
ring_theory::longinteger_object K_go
void compute_canonical_set(long int *set_in, long int *set_out, int sz, int *transporter, int verbose_level)
ring_theory::longinteger_object induced_go
void make_canonical_second_set(int verbose_level)
ring_theory::longinteger_object stab_order
int backtrack_nodes_first_time
long int * Canonical_forms
void compute_automorphism_group_handle_case(int cnt2, int verbose_level)
void compute_canonical_form(int verbose_level)
actions::action * A_induced
ring_theory::longinteger_object ago
void init(substructure_stats_and_selection *SubSt, long int *canonical_pts, int verbose_level)
ring_theory::longinteger_object new_stab_order
void compute_canonical_set_and_group(long int *set_in, long int *set_out, int sz, int *transporter, groups::sims *&stab, int verbose_level)
int * Canonical_form_transporter
int * transporter_witness
void compute_canonical_form_handle_case(int cnt, int verbose_level)
void retrieve_automorphism(int verbose_level)
ring_theory::longinteger_object ago1
long int * Canonical_form_input
groups::sims * Kernel_original
long int * interesting_subsets_rr
ring_theory::longinteger_object target_go
stabilizer_orbits_and_types * Stab_orbits
int nb_times_orbit_count_does_not_match_up
void restricted_action_on_interesting_points(int verbose_level)
groups::sims * Aut_original
int backtrack_nodes_total_in_loop
void compute_automorphism_group(int verbose_level)
substructure_stats_and_selection * SubSt
void setup_stabilizer(groups::sims *Stab0, int verbose_level)
to control the behavior of the poset classification report function
void get_set(int node, long int *set, int &size)
void report(std::ostream &ost, poset_classification_report_options *Opt, int verbose_level)
orbits of the stabilizer of the substructure and orbit types
long int * reduced_set2_new_labels
void compute_local_labels(long int *set_in, long int *set_out, int sz, int verbose_level)
void init(compute_stabilizer *CS, int verbose_level)
int nb_interesting_points
long int * reduced_set1_new_labels
long int * interesting_points
int nb_interesting_subsets_reduced
void map_reduced_set_and_do_orbit_counting(int cnt, long int subset_idx, int *transporter, int verbose_level)
groups::sims * selected_set_stab
long int * canonical_set1
long int * canonical_set2
long int * interesting_subsets_reduced
void map_subset_and_compute_local_labels(int cnt, int verbose_level)
poset_classification::poset_classification * PC
analyzing the substructures of a given set
std::string fname_case_out
long int * interesting_subsets
substructure_classifier * SubC
int nb_interesting_subsets
#define Lint_vec_copy(A, B, C)
#define Lint_vec_print(A, B, C)
#define Int_vec_copy(A, B, C)
#define Int_vec_print(A, B, C)
#define Lint_vec_print_fully(A, B, C)
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
the orbiter library for the classification of combinatorial objects