Orbiter 2022
Combinatorial Objects
group_theoretic_activity_description.cpp
Go to the documentation of this file.
1/*
2 * group_theoretic_activity_description.cpp
3 *
4 * Created on: Apr 26, 2020
5 * Author: betten
6 */
7
8
9
10
11#include "orbiter.h"
12
13using namespace std;
14
15namespace orbiter {
16namespace layer5_applications {
17namespace apps_algebra {
18
19
21{
23 //multiply_a = NULL;
24 //multiply_b = NULL;
25
27 //inverse_a = NULL;
28
30 //std::string raise_to_the_power_a_text;
31 //std::string raise_to_the_power_exponent_text;
32
34
36
38
40 //std::string canonical_image_input_set;
41
44
49
51 // std::string element_rank_data;
52
54 //std::string element_unrank_data;
55
57
58
59
61 Control = NULL;
62
64
66 //f_shallow_tree = FALSE;
67
69
72
73
76
79
81
82
84
86 //element_description_text = NULL;
87 //element_label = NULL;
88
90
92 //std::string orbits_on_group_elements_under_conjugation_fname;
93 //orbits_on_group_elements_under_conjugation_transporter_fname
94
96
99
100 f_report = FALSE;
101 f_sylow = FALSE;
104
105
108
110
113
115 //orbits_on_set_system_from_file_fname = NULL;
118
120 //orbit_of_set_from_file_fname = NULL;
121 //f_search_subgroup = FALSE;
122
123
125 //std::string conjugacy_class_of_data;
126
128 //std::string isomorphism_Klein_quadric_fname;
129
133
137 //std::string save_elements_csv_fname;
138
140 //std::string multiply_elements_csv_column_major_ordering_fname1;
141 //std::string multiply_elements_csv_column_major_ordering_fname2;
142 //std::string multiply_elements_csv_column_major_ordering_fname3;
143
145 //std::string multiply_elements_csv_row_major_ordering_fname1;
146 //std::string multiply_elements_csv_row_major_ordering_fname2;
147 //std::string multiply_elements_csv_row_major_ordering_fname3;
148
150 //std::string apply_elements_csv_to_set_fname1;
151 //std::string apply_elements_csv_to_set_fname2;
152 //std::string apply_elements_csv_to_set_set;
153
155 //order_of_products_elements = NULL;
157
158
159 // classification:
160
162 ECA = NULL;
164 IA = NULL;
165
166
167
168
169
171 mindist = 0;
174
175
179
182
184
185
188
190 //std::string recognize_orbits_on_polynomials_text;
191
194
197
198
201 // Andre_Bruck_Bose_construction_label
202
203
204}
205
207{
208 freeself();
209}
210
212{
213}
214
216{
217 null();
218}
219
220
222 int argc, std::string *argv,
223 int verbose_level)
224{
225 int f_v = (verbose_level >= 1);
226 int i;
228
229 if (f_v) {
230 cout << "group_theoretic_activity_description::read_arguments" << endl;
231 }
232 for (i = 0; i < argc; i++) {
233 if (ST.stringcmp(argv[i], "-multiply") == 0) {
235 multiply_a.assign(argv[++i]);
236 multiply_b.assign(argv[++i]);
237 if (f_v) {
238 cout << "-multiply " << multiply_a << " " << multiply_b << endl;
239 }
240 }
241 else if (ST.stringcmp(argv[i], "-inverse") == 0) {
242 f_inverse = TRUE;
243 inverse_a.assign(argv[++i]);
244 if (f_v) {
245 cout << "-inverse " << inverse_a << endl;
246 }
247 }
248 else if (ST.stringcmp(argv[i], "-raise_to_the_power") == 0) {
250 raise_to_the_power_a_text.assign(argv[++i]);
251 raise_to_the_power_exponent_text.assign(argv[++i]);
252 if (f_v) {
253 cout << "-raise_to_the_power " << raise_to_the_power_a_text
254 << " " << raise_to_the_power_exponent_text << endl;
255 }
256 }
257
258 else if (ST.stringcmp(argv[i], "-export_orbiter") == 0) {
260 if (f_v) {
261 cout << "-export_orbiter " << endl;
262 }
263 }
264 else if (ST.stringcmp(argv[i], "-export_gap") == 0) {
266 if (f_v) {
267 cout << "-export_gap " << endl;
268 }
269 }
270 else if (ST.stringcmp(argv[i], "-export_magma") == 0) {
272 if (f_v) {
273 cout << "-export_magma " << endl;
274 }
275 }
276 else if (ST.stringcmp(argv[i], "-canonical_image") == 0) {
278 canonical_image_input_set.assign(argv[++i]);
279 if (f_v) {
280 cout << "-canonical_image " << canonical_image_input_set << endl;
281 }
282 }
283
284 else if (ST.stringcmp(argv[i], "-search_element_of_order") == 0) {
286 search_element_order = ST.strtoi(argv[++i]);
287 if (f_v) {
288 cout << "-search_element_of_order " << search_element_order << endl;
289 }
290 }
291 else if (ST.stringcmp(argv[i], "-find_standard_generators") == 0) {
296 if (f_v) {
297 cout << "-find_standard_generators " << find_standard_generators_order_a
300 << endl;
301 }
302 }
303
304 else if (ST.stringcmp(argv[i], "-element_rank") == 0) {
306 element_rank_data.assign(argv[++i]);
307 if (f_v) {
308 cout << "-element_rank " << element_rank_data << endl;
309 }
310 }
311 else if (ST.stringcmp(argv[i], "-element_unrank") == 0) {
313 element_unrank_data.assign(argv[++i]);
314 if (f_v) {
315 cout << "-element_unrank " << element_unrank_data << endl;
316 }
317 }
318 else if (ST.stringcmp(argv[i], "-find_singer_cycle") == 0) {
320 if (f_v) {
321 cout << "-find_singer_cycle " << endl;
322 }
323 }
324
325
326
327
328 else if (ST.stringcmp(argv[i], "-poset_classification_control") == 0) {
331 if (f_v) {
332 cout << "-poset_classification_control " << endl;
333 }
334 i += Control->read_arguments(argc - (i + 1),
335 argv + i + 1, verbose_level);
336
337 if (f_v) {
338 cout << "done reading -poset_classification_control " << endl;
339 cout << "i = " << i << endl;
340 cout << "argc = " << argc << endl;
341 if (i < argc) {
342 cout << "next argument is " << argv[i] << endl;
343 }
344 }
345 }
346 else if (ST.stringcmp(argv[i], "-orbits_on_points") == 0) {
348 if (f_v) {
349 cout << "-orbits_on_points" << endl;
350 }
351 }
352
353 else if (ST.stringcmp(argv[i], "-orbits_on_subsets") == 0) {
355 orbits_on_subsets_size = ST.strtoi(argv[++i]);
356 if (f_v) {
357 cout << "-orbits_on_subsets " << orbits_on_subsets_size << endl;
358 }
359 }
360
361 else if (ST.stringcmp(argv[i], "-orbits_on_subspaces") == 0) {
363 orbits_on_subspaces_depth = ST.strtoi(argv[++i]);
364 if (f_v) {
365 cout << "-orbits_on_subspaces " << orbits_on_subspaces_depth << endl;
366 }
367 }
368
369 else if (ST.stringcmp(argv[i], "-export_trees") == 0) {
371 if (f_v) {
372 cout << "-export_trees" << endl;
373 }
374 }
375
376 else if (ST.stringcmp(argv[i], "-stabilizer") == 0) {
378 if (f_v) {
379 cout << "-stabilizer" << endl;
380 }
381 }
382
383 else if (ST.stringcmp(argv[i], "-stabilizer_of_orbit_rep") == 0) {
386 if (f_v) {
387 cout << "-stabilizer_of_orbit_rep" << stabilizer_of_orbit_rep_orbit_idx << endl;
388 }
389 }
390
391 else if (ST.stringcmp(argv[i], "-test_if_geometric") == 0) {
393 test_if_geometric_depth = ST.strtoi(argv[++i]);
394 if (f_v) {
395 cout << "-test_if_geometric" << endl;
396 }
397 }
398 else if (ST.stringcmp(argv[i], "-classes_based_on_normal_form") == 0) {
400 if (f_v) {
401 cout << "-classes_based_on_normal_form" << endl;
402 }
403 }
404 else if (ST.stringcmp(argv[i], "-normalizer") == 0) {
406 if (f_v) {
407 cout << "-normalizer" << endl;
408 }
409 }
410 else if (ST.stringcmp(argv[i], "-centralizer_of_element") == 0) {
412 element_label.assign(argv[++i]);
413 element_description_text.assign(argv[++i]);
414 if (f_v) {
415 cout << "-centralizer_of_element " << element_label
416 << " " << element_description_text << endl;
417 }
418 }
419 else if (ST.stringcmp(argv[i], "-conjugacy_class_of_element") == 0) {
421 element_label.assign(argv[++i]);
422 element_description_text.assign(argv[++i]);
423 if (f_v) {
424 cout << "-conjugacy_class_of_element " << element_label
425 << " " << element_description_text << endl;
426 }
427 }
428 else if (ST.stringcmp(argv[i], "-orbits_on_group_elements_under_conjugation") == 0) {
432 if (f_v) {
433 cout << "-orbits_on_group_elements_under_conjugation "
436 << endl;
437 }
438 }
439
440
441 else if (ST.stringcmp(argv[i], "-normalizer_of_cyclic_subgroup") == 0) {
443 element_label.assign(argv[++i]);
444 element_description_text.assign(argv[++i]);
445 if (f_v) {
446 cout << "-normalizer_of_cyclic_subgroup " << element_label
447 << " " << element_description_text << endl;
448 }
449 }
450 else if (ST.stringcmp(argv[i], "-find_subgroup") == 0) {
452 find_subgroup_order = ST.strtoi(argv[++i]);
453 if (f_v) {
454 cout << "-find_subgroup " << find_subgroup_order << endl;
455 }
456 }
457 else if (ST.stringcmp(argv[i], "-report") == 0) {
458 f_report = TRUE;
459 if (f_v) {
460 cout << "-report" << endl;
461 }
462 }
463 else if (ST.stringcmp(argv[i], "-sylow") == 0) {
464 f_sylow = TRUE;
465 if (f_v) {
466 cout << "-sylow" << endl;
467 }
468 }
469 else if (ST.stringcmp(argv[i], "-group_table") == 0) {
471 if (f_v) {
472 cout << "-group_table" << endl;
473 }
474 }
475 else if (ST.stringcmp(argv[i], "-classes") == 0) {
476 f_classes = TRUE;
477 if (f_v) {
478 cout << "-classes" << endl;
479 }
480 }
481 else if (ST.stringcmp(argv[i], "-f_draw_tree") == 0) {
483 if (f_v) {
484 cout << "-f_draw_tree " << endl;
485 }
486 }
487 else if (ST.stringcmp(argv[i], "-orbit_of") == 0) {
489 orbit_of_point_idx = ST.strtoi(argv[++i]);
490 if (f_v) {
491 cout << "-orbit_of " << orbit_of_point_idx << endl;
492 }
493 }
494 else if (ST.stringcmp(argv[i], "-orbit_of_set_from_file") == 0) {
496 orbit_of_set_from_file_fname.assign(argv[++i]);
497 if (f_v) {
498 cout << "-orbit_of_set_from_file"
500 }
501 }
502 else if (ST.stringcmp(argv[i], "-orbits_on_set_system_from_file") == 0) {
504 orbits_on_set_system_from_file_fname.assign(argv[++i]);
507 if (f_v) {
508 cout << "-orbits_on_set_system_from_file"
510 << " " << orbits_on_set_system_first_column << " "
512 }
513 }
514
515 else if (ST.stringcmp(argv[i], "-conjugacy_class_of") == 0) {
517 conjugacy_class_of_data.assign(argv[++i]);
518 if (f_v) {
519 cout << "-conjugacy_class_of " << conjugacy_class_of_data << endl;
520 }
521 }
522
523 else if (ST.stringcmp(argv[i], "-isomorphism_Klein_quadric") == 0) {
525 isomorphism_Klein_quadric_fname.assign(argv[++i]);
526 if (f_v) {
527 cout << "-isomorphism_Klein_quadric " << isomorphism_Klein_quadric_fname << endl;
528 }
529 }
530
531 else if (ST.stringcmp(argv[i], "-print_elements") == 0) {
533 if (f_v) {
534 cout << "-print_elements " << endl;
535 }
536 }
537 else if (ST.stringcmp(argv[i], "-print_elements_tex") == 0) {
539 if (f_v) {
540 cout << "-print_elements_tex " << endl;
541 }
542 }
543 else if (ST.stringcmp(argv[i], "-save_elements_csv") == 0) {
545 save_elements_csv_fname.assign(argv[++i]);
546 if (f_v) {
547 cout << "-save_elements_csv " << endl;
548 }
549 }
550 else if (ST.stringcmp(argv[i], "-multiply_elements_csv_column_major_ordering") == 0) {
555 if (f_v) {
556 cout << "-multiply_elements_csv_column_major_ordering "
560 << endl;
561 }
562 }
563 else if (ST.stringcmp(argv[i], "-multiply_elements_csv_row_major_ordering") == 0) {
568 if (f_v) {
569 cout << "-multiply_elements_csv_row_major_ordering "
573 << endl;
574 }
575 }
576 else if (ST.stringcmp(argv[i], "-apply_elements_csv_to_set") == 0) {
578 apply_elements_csv_to_set_fname1.assign(argv[++i]);
579 apply_elements_csv_to_set_fname2.assign(argv[++i]);
580 apply_elements_csv_to_set_set.assign(argv[++i]);
581 if (f_v) {
582 cout << "-apply_elements_csv_to_set "
586 << endl;
587 }
588 }
589
590
591
592 else if (ST.stringcmp(argv[i], "-order_of_products") == 0) {
594 order_of_products_elements.assign(argv[++i]);
595 if (f_v) {
596 cout << "-order_of_products " << order_of_products_elements << endl;
597 }
598 }
599 else if (ST.stringcmp(argv[i], "-reverse_isomorphism_exterior_square") == 0) {
601 if (f_v) {
602 cout << "-reverse_isomorphism_exterior_square " << endl;
603 }
604 }
605
606
607
608 // classification tasks:
609
610 // linear codes:
611
612 else if (ST.stringcmp(argv[i], "-linear_codes") == 0) {
615 linear_codes_target_size = ST.strtoi(argv[++i]);
616 if (f_v) {
617 cout << "-linear_codes " << linear_codes_minimum_distance
618 << " " << linear_codes_target_size << endl;
619 }
620 }
621
622
623
624
625 else if (ST.stringcmp(argv[i], "-exact_cover") == 0) {
628 i += ECA->read_arguments(argc - (i + 1),
629 argv + i + 1, verbose_level);
630
631 if (f_v) {
632 cout << "done with -exact_cover" << endl;
633 cout << "i = " << i << endl;
634 cout << "argc = " << argc << endl;
635 if (i < argc) {
636 cout << "next argument is " << argv[i] << endl;
637 }
638 }
639 }
640 else if (ST.stringcmp(argv[i], "-isomorph_arguments") == 0) {
643 i += IA->read_arguments(argc - (i + 1),
644 argv + i + 1, verbose_level);
645
646 if (f_v) {
647 cout << "done with -isomorph_arguments" << endl;
648 cout << "i = " << i << endl;
649 cout << "argc = " << argc << endl;
650 if (i < argc) {
651 cout << "next argument is " << argv[i] << endl;
652 }
653 }
654 }
655
656
657
658
659
660
661
662 else if (ST.stringcmp(argv[i], "-mindist") == 0) {
663 f_mindist = TRUE;
664 mindist = ST.strtoi(argv[++i]);
665 if (f_v) {
666 cout << "-mindist" << mindist << endl;
667 }
668 }
669 else if (ST.stringcmp(argv[i], "-self_orthogonal") == 0) {
671 if (f_v) {
672 cout << "-self_orthogonal" << endl;
673 }
674 }
675 else if (ST.stringcmp(argv[i], "-doubly_even") == 0) {
677 if (f_v) {
678 cout << "-doubly_even" << endl;
679 }
680 }
681
682
683
684 // tensors:
685
686 else if (ST.stringcmp(argv[i], "-tensor_classify") == 0) {
688 tensor_classify_depth = ST.strtoi(argv[++i]);
689 if (f_v) {
690 cout << "-tensor_classify " << tensor_classify_depth << endl;
691 }
692 }
693 else if (ST.stringcmp(argv[i], "-tensor_permutations") == 0) {
695 if (f_v) {
696 cout << "-tensor_permutations " << endl;
697 }
698 }
699
700
701 // ovoids:
702
703 else if (ST.stringcmp(argv[i], "-classify_ovoids") == 0) {
706 if (f_v) {
707 cout << "-classify_ovoids" << endl;
708 }
709 i += Ovoid_classify_description->read_arguments(argc - (i + 1),
710 argv + i + 1, verbose_level);
711
712 if (f_v) {
713 cout << "done reading -classify_ovoids " << endl;
714 cout << "i = " << i << endl;
715 cout << "argc = " << argc << endl;
716 if (i < argc) {
717 cout << "next argument is " << argv[i] << endl;
718 }
719 }
720 }
721
722
723
724
725 // other:
726 else if (ST.stringcmp(argv[i], "-orbits_on_polynomials") == 0) {
728 orbits_on_polynomials_degree = ST.strtoi(argv[++i]);
729 if (f_v) {
730 cout << "-orbits_on_polynomials " << endl;
731 }
732 }
733 else if (ST.stringcmp(argv[i], "-orbits_on_polynomials_draw_tree") == 0) {
736 if (f_v) {
737 cout << "-orbits_on_polynomials_draw_tree " << orbits_on_polynomials_draw_tree_idx << endl;
738 }
739 }
740
741
742 else if (ST.stringcmp(argv[i], "-recognize_orbits_on_polynomials") == 0) {
744 recognize_orbits_on_polynomials_text.assign(argv[++i]);
745 if (f_v) {
746 cout << "-recognize_orbits_on_polynomials " << endl;
747 }
748 }
749
750
751 else if (ST.stringcmp(argv[i], "-representation_on_polynomials") == 0) {
754 if (f_v) {
755 cout << "-representation_on_polynomials " << representation_on_polynomials_degree << endl;
756 }
757 }
758
759 else if (ST.stringcmp(argv[i], "-Andre_Bruck_Bose_construction") == 0) {
762 Andre_Bruck_Bose_construction_label.assign(argv[++i]);
763 if (f_v) {
764 cout << "-Andre_Bruck_Bose_construction " << Andre_Bruck_Bose_construction_spread_no
765 << " " << Andre_Bruck_Bose_construction_label << endl;
766 }
767 }
768
769
770 else if (ST.stringcmp(argv[i], "-end") == 0) {
771 if (f_v) {
772 cout << "-end" << endl;
773 }
774 break;
775 }
776 else {
777 cout << "group_theoretic_activity_description::read_arguments "
778 "unrecognized option " << argv[i] << endl;
779 exit(1);
780 }
781 } // next i
782 if (f_v) {
783 cout << "group_theoretic_activity_description::read_arguments done" << endl;
784 }
785 return i + 1;
786}
787
789{
790 if (f_multiply) {
791 cout << "-multiply " << multiply_a << " " << multiply_b << endl;
792 }
793 if (f_inverse) {
794 cout << "-inverse " << inverse_a << endl;
795 }
797 cout << "-raise_to_the_power " << raise_to_the_power_a_text
798 << " " << raise_to_the_power_exponent_text << endl;
799 }
800
801 if (f_export_orbiter) {
802 cout << "-export_orbiter " << endl;
803 }
804 if (f_export_gap) {
805 cout << "-export_gap " << endl;
806 }
807 if (f_export_magma) {
808 cout << "-export_magma " << endl;
809 }
810 if (f_canonical_image) {
811 cout << "-canonical_image " << canonical_image_input_set << endl;
812 }
813
815 cout << "-search_element_of_order " << search_element_order << endl;
816 }
818 cout << "-find_standard_generators " << find_standard_generators_order_a
821 << endl;
822 }
823
824 if (f_element_rank) {
825 cout << "-element_rank " << element_rank_data << endl;
826 }
827 if (f_element_unrank) {
828 cout << "-element_unrank " << element_unrank_data << endl;
829 }
831 cout << "-find_singer_cycle " << endl;
832 }
833
834
835
836
838 Control->print();
839 }
840 if (f_orbits_on_points) {
841 cout << "-orbits_on_points" << endl;
842 }
843
845 cout << "-orbits_on_subsets " << orbits_on_subsets_size << endl;
846 }
847
849 cout << "-orbits_on_subspaces " << orbits_on_subspaces_depth << endl;
850 }
851
852 if (f_export_trees) {
853 cout << "-export_trees" << endl;
854 }
855
856 if (f_stabilizer) {
857 cout << "-stabilizer" << endl;
858 }
860 cout << "-test_if_geometric" << endl;
861 }
863 cout << "-classes_based_on_normal_form" << endl;
864 }
865 if (f_normalizer) {
866 cout << "-normalizer" << endl;
867 }
869 cout << "-centralizer_of_element " << element_label
870 << " " << element_description_text << endl;
871 }
873 cout << "-conjugacy_class_of_element " << element_label
874 << " " << element_description_text << endl;
875 }
877 cout << "-orbits_on_group_elements_under_conjugation "
880 << endl;
881 }
882
883
885 cout << "-normalizer_of_cyclic_subgroup " << element_label
886 << " " << element_description_text << endl;
887 }
888 if (f_find_subgroup) {
889 cout << "-find_subgroup " << find_subgroup_order << endl;
890 }
891 if (f_report) {
892 cout << "-report" << endl;
893 }
894 if (f_sylow) {
895 cout << "-sylow" << endl;
896 }
897 if (f_group_table) {
898 cout << "-group_table" << endl;
899 }
900 if (f_classes) {
901 cout << "-classes" << endl;
902 }
903 if (f_draw_tree) {
904 cout << "-f_draw_tree " << endl;
905 }
906 if (f_orbit_of) {
907 cout << "-orbit_of " << orbit_of_point_idx << endl;
908 }
910 cout << "-orbit_of_set_from_file"
912 }
914 cout << "-orbits_on_set_system_from_file"
916 << " " << orbits_on_set_system_first_column << " "
918 }
919
921 cout << "-conjugacy_class_of " << conjugacy_class_of_data << endl;
922 }
923
925 cout << "-isomorphism_Klein_quadric " << isomorphism_Klein_quadric_fname << endl;
926 }
927
928 if (f_print_elements) {
929 cout << "-print_elements " << endl;
930 }
932 cout << "-print_elements_tex " << endl;
933 }
935 cout << "-save_elements_csv " << save_elements_csv_fname << endl;
936 }
937
939 cout << "-multiply_elements_csv_column_major_ordering "
943 << endl;
944 }
946 cout << "-multiply_elements_csv_row_major_ordering "
950 << endl;
951 }
952
953
955 cout << "-apply_elements_csv_to_set "
959 << endl;
960 }
961
962
964 cout << "-order_of_products " << order_of_products_elements << endl;
965 }
967 cout << "-reverse_isomorphism_exterior_square " << endl;
968 }
969
970
971
972 // classification tasks:
973
974 // linear codes:
975
976 if (f_linear_codes) {
977 cout << "-linear_codes " << linear_codes_minimum_distance
978 << " " << linear_codes_target_size << endl;
979 }
980
981
982
983
984 if (f_exact_cover) {
985 cout << "-exact_cover" << endl;
986 }
988 cout << "-isomorph_arguments" << endl;
989 }
990
991
992
993
994
995
996
997 if (f_mindist) {
998 cout << "-mindist" << mindist << endl;
999 }
1000 if (f_self_orthogonal) {
1001 cout << "-self_orthogonal" << endl;
1002 }
1003 if (f_doubly_even) {
1004 cout << "-doubly_even" << endl;
1005 }
1006
1007
1008
1009 // tensors:
1010
1011 if (f_tensor_classify) {
1012 cout << "-tensor_classify " << tensor_classify_depth << endl;
1013 }
1015 cout << "-tensor_permutations " << endl;
1016 }
1017
1018
1019 // ovoids:
1020
1021 if (f_classify_ovoids) {
1022 cout << "-classify_ovoids" << endl;
1024 }
1025
1026
1027
1028 // other:
1030 cout << "-orbits_on_polynomials " << endl;
1031 }
1033 cout << "-orbits_on_polynomials_draw_tree " << orbits_on_polynomials_draw_tree_idx << endl;
1034 }
1035
1036
1038 cout << "-recognize_orbits_on_polynomials " << endl;
1039 }
1040
1041
1043 cout << "-representation_on_polynomials " << representation_on_polynomials_degree << endl;
1044 }
1045
1047 cout << "-Andre_Bruck_Bose_construction " << Andre_Bruck_Bose_construction_spread_no
1048 << " " << Andre_Bruck_Bose_construction_label << endl;
1049 }
1050
1051}
1052
1053
1054
1055
1056
1057}}}
1058
functions related to strings and character arrays
command line arguments to control the lifting via exact cover
Definition: solver.h:155
int read_arguments(int argc, std::string *argv, int verbose_level)
auxiliary class for class isomorph
Definition: isomorph.h:696
int read_arguments(int argc, std::string *argv, int verbose_level)
to control the behavior of the poset classification algorithm
description of a problem of classification of ovoids in orthogonal spaces
Definition: tl_geometry.h:602
#define NEW_OBJECT(type)
Definition: foundations.h:638
#define TRUE
Definition: foundations.h:231
#define FALSE
Definition: foundations.h:234
the orbiter library for the classification of combinatorial objects