20namespace layer4_classification {
102 cout <<
"isomorph::free" << endl;
107 cout <<
"isomorph::free before deleting A" << endl;
114 cout <<
"isomorph::free before deleting AA" << endl;
122 cout <<
"isomorph::free before deleting gen" << endl;
131 cout <<
"isomorph::free "
132 "before deleting stabilizer_recreated" << endl;
139 cout <<
"isomorph::free "
140 "before deleting DB_sol" << endl;
147 cout <<
"isomorph::free before deleting D1" << endl;
154 cout <<
"isomorph::free before deleting D2" << endl;
162 cout <<
"isomorph::free before free_tmp_data" << endl;
188 cout <<
"isomorph::free done" << endl;
252 cout <<
"isomorph::free_tmp_data" << endl;
276 cout <<
"isomorph::free_tmp_data finished" << endl;
284 int f_use_database_for_starter,
285 int f_implicit_fusion,
int verbose_level)
287 int f_v = (verbose_level >= 1);
291 cout <<
"isomorph::init" << endl;
292 cout <<
"prefix=" <<
prefix << endl;
294 cout <<
"A=" <<
A->
label << endl;
295 cout <<
"size=" <<
size << endl;
296 cout <<
"level=" <<
level << endl;
297 cout <<
"f_use_database_for_starter="
299 cout <<
"f_implicit_fusion=" << f_implicit_fusion << endl;
316 sprintf(fname_data_file,
"%s_%d.data",
prefix,
level - 1);
319 sprintf(fname_data_file,
"%s_%d.data",
prefix,
level);
322 cout <<
"fname_data_file=" << fname_data_file << endl;
324 sprintf(fname_level_file,
"%s_lvl_%d",
prefix,
level);
398 sprintf(cmd,
"mkdir %s",
prefix.c_str());
400 sprintf(cmd,
"mkdir %sINVARIANTS/",
prefix.c_str());
402 sprintf(cmd,
"mkdir %sTEX/",
prefix.c_str());
408 cout <<
"isomorph::init done" << endl;
420 int f_v = (verbose_level >= 1);
423 cout <<
"isomorph::init_solution" << endl;
429 cout <<
"isomorph::init_solution done" << endl;
435 int f_v = (verbose_level >= 1);
440 cout <<
"isomorph::load_table_of_solutions N=" <<
N << endl;
444 for (
id = 0;
id <
N;
id++) {
446 for (j = 0; j <
size; j++) {
450 cout <<
"solution " <<
id <<
" : ";
458 cout <<
"isomorph::load_table_of_solutions done" << endl;
464 int f_v = (verbose_level >= 1);
468 cout <<
"isomorph::init_starter_number N=" <<
N << endl;
474 for (j = 0; j < l; j++) {
479 cout <<
"starter_number:" << endl;
488 int i, j, idx, id, f, l, fst, len, h, pos, u;
490 long int data2[1000];
491 int verbose_level = 0;
500 cout <<
"starter " << i <<
" solutions from="
501 << f <<
" len=" << l << endl;
503 while (pos < f + l) {
506 cout <<
"orbit " << j <<
" from=" << fst
507 <<
" len=" << len << endl;
508 for (u = 0; u < len; u++) {
512 for (h = 0; h <
size; h++) {
516 cout << i <<
" : " << j <<
" : "
517 << idx <<
" : " <<
id << endl;
533 int i, j, idx, id, f, l, h;
535 long int data2[1000];
536 int verbose_level = 0;
544 cout <<
"orbit " << i <<
" from=" << f
545 <<
" len=" << l << endl;
546 for (j = 0; j < l; j++) {
550 for (h = 0; h <
size; h++) {
554 cout << j <<
" : " << idx <<
" : " <<
id << endl;
567 int f_v = (verbose_level >= 1);
568 int f_vv = (verbose_level >= 2);
569 int f_vvvv = (verbose_level >= 4);
570 int f_v5 = (verbose_level >= 5);
571 int i, j, f, l, nb_orbits_prev = 0;
575 cout <<
"isomorph::orbits_of_stabilizer" << endl;
576 cout <<
"number of starters = nb_starter = "
578 cout <<
"number of solutions (= N) = " <<
N << endl;
579 cout <<
"action A_base=";
588 cout <<
"isomorph::orbits_of_stabilizer before setup_and_open_solution_database" << endl;
592 cout <<
"isomorph::orbits_of_stabilizer after setup_and_open_solution_database" << endl;
595 cout <<
"isomorph::orbits_of_stabilizer before setup_and_open_level_database" << endl;
599 cout <<
"isomorph::orbits_of_stabilizer after setup_and_open_level_database" << endl;
604 cout <<
"isomorph::orbits_of_stabilizer before prepare_database_access" << endl;
608 cout <<
"isomorph::orbits_of_stabilizer after prepare_database_access" << endl;
626 for (i = 0; i <
N; i++) {
634 cout <<
"isomorph::orbits_of_stabilizer case "
647 gens, go, verbose_level - 2);
649 cout <<
"isomorph::orbits_of_stabilizer "
650 "after load_strong_generators" << endl;
651 cout <<
"isomorph::orbits_of_stabilizer "
652 "The stabilizer is a group of order "
653 << go <<
" with " << gens.
len
654 <<
" strong generators" << endl;
660 if (f_v && ((i % 5000) == 0)) {
661 cout <<
"isomorph::orbits_of_stabilizer Case " << i
665 cout <<
"isomorph::orbits_of_stabilizer nb_orbits = "
667 cout <<
"isomorph::orbits_of_stabilizer case " << i
668 <<
" starts at " << f <<
" with " << l
669 <<
" solutions" << endl;
671 if (gens.
len == 0 ) {
673 cout <<
"isomorph::orbits_of_stabilizer "
674 "the stabilizer is trivial" << endl;
676 for (j = 0; j < l; j++) {
691 cout <<
"isomorph::orbits_of_stabilizer "
692 "the stabilizer is non trivial" << endl;
696 cout <<
"isomorph::orbits_of_stabilizer "
697 "before orbits_of_stabilizer_case" << endl;
701 cout <<
"isomorph::orbits_of_stabilizer "
702 "after orbits_of_stabilizer_case" << endl;
703 cout <<
"isomorph::orbits_of_stabilizer "
704 "the " << l <<
" solutions in case " << i
705 <<
" fall into " <<
nb_orbits - nb_orbits_prev
706 <<
" orbits" << endl;
712 cout <<
"isomorph::orbits_of_stabilizer Case " << i
713 <<
" / " <<
nb_starter <<
" finished, we found "
714 <<
nb_orbits - nb_orbits_prev <<
" orbits : ";
727 if (
FALSE && f_vvvv) {
728 cout <<
"i : orbit_perm : orbit_number : schreier_vector : "
729 "schreier_prev" << endl;
730 for (j = 0; j < l; j++) {
731 cout << f + j <<
" : "
737 cout <<
"j : orbit_fst : orbit_len" << endl;
738 for (j = nb_orbits_prev; j <
nb_orbits; j++) {
739 cout << j <<
" : " <<
orbit_fst[j] <<
" : "
742 cout << j <<
" : " <<
orbit_fst[j] << endl;
744 cout <<
"orbit_fst[nb_orbits] != "
745 "solution_first[i + 1]" << endl;
746 cout <<
"orbit_fst[nb_orbits]="
748 cout <<
"solution_first[i + 1]="
757 cout <<
"orbit_fst[nb_orbits] != N" << endl;
759 cout <<
"N=" <<
N << endl;
760 cout <<
"nb_orbits=" <<
nb_orbits << endl;
768 cout <<
"isomorph::orbits_of_stabilizer Case " << i <<
" / "
781 cout <<
"i : solution_first[i] : solution_len[i]" << endl;
785 cout << setw(9) << i << setw(9) << f << setw(9) << l << endl;
787 cout <<
"nb_orbits=" <<
nb_orbits << endl;
788 cout <<
"i : orbit_fst[i] : orbit_len[i]" << endl;
790 cout << setw(9) << i <<
" "
794 cout <<
"N=" <<
N << endl;
795 cout <<
"i : orbit_number[i] : orbit_perm[i] : schreier_vector[i] : "
796 "schreier_prev[i]" << endl;
797 for (i = 0; i <
N; i++) {
798 cout << setw(9) << i <<
" "
817 int f_v = (verbose_level >= 1);
818 int f_vv = (verbose_level >= 2);
819 int f_v4 = (verbose_level >= 4);
820 int j, f, l, k, ff, ll;
823 cout <<
"isomorph::orbits_of_stabilizer_case "
830 cout <<
"isomorph::orbits_of_stabilizer_case "
831 "solution_first[the_case] = " << f << endl;
832 cout <<
"isomorph::orbits_of_stabilizer_case "
833 "solution_len[the_case] = " << l << endl;
841 int h, p, prev, b, hdl;
851 cout <<
"isomorph::orbits_of_stabilizer_case "
852 "generators as permutations (skipped)" << endl;
856 cout <<
"isomorph::orbits_of_stabilizer_case before S->init" << endl;
860 cout <<
"isomorph::orbits_of_stabilizer_case after S->init" << endl;
863 cout <<
"isomorph::orbits_of_stabilizer_case before S->init_generators" << endl;
867 cout <<
"isomorph::orbits_of_stabilizer_case after S->init_generators" << endl;
870 cout <<
"isomorph::orbits_of_stabilizer_case before S->compute_base_orbits" << endl;
874 cout <<
"isomorph::orbits_of_stabilizer_case after S->compute_base_orbits" << endl;
877 cout <<
"isomorph::orbits_of_stabilizer_case before S->group_order" << endl;
881 cout <<
"isomorph::orbits_of_stabilizer_case "
882 "The starter has a stabilizer of order "
886 for (j = 0; j < l; j++) {
890 cout <<
"solution " << j <<
" : ";
896 cout <<
"solution " << j <<
" sorted : ";
903 cout <<
"isomorph::orbits_of_stabilizer_case "
904 "computing induced action on " << l <<
" sets of size " <<
size << endl;
912 cout <<
"isomorph::orbits_of_stabilizer_case "
913 "computing induced action finished" << endl;
920 cout <<
"isomorph::orbits_of_stabilizer_case orbit "
921 <<
nb_orbits <<
" induced action has order "
922 << AA_go <<
", kernel has order " << K_go << endl;
927 cout <<
"isomorph::orbits_of_stabilizer_case "
928 "induced action computed" << endl;
929 cout <<
"generators:" << endl;
930 for (k = 0; k < gens.
len; k++) {
938 cout <<
"isomorph::orbits_of_stabilizer_case "
939 "computing point orbits" << endl;
945 cout <<
"isomorph::orbits_of_stabilizer_case "
946 "Point orbits computed" << endl;
952 for (k = 0; k < l; k++) {
953 p = Schreier->
orbit[k];
954 prev = Schreier->
prev[k];
955 hdl = Schreier->
label[k];
964 cout <<
"b != p" << endl;
969 sets + prev *
size, sets + p *
size,
970 verbose_level - 2)) {
975 for (k = 0; k < Schreier->
nb_orbits; k++) {
978 for (h = 0; h < ll; h++) {
979 p = f + Schreier->
orbit[ff + h];
984 Schreier->
label[ff + h];
990 f + Schreier->
prev[ff + h];
1007 int &orbit,
int *transporter,
int verbose_level)
1010 int f_v = (verbose_level >= 1);
1011 int f_vv = (verbose_level >= 2);
1018 cout <<
"isomorph::orbit_representative" << endl;
1031 cout <<
"isomorph::orbit_representative "
1032 "before load_strong_generators" << endl;
1035 gens, go, verbose_level);
1037 cout <<
"isomorph::orbit_representative "
1038 "after load_strong_generators" << endl;
1042 cout <<
"isomorph::orbit_representative "
1049 cout <<
"isomorph::orbit_representative "
1050 "i=" << i <<
" i_loc=" << i_loc
1051 <<
" p=" << p << endl;
1068 cout <<
"isomorph::orbit_representative "
1069 "The representative of solution " << i <<
" is "
1070 << i0 <<
" in orbit " << orbit << endl;
1079 int r, r0, orbit, k;
1080 long int data1[1000];
1081 long int data2[1000];
1088 for (k = 0; k <
N; k++) {
1098 cout <<
"k=" << k <<
" r=" << r <<
" r0=" << r0 << endl;
1103 size, data1, data2, verbose_level)) {
1118 long int data1[1000];
1119 long int data2[1000];
1131 for (k = 0; k < 10; k++) {
1135 cout <<
"schreier_prev[orbit_fst[r]] != -1" << endl;
1142 for (i = 0; i <
size; i++) {
1143 data2[i] = data1[perm[i]];
1146 int f_failure_to_find_point;
1151 if (f_failure_to_find_point) {
1152 cout <<
"f_failure_to_find_point" << endl;
1155 cout <<
"k=" << k <<
" r=" << r <<
" r0=" << r0 << endl;
1160 size, data2, data1, verbose_level)) {
1161 cout <<
"test_identify_solution, "
1162 "check fails, stop" << endl;
1176 int f_v = (verbose_level >= 1);
1177 int f_vv = (verbose_level >= 2);
1186 int j, first, f, l, c, first_orbit_this_case, orb_no;
1191 cout <<
"isomorph::compute_stabilizer "
1200 orb_no =
orbit_no - first_orbit_this_case;
1203 cout <<
"isomorph::compute_stabilizer "
1204 "orbit_no=" <<
orbit_no <<
" starting at "
1205 << first <<
" case number " << c
1206 <<
" first_orbit_this_case=" << first_orbit_this_case
1207 <<
" local orbit number " << orb_no << endl;
1211 cout <<
"isomorph::compute_stabilizer "
1212 "f=" << f <<
" l=" << l << endl;
1224 *gens, go, verbose_level - 1);
1226 cout <<
"isomorph::compute_stabilizer "
1228 <<
" after load_strong_generators" << endl;
1229 cout <<
"isomorph::compute_stabilizer "
1230 "Stabilizer of starter has order " << go << endl;
1239 cout <<
"isomorph::compute_stabilizer "
1240 "The action in the stabilizer sims object is:" << endl;
1244 cout <<
"isomorph::compute_stabilizer "
1246 <<
" solutions associated to starter " << c
1247 <<
" (representative of isomorphism type "
1250 for (j = 0; j < l; j++) {
1255 cout <<
"isomorph::compute_stabilizer "
1256 "The " << l <<
" solutions are:" << endl;
1261 cout <<
"isomorph::compute_stabilizer "
1262 "Too big to print, we print only 20" << endl;
1269 gens->
allocate(O->nb_strong_generators);
1271 for (j = 0; j < O->nb_strong_generators; j++) {
1277 cout <<
"isomorph::compute_stabilizer "
1278 "computing induced action" << endl;
1282 sets,
TRUE, verbose_level - 2);
1285 cout <<
"isomorph::compute_stabilizer "
1286 "computing induced action done" << endl;
1291 cout <<
"isomorph::compute_stabilizer "
1292 "induced action has order " << AA_go << endl;
1293 cout <<
"isomorph::compute_stabilizer "
1294 "induced action has a kernel of order " << K_go << endl;
1298 cout <<
"isomorph::compute_stabilizer "
1299 "computing all point orbits" << endl;
1307 cout <<
"isomorph::compute_stabilizer orbit "
1309 <<
" orbits" << endl;
1319 cout <<
"isomorph::compute_stabilizer "
1320 "starter set has stabilizer of order "
1322 cout <<
"isomorph::compute_stabilizer "
1323 "orbit " << orb_no <<
" has length "
1325 cout <<
"isomorph::compute_stabilizer "
1326 "n e w stabilizer has order " << so << endl;
1327 cout <<
"isomorph::compute_stabilizer "
1328 "orbit_no=" <<
orbit_no <<
" finished" << endl;
1340 int f_v = (verbose_level >= 1);
1349 cout <<
"isomorph::test_compute_stabilizer" << endl;
1353 for (k = 0; k < 100; k++) {
1356 cout <<
"k=" << k <<
" orbit_no=" <<
orbit_no << endl;
1369 int verbose_level = 0;
1373 long int data[1000];
1401 long int data1[1000];
1402 long int data2[1000];
1405 long int subset1[] = {0, 1, 2, 3, 4, 8};
1412 test_edge(1, subset1, transporter1, verbose_level);
1415 long int subset2[] = {0, 1, 2, 3, 4, 6 };
1417 test_edge(74, subset2, transporter2, verbose_level);
1431 size, data1, data2, verbose_level)) {
1432 cout <<
"does not map data1 to data2" << endl;
1435 for (j = 0; j <
level; j++) {
1438 for (i = 0; i <
size; i++) {
1439 if (data1[i] == a) {
1445 cout <<
"did not find element a in data1" << endl;
1461 long int *subset1,
int *transporter,
int verbose_level)
1467 long int data1[1000];
1468 long int data2[1000];
1478 cout <<
"schreier_prev[orbit_fst[r]] != -1" << endl;
1486 subset1, data2, verbose_level - 1);
1488 int f_failure_to_find_point;
1493 if (f_failure_to_find_point) {
1494 cout <<
"f_failure_to_find_point" << endl;
1497 cout <<
"r=" << r <<
" r0=" << r0 << endl;
1503 cout <<
"test_identify_solution, check fails, stop" << endl;
1515 std::string &prefix,
int verbose_level)
1522 int f_v = (verbose_level >= 1);
1523 string fname_base_a;
1524 string fname_base_b;
1528 cout <<
"isomorph::read_data_files_for_starter" << endl;
1529 cout <<
"prefix=" <<
prefix << endl;
1530 cout <<
"level=" <<
level << endl;
1533 fname_base_a.assign(
prefix);
1534 fname_base_a.append(
"a");
1535 fname_base_b.assign(
prefix);
1536 fname_base_b.append(
"b");
1545 cout <<
"isomorph::read_data_files_for_starter "
1546 "i0=" << i0 << endl;
1548 for (i = i0; i <
level; i++) {
1550 cout <<
"reading data file for level "
1551 << i <<
" with prefix " << fname_base_b << endl;
1554 MINIMUM(1, verbose_level - 1));
1558 cout <<
"reading data file for level " <<
level
1559 <<
" with prefix " << fname_base_a << endl;
1562 MINIMUM(1, verbose_level - 1));
1567 cout <<
"isomorph::read_data_files_for_starter finished, "
1568 "number of starters = " <<
nb_starter << endl;
1574 int f_v = (verbose_level >= 1);
1578 cout <<
"isomorph::compute_nb_starter finished, "
1579 "number of starters = " <<
nb_starter << endl;
1589 cout << n <<
"=" <<
level <<
"/" << node_local;
1597 cout << node_global <<
"=" <<
level <<
"/" << node_local;
1602 int f_v = (verbose_level >= 1);
1604 long int data[1000];
1605 int id, case_nb, f, l, i;
1612 cout <<
"isomorph::test_hash" << endl;
1615 for (case_nb = 0; case_nb <
nb_starter; case_nb++) {
1621 cout <<
"starter " << case_nb <<
" f=" << f <<
" l=" << l << endl;
1623 for (i = 0; i < l; i++) {
1645 int f_v = (verbose_level >= 1);
1646 int f_vv = (verbose_level >= 2);
1647 int f_vvv = (verbose_level >= 3);
1648 int h, rep, first, id;
1649 long int data[1000];
1652 cout <<
"isomorph::compute_Ago_Ago_induced" << endl;
1660 cout <<
"isomorph::compute_Ago_Ago_induced orbit "
1677 cout <<
"isomorph::compute_Ago_Ago_induced computing "
1678 "induced action on the set (in data)" << endl;
1687 cout <<
"isomorph::compute_Ago_Ago_induced done" << endl;
1694 int size, std::string &prefix_classify, std::string &prefix,
int level,
1697 int f_v = (verbose_level >= 1);
1700 cout <<
"isomorph::init_high_level" << endl;
1707 int f_implicit_fusion =
FALSE;
1710 cout <<
"isomorph::init_high_level before init" << endl;
1719 cout <<
"isomorph::init_high_level after init" << endl;
1726 cout <<
"isomorph::init_high_level "
1727 "before read_data_files_for_starter" << endl;
1731 prefix_classify, verbose_level);
1734 cout <<
"isomorph::init_high_level "
1735 "before init_solution" << endl;
1741 cout <<
"isomorph::init_high_level "
1742 "after init_solution" << endl;
1747 cout <<
"isomorph::init_high_level "
1748 "before read_orbit_data" << endl;
1754 cout <<
"isomorph::init_high_level "
1755 "after read_orbit_data" << endl;
1762 cout <<
"isomorph::init_high_level "
1763 "before iso_test_init" << endl;
1767 cout <<
"isomorph::init_high_level "
1768 "after iso_test_init" << endl;
1772 cout <<
"isomorph::init_high_level "
1773 "before Reps->load" << endl;
1777 cout <<
"isomorph::init_high_level "
1778 "after Reps->load" << endl;
1782 cout <<
"isomorph::init_high_level "
1783 "before setup_and_open_solution_database" << endl;
1788 cout <<
"isomorph::init_high_level "
1789 "before setup_and_open_level_database" << endl;
1793 cout <<
"isomorph::init_high_level done" << endl;
1802 int f_v = (verbose_level >= 1);
1805 cout <<
"isomorph::get_orbit_transversal" << endl;
1807 int h, rep, first, id;
1843 cout <<
"isomorph::get_orbit_transversal done" << endl;
a collection of combinatorial functions
void random_permutation(int *random_permutation, long int n)
a catch-all container class for everything related to data structures
uint32_t lint_vec_hash(long int *data, int len)
a collection of functions related to sorted vectors
void rearrange_subset_lint_all(int n, int k, long int *set, long int *subset, long int *rearranged_set, int verbose_level)
void lint_vec_heapsort(long int *v, int len)
a statistical analysis of data consisting of single integers
void init(int *data, int data_length, int f_second, int verbose_level)
void print(int f_backwards)
void print_naked(int f_backwards)
interface to system functions
int random_integer(int p)
a class to represent arbitrary precision integers
DISCRETA vector class for vectors of DISCRETA objects.
a permutation group in a fixed action.
void compute_all_point_orbits(groups::schreier &S, data_structures_groups::vector_ge &gens, int verbose_level)
void element_retrieve(int hdl, void *elt, int verbose_level)
void element_mult(void *a, void *b, void *ab, int verbose_level)
int check_if_transporter_for_set(int *Elt, int size, long int *set1, long int *set2, 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)
void induced_action_on_sets(action &old_action, groups::sims *old_G, int nb_sets, int set_size, long int *sets, int f_induce_action, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
long int element_image_of(long int a, void *elt, int verbose_level)
a set of orbits using a vector of orbit representatives and stabilizers
set_and_stabilizer * Reps
a set and its known set stabilizer
void init_everything(actions::action *A, actions::action *A2, long int *Set, int set_sz, groups::strong_generators *gens, int verbose_level)
to hold a vector of group elements
void allocate(int length, int verbose_level)
void init(actions::action *A, int verbose_level)
void print_with_given_action(std::ostream &ost, actions::action *A2)
Schreier trees for orbits of groups on points.
void point_stabilizer(actions::action *default_action, ring_theory::longinteger_object &go, groups::sims *&Stab, int orbit_no, int verbose_level)
void print_tables(std::ostream &ost, int f_with_cosetrep)
a permutation group represented via a stabilizer chain
void init(actions::action *A, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
void init_generators(data_structures_groups::vector_ge &generators, int verbose_level)
void compute_base_orbits(int verbose_level)
a strong generating set for a permutation group with respect to a fixed action
void init_from_sims(groups::sims *S, int verbose_level)
long int * rearranged_set
void read_orbit_data(int verbose_level)
data_structures_groups::union_find * UF
int * make_set_smaller_Elt2
void init_starter_number(int verbose_level)
long int * find_extension_set1
void read_solution_first_and_len()
int nb_times_make_set_smaller_called
void setup_and_open_solution_database(int verbose_level)
int identify_solution(long int *set, int *transporter, int f_implicit_fusion, int &f_failure_to_find_point, int verbose_level)
groups::sims * stabilizer_recreated
std::string event_out_fname
void compute_Ago_Ago_induced(ring_theory::longinteger_object *&Ago, ring_theory::longinteger_object *&Ago_induced, int verbose_level)
int * make_set_smaller_Elt1
int f_use_implicit_fusion
void test_orbit_representative(int verbose_level)
void iso_test_init(int verbose_level)
void read_data_files_for_starter(int level, std::string &prefix, int verbose_level)
void list_solutions_by_starter()
int f_use_database_for_starter
void load_solution(int id, long int *data)
void print_node_local(int level, int node_local)
void test_edges(int verbose_level)
void init_solution(int verbose_level)
long int * rearranged_set_save
void induced_action_on_set(groups::sims *S, long int *set, int verbose_level)
void test_identify_solution(int verbose_level)
void compute_nb_starter(int level, int verbose_level)
int * orbit_representative_Elt2
void load_strong_generators(int cur_level, int cur_node_local, data_structures_groups::vector_ge &gens, ring_theory::longinteger_object &go, int verbose_level)
void orbits_of_stabilizer_case(int the_case, data_structures_groups::vector_ge &gens, int verbose_level)
std::string fname_staborbits
void orbit_representative(int i, int &i0, int &orbit, int *transporter, int verbose_level)
void read_hash_and_datref_file(int verbose_level)
int test_edge(int n1, long int *subset1, int *transporter, int verbose_level)
int f_tmp_data_has_been_allocated
poset_classification::poset_classification * gen
int * trace_set_recursion_Elt1
void setup_and_open_level_database(int verbose_level)
void(* print_set_function)(isomorph *Iso, int iso_cnt, groups::sims *Stab, groups::schreier &Orb, long int *data, void *print_set_data, int verbose_level)
actions::action * AA_on_k_subsets
void prepare_database_access(int cur_level, int verbose_level)
void write_starter_nb_orbits(int verbose_level)
int f_use_table_of_solutions
void init(std::string &prefix, actions::action *A_base, actions::action *A, poset_classification::poset_classification *gen, int size, int level, int f_use_database_for_starter, int f_implicit_fusion, int verbose_level)
actions::action * AA_perm
void init_high_level(actions::action *A, poset_classification::poset_classification *gen, int size, std::string &prefix_classify, std::string &prefix, int level, int verbose_level)
std::string fname_hash_and_datref
void test_hash(int verbose_level)
int * handle_automorphism_Elt1
std::string fname_orbits_of_stabilizer_csv
void test_compute_stabilizer(int verbose_level)
long int * trace_set_recursion_tmp_set1
void compute_stabilizer(groups::sims *&Stab, int verbose_level)
void close_level_database(int verbose_level)
std::string fname_case_len
long int * make_set_smaller_set
void load_table_of_solutions(int verbose_level)
long int * table_of_solutions
std::string fname_statistics
void induced_action_on_set_basic(groups::sims *S, long int *set, int verbose_level)
void get_orbit_transversal(data_structures_groups::orbit_transversal *&T, int verbose_level)
void close_solution_database(int verbose_level)
std::string prefix_invariants
long int * subset_witness
void orbits_of_stabilizer(int verbose_level)
int * orbit_representative_Elt1
long int * apply_fusion_tmp_set1
void list_solutions_by_orbit()
data_structures_groups::vector_ge * gens_perm
void print_node_global(int level, int node_global)
the poset classification algorithm
int first_node_at_level(int i)
int nb_orbits_at_level(int level)
classification_base_case * get_Base_case()
void read_level_file_binary(int level, std::string &fname_base, int verbose_level)
void load(int verbose_level)
#define Lint_matrix_print(A, B, C)
#define Lint_vec_print(A, B, C)
#define NEW_OBJECTS(type, n)
#define Int_vec_print(A, B, C)
void freeobject(discreta_base *p)
the orbiter library for the classification of combinatorial objects