Orbiter 2022
Combinatorial Objects
symbol_definition.cpp
Go to the documentation of this file.
1/*
2 * symbol_definition.cpp
3 *
4 * Created on: Jun 20, 2021
5 * Author: betten
6 */
7
8
9
10#include "orbiter.h"
11
12using namespace std;
13
14namespace orbiter {
15namespace layer5_applications {
16namespace user_interface {
17
18
20{
21 Sym = NULL;
22
23 //std::string define_label;
24
27
30
33
36
39
42
44 F = NULL;
45 //std::string label;
46 //std::string label_tex;
47 //std::string managed_variables;
48 //std::string formula_text;
49
51 //std::string list_of_objects;
52
54 //std::string geometric_object_projective_space_label;
56
57 f_graph = FALSE;
59
61 //std::string spread_table_label_PA;
63 //std::string spread_selection_text;
64 //std::string spread_tables_prefix;
65
66
68 //std::string packing_was_label_spread_table;
69 packing_was_descr = NULL;
70
72 //std::string packing_with_assumed_symmetry_label;
75
76
78 //std::string packing_long_orbits_choose_fixed_points_label
80
83
86
89
90
92 //std::string design_table_label_design;
93 //std::string design_table_label;
94 //std::string design_table_group;
95
96
98 //std::string large_set_was_label_design_table;
100
101
102 f_set = FALSE;
104
105 f_vector = FALSE;
107
110
113
114}
115
116
118{
119
120}
121
124 int argc, std::string *argv, int &i, int verbose_level)
125{
126 int f_v = (verbose_level >= 1);
128
129 if (f_v) {
130 cout << "symbol_definition::read_definition i=" << i << " argc=" << argc << endl;
131 }
132
134
135 //f_define = TRUE;
136 define_label.assign(argv[++i]);
137 if (f_v) {
138 cout << "symbol_definition::read_definition "
139 "define_label=" << define_label << endl;
140 }
141 i++;
142 if (f_v) {
143 cout << "-define " << define_label << endl;
144 }
145 if (ST.stringcmp(argv[i], "-finite_field") == 0) {
148 if (f_v) {
149 cout << "reading -finite_field" << endl;
150 }
151 i += Finite_field_description->read_arguments(argc - (i + 1),
152 argv + i + 1, verbose_level);
153
154 i++;
155
156 if (f_v) {
157 cout << "-finite_field" << endl;
158 cout << "i = " << i << endl;
159 cout << "argc = " << argc << endl;
160 if (i < argc) {
161 cout << "next argument is " << argv[i] << endl;
162 }
163 }
164 }
165 else if (ST.stringcmp(argv[i], "-projective_space") == 0) {
168 if (f_v) {
169 cout << "reading -projective_space" << endl;
170 }
172 argv + i + 1, verbose_level);
173
174 i++;
175
176 if (f_v) {
177 cout << "-projective_space" << endl;
178 cout << "i = " << i << endl;
179 cout << "argc = " << argc << endl;
180 if (i < argc) {
181 cout << "next argument is " << argv[i] << endl;
182 }
183 }
184 }
185 else if (ST.stringcmp(argv[i], "-orthogonal_space") == 0) {
188 if (f_v) {
189 cout << "reading -orthogonal_space" << endl;
190 }
192 argv + i + 1, verbose_level);
193
194 i++;
195
196 if (f_v) {
197 cout << "-orthogonal_space" << endl;
198 cout << "i = " << i << endl;
199 cout << "argc = " << argc << endl;
200 if (i < argc) {
201 cout << "next argument is " << argv[i] << endl;
202 }
203 }
204 }
205 else if (ST.stringcmp(argv[i], "-linear_group") == 0) {
208 if (f_v) {
209 cout << "reading -linear_group" << endl;
210 }
211 i += Linear_group_description->read_arguments(argc - (i + 1),
212 argv + i + 1, verbose_level);
213
214 i++;
215
216 if (f_v) {
217 cout << "-linear_group" << endl;
218 cout << "i = " << i << endl;
219 cout << "argc = " << argc << endl;
220 if (i < argc) {
221 cout << "next argument is " << argv[i] << endl;
222 }
223 }
224 }
225
226 else if (ST.stringcmp(argv[i], "-permutation_group") == 0) {
229 if (f_v) {
230 cout << "reading -permutation_group" << endl;
231 }
233 argv + i + 1, verbose_level);
234
235 i++;
236
237 if (f_v) {
238 cout << "-permutation_group" << endl;
239 cout << "i = " << i << endl;
240 cout << "argc = " << argc << endl;
241 if (i < argc) {
242 cout << "next argument is " << argv[i] << endl;
243 }
244 }
245 }
246
247 else if (ST.stringcmp(argv[i], "-modified_group") == 0) {
250 if (f_v) {
251 cout << "reading -modified_group" << endl;
252 }
254 argv + i + 1, verbose_level);
255
256 i++;
257
258 if (f_v) {
259 cout << "-modified_group" << endl;
260 cout << "i = " << i << endl;
261 cout << "argc = " << argc << endl;
262 if (i < argc) {
263 cout << "next argument is " << argv[i] << endl;
264 }
265 }
266 }
267
268 else if (ST.stringcmp(argv[i], "-formula") == 0) {
269 if (f_v) {
270 cout << "-formula" << endl;
271 }
272 f_formula = TRUE;
273
274 label.assign(argv[++i]);
275 label_tex.assign(argv[++i]);
276 managed_variables.assign(argv[++i]);
277 formula_text.assign(argv[++i]);
278
279 i++;
280
281
282
285
286 }
287
288 else if (ST.stringcmp(argv[i], "-geometric_object") == 0) {
290
293 if (f_v) {
294 cout << "reading -geometric_object" << endl;
295 }
296 i += Geometric_object_description->read_arguments(argc - (i + 1),
297 argv + i + 1, verbose_level);
298
299 i++;
300
301 if (f_v) {
302 cout << "-geometric_object" << endl;
303 cout << "i = " << i << endl;
304 cout << "argc = " << argc << endl;
305 if (i < argc) {
306 cout << "next argument is " << argv[i] << endl;
307 }
308 }
309 }
310
311
312 else if (ST.stringcmp(argv[i], "-collection") == 0) {
313 if (f_v) {
314 cout << "-collection" << endl;
315 }
316
318
319 list_of_objects.assign(argv[++i]);
320 i++;
321
322 }
323 else if (ST.stringcmp(argv[i], "-graph") == 0) {
324
325 f_graph = TRUE;
327 if (f_v) {
328 cout << "reading -graph" << endl;
329 }
330
331 i += Create_graph_description->read_arguments(argc - (i + 1),
332 argv + i + 1, verbose_level);
333
334 i++;
335
336 if (f_v) {
337 cout << "-graph" << endl;
338 cout << "i = " << i << endl;
339 cout << "argc = " << argc << endl;
340 if (i < argc) {
341 cout << "next argument is " << argv[i] << endl;
342 }
343 }
344 }
345 else if (ST.stringcmp(argv[i], "-spread_table") == 0) {
347
348 spread_table_label_PA.assign(argv[++i]);
349 dimension_of_spread_elements = ST.strtoi(argv[++i]);
350 spread_selection_text.assign(argv[++i]);
351 spread_tables_prefix.assign(argv[++i]);
352
353 i++;
354
355 if (f_v) {
356 cout << "dimension_of_spread_elements = " << dimension_of_spread_elements
357 << " " << spread_selection_text
358 << " " << spread_tables_prefix << endl;
359 if (i < argc) {
360 cout << "next argument is " << argv[i] << endl;
361 }
362 }
363
364
365 if (f_v) {
366 cout << "-spread_table " << spread_table_label_PA
368 << " " << spread_selection_text
369 << " " << spread_tables_prefix
370 << endl;
371 }
372 }
373 else if (ST.stringcmp(argv[i], "-packing_with_symmetry_assumption") == 0) {
375
376 packing_was_label_spread_table.assign(argv[++i]);
377
379 if (f_v) {
380 cout << "reading -packing_with_symmetry_assumption" << endl;
381 }
382 i += packing_was_descr->read_arguments(argc - (i + 1),
383 argv + i + 1, verbose_level);
384
385 i++;
386
387 if (f_v) {
388 cout << "-packing_with_symmetry_assumption" << endl;
389 cout << "i = " << i << endl;
390 cout << "argc = " << argc << endl;
391 if (i < argc) {
392 cout << "next argument is " << argv[i] << endl;
393 }
394 cout << "-packing_with_symmetry_assumption " << packing_was_label_spread_table
395 << endl;
396 }
397 }
398 else if (ST.stringcmp(argv[i], "-packing_choose_fixed_points") == 0) {
400
401 packing_with_assumed_symmetry_label.assign(argv[++i]);
403
405 if (f_v) {
406 cout << "reading -packing_with_symmetry_assumption_choose_fixed_points" << endl;
407 }
409 argv + i + 1, verbose_level);
410
411 i++;
412
413 if (f_v) {
414 cout << "-packing_with_symmetry_assumption_choose_fixed_points" << endl;
415 cout << "i = " << i << endl;
416 cout << "argc = " << argc << endl;
417 if (i < argc) {
418 cout << "next argument is " << argv[i] << endl;
419 }
420 cout << "-packing_with_symmetry_assumption_choose_fixed_points "
423 << endl;
425 }
426 }
427 else if (ST.stringcmp(argv[i], "-packing_long_orbits") == 0) {
429
431
433 if (f_v) {
434 cout << "reading -packing_long_orbits" << endl;
435 }
437 argv + i + 1, verbose_level);
438
439 i++;
440
441 if (f_v) {
442 cout << "-packing_long_orbits" << endl;
443 cout << "i = " << i << endl;
444 cout << "argc = " << argc << endl;
445 if (i < argc) {
446 cout << "next argument is " << argv[i] << endl;
447 }
448 cout << "-packing_long_orbits "
450 << endl;
451 }
452 }
453 else if (ST.stringcmp(argv[i], "-graph_classification") == 0) {
455
457 if (f_v) {
458 cout << "reading -graph_classification" << endl;
459 }
460 i += Graph_classify_description->read_arguments(argc - (i + 1),
461 argv + i + 1, verbose_level);
462
463 i++;
464
465 if (f_v) {
466 cout << "-graph_classification" << endl;
467 cout << "i = " << i << endl;
468 cout << "argc = " << argc << endl;
469 if (i < argc) {
470 cout << "next argument is " << argv[i] << endl;
471 }
472 cout << "-graph_classification "
473 << endl;
474 }
475 }
476 else if (ST.stringcmp(argv[i], "-diophant") == 0) {
478
480 if (f_v) {
481 cout << "reading -diophant_description" << endl;
482 }
483 i += Diophant_description->read_arguments(argc - (i + 1),
484 argv + i + 1, verbose_level);
485
486 i++;
487
488 if (f_v) {
489 cout << "-diophant_description" << endl;
490 cout << "i = " << i << endl;
491 cout << "argc = " << argc << endl;
492 if (i < argc) {
493 cout << "next argument is " << argv[i] << endl;
494 }
495 cout << "-diophant_description "
496 << endl;
497 }
498 }
499 else if (ST.stringcmp(argv[i], "-design") == 0) {
500
501 f_design = TRUE;
503 if (f_v) {
504 cout << "reading -design" << endl;
505 }
506
507 i += Design_create_description->read_arguments(argc - (i + 1),
508 argv + i + 1, verbose_level);
509
510 i++;
511
512 if (f_v) {
513 cout << "-design" << endl;
514 cout << "i = " << i << endl;
515 cout << "argc = " << argc << endl;
516 if (i < argc) {
517 cout << "next argument is " << argv[i] << endl;
518 }
519 }
520 }
521 else if (ST.stringcmp(argv[i], "-design_table") == 0) {
523
524 design_table_label_design.assign(argv[++i]);
525 design_table_label.assign(argv[++i]);
526 design_table_group.assign(argv[++i]);
527
528
529 i++;
530
531 if (f_v) {
532 if (i < argc) {
533 cout << "next argument is " << argv[i] << endl;
534 }
535 cout << "-design_table " << design_table_label_design
536 << " " << design_table_label
537 << " " << design_table_group
538 << endl;
539 }
540 }
541 else if (ST.stringcmp(argv[i], "-large_set_with_symmetry_assumption") == 0) {
543
544 large_set_was_label_design_table.assign(argv[++i]);
545
547 if (f_v) {
548 cout << "reading -large_set_with_symmetry_assumption" << endl;
549 }
550 i += large_set_was_descr->read_arguments(argc - (i + 1),
551 argv + i + 1, verbose_level);
552
553 i++;
554
555 if (f_v) {
556 cout << "-large_set_with_symmetry_assumption" << endl;
557 cout << "i = " << i << endl;
558 cout << "argc = " << argc << endl;
559 if (i < argc) {
560 cout << "next argument is " << argv[i] << endl;
561 }
562 cout << "-large_set_with_symmetry_assumption " << large_set_was_label_design_table
563 << endl;
564 }
565 }
566 else if (ST.stringcmp(argv[i], "-set") == 0) {
567 f_set = TRUE;
568
569
571 if (f_v) {
572 cout << "reading -set" << endl;
573 }
574 i += Set_builder_description->read_arguments(argc - (i + 1),
575 argv + i + 1, verbose_level);
576
577 i++;
578
579 if (f_v) {
580 cout << "-set" << endl;
581 cout << "i = " << i << endl;
582 cout << "argc = " << argc << endl;
583 if (i < argc) {
584 cout << "next argument is " << argv[i] << endl;
585 }
586 cout << "-set ";
588 }
589 }
590 else if (ST.stringcmp(argv[i], "-vector") == 0) {
591 f_vector = TRUE;
592
593
595 if (f_v) {
596 cout << "reading -vector" << endl;
597 }
598 i += Vector_builder_description->read_arguments(argc - (i + 1),
599 argv + i + 1, verbose_level);
600
601 i++;
602
603 if (f_v) {
604 cout << "-vector" << endl;
605 cout << "i = " << i << endl;
606 cout << "argc = " << argc << endl;
607 if (i < argc) {
608 cout << "next argument is " << argv[i] << endl;
609 }
610 cout << "-vector ";
612 }
613 }
614 else if (ST.stringcmp(argv[i], "-combinatorial_objects") == 0) {
616
617
619 if (f_v) {
620 cout << "reading -combinatorial_objects" << endl;
621 }
623 argv + i + 1, verbose_level);
624
625 i++;
626
627 if (f_v) {
628 cout << "-vector" << endl;
629 cout << "i = " << i << endl;
630 cout << "argc = " << argc << endl;
631 if (i < argc) {
632 cout << "next argument is " << argv[i] << endl;
633 }
634 cout << "-combinatorial_objects ";
636 }
637 }
638 else if (ST.stringcmp(argv[i], "-geometry_builder") == 0) {
640
641
643 if (f_v) {
644 cout << "reading -geometry_builder" << endl;
645 }
646 i += Geometry_builder_description->read_arguments(argc - (i + 1),
647 argv + i + 1, verbose_level);
648
649 i++;
650
651 if (f_v) {
652 cout << "-vector" << endl;
653 cout << "i = " << i << endl;
654 cout << "argc = " << argc << endl;
655 if (i < argc) {
656 cout << "next argument is " << argv[i] << endl;
657 }
658 cout << "-geometry_builder ";
660 }
661 }
662
663 else {
664 cout << "unrecognized command after -define" << endl;
665 exit(1);
666 }
667 if (f_v) {
668 cout << "symbol_definition::read_definition done" << endl;
669 }
670}
671
672
674{
675 int f_v = (verbose_level >= 1);
676
677 if (f_v) {
678 cout << "symbol_definition::perform_definition" << endl;
679 }
680
681 if (f_finite_field) {
682 if (f_v) {
683 cout << "symbol_definition::perform_definition before definition_of_finite_field" << endl;
684 }
685 definition_of_finite_field(verbose_level);
686 if (f_v) {
687 cout << "symbol_definition::perform_definition after definition_of_finite_field" << endl;
688 }
689 }
690 else if (f_projective_space) {
691 if (f_v) {
692 cout << "symbol_definition::perform_definition before definition_of_projective_space" << endl;
693 }
694 definition_of_projective_space(verbose_level);
695 if (f_v) {
696 cout << "symbol_definition::perform_definition after definition_of_projective_space" << endl;
697 }
698 }
699 else if (f_orthogonal_space) {
700 if (f_v) {
701 cout << "symbol_definition::perform_definition before definition_of_orthogonal_space" << endl;
702 }
703 definition_of_orthogonal_space(verbose_level);
704 if (f_v) {
705 cout << "symbol_definition::perform_definition after definition_of_orthogonal_space" << endl;
706 }
707 }
708 else if (f_linear_group) {
709 if (f_v) {
710 cout << "symbol_definition::perform_definition before definition_of_linear_group" << endl;
711 }
712 definition_of_linear_group(verbose_level);
713 if (f_v) {
714 cout << "symbol_definition::perform_definition after definition_of_linear_group" << endl;
715 }
716 }
717 else if (f_permutation_group) {
718 if (f_v) {
719 cout << "symbol_definition::perform_definition before definition_of_permutation_group" << endl;
720 }
721 definition_of_permutation_group(verbose_level);
722 if (f_v) {
723 cout << "symbol_definition::perform_definition after definition_of_permutation_group" << endl;
724 }
725 }
726 else if (f_group_modification) {
727 if (f_v) {
728 cout << "symbol_definition::perform_definition before definition_of_modified_group" << endl;
729 }
730 definition_of_modified_group(verbose_level);
731 if (f_v) {
732 cout << "symbol_definition::perform_definition after definition_of_modified_group" << endl;
733 }
734 }
735
736
737 else if (f_formula) {
738 if (f_v) {
739 cout << "symbol_definition::perform_definition before definition_of_formula" << endl;
740 }
741 definition_of_formula(F, verbose_level);
742 if (f_v) {
743 cout << "symbol_definition::perform_definition after definition_of_formula" << endl;
744 }
745 }
746
747 else if (f_geometric_object) {
748 if (f_v) {
749 cout << "symbol_definition::perform_definition before definition_of_geometric_object" << endl;
750 }
751 definition_of_geometric_object(verbose_level);
752 if (f_v) {
753 cout << "symbol_definition::perform_definition after definition_of_geometric_object" << endl;
754 }
755 }
756 else if (f_collection) {
757 if (f_v) {
758 cout << "symbol_definition::perform_definition before definition_of_collection" << endl;
759 }
761 if (f_v) {
762 cout << "symbol_definition::perform_definition after definition_of_collection" << endl;
763 }
764 }
765 else if (f_graph) {
766 if (f_v) {
767 cout << "symbol_definition::perform_definition before definition_of_graph" << endl;
768 }
769 definition_of_graph(verbose_level);
770 if (f_v) {
771 cout << "symbol_definition::perform_definition after definition_of_graph" << endl;
772 }
773 }
774 else if (f_spread_table) {
775 if (f_v) {
776 cout << "symbol_definition::perform_definition before definition_of_projective_space" << endl;
777 }
778 definition_of_spread_table(verbose_level);
779 if (f_v) {
780 cout << "symbol_definition::perform_definition after definition_of_projective_space" << endl;
781 }
782 }
783 else if (f_packing_was) {
784 if (f_v) {
785 cout << "symbol_definition::perform_definition before definition_of_packing_was" << endl;
786 }
787 definition_of_packing_was(verbose_level);
788 if (f_v) {
789 cout << "symbol_definition::perform_definition after definition_of_packing_was" << endl;
790 }
791 }
793 if (f_v) {
794 cout << "symbol_definition::perform_definition before definition_of_packing_was_choose_fixed_points" << endl;
795 }
797 if (f_v) {
798 cout << "symbol_definition::perform_definition after definition_of_packing_was_choose_fixed_points" << endl;
799 }
800 }
801 else if (f_packing_long_orbits) {
802 if (f_v) {
803 cout << "symbol_definition::perform_definition before definition_of_packing_long_orbits" << endl;
804 }
806 if (f_v) {
807 cout << "symbol_definition::perform_definition after definition_of_packing_long_orbits" << endl;
808 }
809 }
810 else if (f_graph_classification) {
811 if (f_v) {
812 cout << "symbol_definition::perform_definition before definition_of_graph_classification" << endl;
813 }
815 if (f_v) {
816 cout << "symbol_definition::perform_definition after definition_of_graph_classification" << endl;
817 }
818 }
819 else if (f_diophant) {
820 if (f_v) {
821 cout << "symbol_definition::perform_definition before definition_of_graph_classification" << endl;
822 }
823 definition_of_diophant(verbose_level);
824 if (f_v) {
825 cout << "symbol_definition::perform_definition after definition_of_graph_classification" << endl;
826 }
827 }
828 else if (f_design) {
829 if (f_v) {
830 cout << "symbol_definition::perform_definition before definition_of_design" << endl;
831 }
832 definition_of_design(verbose_level);
833 if (f_v) {
834 cout << "symbol_definition::perform_definition after definition_of_design" << endl;
835 }
836 }
837 else if (f_design_table) {
838 if (f_v) {
839 cout << "symbol_definition::perform_definition before definition_of_design_table" << endl;
840 }
841 definition_of_design_table(verbose_level);
842 if (f_v) {
843 cout << "symbol_definition::perform_definition after definition_of_design_table" << endl;
844 }
845 }
846 else if (f_large_set_was) {
847 if (f_v) {
848 cout << "symbol_definition::perform_definition before definition_of_packing_was" << endl;
849 }
850 definition_of_large_set_was(verbose_level);
851 if (f_v) {
852 cout << "symbol_definition::perform_definition after definition_of_packing_was" << endl;
853 }
854 }
855 else if (f_set) {
856 if (f_v) {
857 cout << "symbol_definition::perform_definition before definition_of_set" << endl;
858 }
859 definition_of_set(verbose_level);
860 if (f_v) {
861 cout << "symbol_definition::perform_definition after definition_of_set" << endl;
862 }
863 }
864 else if (f_vector) {
865 if (f_v) {
866 cout << "symbol_definition::perform_definition before definition_of_vector" << endl;
867 }
868 definition_of_vector(verbose_level);
869 if (f_v) {
870 cout << "symbol_definition::perform_definition after definition_of_vector" << endl;
871 }
872 }
873 else if (f_combinatorial_objects) {
874 if (f_v) {
875 cout << "symbol_definition::perform_definition before definition_of_combinatorial_object" << endl;
876 }
878 if (f_v) {
879 cout << "symbol_definition::perform_definition after definition_of_combinatorial_object" << endl;
880 }
881 }
882 else if (f_geometry_builder) {
883 if (f_v) {
884 cout << "symbol_definition::perform_definition before do_geometry_builder" << endl;
885 }
886 do_geometry_builder(verbose_level);
887 if (f_v) {
888 cout << "symbol_definition::perform_definition after do_geometry_builder" << endl;
889 }
890 }
891
892
893
894 else {
895 if (f_v) {
896 cout << "symbol_definition::perform_definition no definition" << endl;
897 exit(1);
898 }
899 }
900}
901
902
904{
905 cout << "-define " << define_label << " ";
906 if (f_finite_field) {
907 cout << "-finite_field ";
909 }
910 if (f_projective_space) {
911 cout << "-projective_space ";
913 }
914 if (f_orthogonal_space) {
915 cout << "-orthogonal_space ";
917 }
918 if (f_linear_group) {
919 cout << "-linear_group ";
921 }
923 cout << "-permutation_group ";
925 }
927 cout << "-modified_group ";
929 }
930 if (f_formula) {
931 cout << "-formula " << label << " " << label_tex << " " << managed_variables << " " << formula_text;
932 //formula *F;
933 //std::string label;
934 //std::string label_tex;
935 //std::string managed_variables;
936 //std::string formula_text;
937 }
938 if (f_geometric_object) {
939 cout << "-geometric_object ";
941 }
942 if (f_collection) {
943 cout << "-collection ";
944 //cout << list_of_objects << endl;
945 }
946 if (f_graph) {
947 cout << "-graph ";
949 }
950 if (f_spread_table) {
951 cout << "-spread_table ";
953 }
954 if (f_packing_was) {
955 cout << "-packing_was " << packing_was_label_spread_table << endl;
957 }
959 cout << "-packing_was_choose_fixed_points ";
963 //std::string packing_with_assumed_symmetry_label;
964 //int packing_with_assumed_symmetry_choose_fixed_points_clique_size;
965 //poset_classification_control *packing_with_assumed_symmetry_choose_fixed_points_control;
966 }
968 cout << "-packing_long_orbits " << packing_long_orbits_choose_fixed_points_label << endl;
970 }
972 cout << "-graph_classification ";
974 }
975 if (f_diophant) {
976 cout << "-diophant ";
978 }
979 if (f_design) {
980 cout << "-design ";
982 }
983 if (f_design_table) {
984 cout << "-design_table "
986 << " " << design_table_label
987 << " " << design_table_group;
988 }
989 if (f_large_set_was) {
990 cout << "-large_set_was " << large_set_was_label_design_table << endl;
992 }
993 if (f_set) {
994 cout << "-set ";
996 }
997 if (f_vector) {
998 cout << "-vector ";
1000 }
1002 cout << "-combinatorial_objects ";
1004 }
1005 if (f_geometry_builder) {
1006 cout << "-geometry_builder ";
1008 }
1009}
1010
1011
1012
1013
1014
1016{
1017 int f_v = (verbose_level >= 1);
1018
1019 if (f_v) {
1020 cout << "symbol_definition::definition_of_finite_field" << endl;
1021 }
1024
1026 if (f_v) {
1027 cout << "symbol_definition::definition_of_finite_field before F->init" << endl;
1028 }
1029 F->init(Finite_field_description, verbose_level);
1030 if (f_v) {
1031 cout << "symbol_definition::definition_of_finite_field after F->init" << endl;
1032 }
1033
1035
1037 Symb->init_finite_field(define_label, F, verbose_level);
1038 if (f_v) {
1039 cout << "symbol_definition::definition_of_finite_field before add_symbol_table_entry" << endl;
1040 }
1042 define_label, Symb, verbose_level);
1043
1044 if (f_v) {
1045 cout << "symbol_definition::definition_of_finite_field done" << endl;
1046 }
1047}
1048
1050{
1051 int f_v = (verbose_level >= 1);
1052
1053 if (f_v) {
1054 cout << "symbol_definition::definition_of_projective_space" << endl;
1055 }
1058
1060 int q;
1061
1063 if (f_v) {
1064 cout << "symbol_definition::definition_of_projective_space "
1065 "creating the finite field of order " << q << endl;
1066 }
1068 F->finite_field_init(q, FALSE /* f_without_tables */, verbose_level - 1);
1069 if (f_v) {
1070 cout << "symbol_definition::definition_of_projective_space "
1071 "the finite field of order " << q << " has been created" << endl;
1072 }
1073 }
1074 else {
1075 if (f_v) {
1076 cout << "symbol_definition::definition_of_projective_space "
1077 "using existing finite field " << Projective_space_with_action_description->input_q << endl;
1078 }
1079 int idx;
1082 }
1083
1085
1086 int f_semilinear;
1088
1089
1090 if (NT.is_prime(F->q)) {
1091 f_semilinear = FALSE;
1092 }
1093 else {
1094 f_semilinear = TRUE;
1095 }
1096
1098 f_semilinear = FALSE;
1099 }
1100
1102
1104
1105 if (f_v) {
1106 cout << "symbol_definition::definition_of_projective_space before PA->init" << endl;
1107 }
1109 f_semilinear,
1110 TRUE /*f_init_incidence_structure*/,
1111 verbose_level - 2);
1112 if (f_v) {
1113 cout << "symbol_definition::definition_of_projective_space after PA->init" << endl;
1114 }
1115
1117
1119 Symb->init_projective_space(define_label, PA, verbose_level);
1120 if (f_v) {
1121 cout << "symbol_definition::definition_of_projective_space before add_symbol_table_entry" << endl;
1122 }
1124 define_label, Symb, verbose_level);
1125
1126 if (f_v) {
1127 cout << "symbol_definition::definition_of_projective_space done" << endl;
1128 }
1129}
1130
1132{
1133 int f_v = (verbose_level >= 1);
1134
1135 if (f_v) {
1136 cout << "symbol_definition::print_definition_of_projective_space" << endl;
1137 }
1139}
1140
1142{
1143 int f_v = (verbose_level >= 1);
1144
1145 if (f_v) {
1146 cout << "symbol_definition::definition_of_orthogonal_space" << endl;
1147 }
1150
1152 int q;
1153
1155 if (f_v) {
1156 cout << "symbol_definition::definition_of_orthogonal_space "
1157 "creating finite field of order " << q << endl;
1158 }
1160 F->finite_field_init(q, FALSE /* f_without_tables */, verbose_level - 1);
1161 if (f_v) {
1162 cout << "symbol_definition::definition_of_orthogonal_space "
1163 "creating finite field of order " << q << " done" << endl;
1164 }
1165 }
1166 else {
1167 if (f_v) {
1168 cout << "symbol_definition::definition_of_orthogonal_space "
1169 "using existing finite field " << Orthogonal_space_with_action_description->input_q << endl;
1170 }
1171 int idx;
1174 }
1175
1177
1178 int f_semilinear;
1180
1181
1182 if (NT.is_prime(F->q)) {
1183 f_semilinear = FALSE;
1184 }
1185 else {
1186 f_semilinear = TRUE;
1187 }
1188
1190
1192
1193 if (f_v) {
1194 cout << "symbol_definition::definition_of_orthogonal_space before OA->init" << endl;
1195 }
1197 verbose_level - 1);
1198 if (f_v) {
1199 cout << "symbol_definition::definition_of_orthogonal_space after OA->init" << endl;
1200 }
1201
1203
1205 Symb->init_orthogonal_space(define_label, OA, verbose_level);
1206 if (f_v) {
1207 cout << "symbol_definition::definition_of_orthogonal_space before add_symbol_table_entry" << endl;
1208 }
1210 define_label, Symb, verbose_level);
1211
1212 if (f_v) {
1213 cout << "symbol_definition::definition_of_orthogonal_space done" << endl;
1214 }
1215}
1216
1218{
1219 int f_v = (verbose_level >= 1);
1220
1221 if (f_v) {
1222 cout << "symbol_definition::definition_of_linear_group" << endl;
1223 }
1224
1227
1229 int q;
1230
1232 if (f_v) {
1233 cout << "symbol_definition::definition "
1234 "creating finite field of order " << q << endl;
1235 }
1237 F->finite_field_init(q, FALSE /* f_without_tables */, verbose_level - 1);
1238 if (f_v) {
1239 cout << "symbol_definition::definition "
1240 "creating finite field of order " << q << " done" << endl;
1241 }
1242 }
1243 else {
1244 if (f_v) {
1245 cout << "symbol_definition::definition "
1246 "using existing finite field " << Linear_group_description->input_q << endl;
1247 }
1248 int idx;
1251 }
1252
1253
1254
1256 //q = Descr->input_q;
1257
1259
1261 if (f_v) {
1262 cout << "symbol_definition::definition before LG->linear_group_init, "
1263 "creating the group" << endl;
1264 }
1265
1266 LG->linear_group_init(Linear_group_description, verbose_level - 2);
1267
1268 if (f_v) {
1269 cout << "symbol_definition::definition after LG->linear_group_init" << endl;
1270 }
1271
1272
1273 // create any_group object from linear_group:
1274
1275
1277
1279 if (f_v) {
1280 cout << "symbol_definition::definition before AG->init_linear_group" << endl;
1281 }
1282 AG->init_linear_group(LG, verbose_level);
1283 if (f_v) {
1284 cout << "symbol_definition::definition after AG->init_linear_group" << endl;
1285 }
1286
1287
1288
1289
1291
1293 Symb->init_any_group(define_label, AG, verbose_level);
1294 if (f_v) {
1295 cout << "symbol_definition::definition before add_symbol_table_entry" << endl;
1296 }
1298 define_label, Symb, verbose_level);
1299 if (f_v) {
1300 cout << "symbol_definition::definition_of_linear_group done" << endl;
1301 }
1302}
1303
1305{
1306 int f_v = (verbose_level >= 1);
1307
1308 if (f_v) {
1309 cout << "symbol_definition::definition_of_permutation_group" << endl;
1310 }
1311
1312
1314
1316 if (f_v) {
1317 cout << "symbol_definition::definition_of_permutation_group before PGC->permutation_group_init, "
1318 "before PGC->permutation_group_init" << endl;
1319 }
1320
1322 if (f_v) {
1323 cout << "symbol_definition::definition_of_permutation_group before PGC->permutation_group_init, "
1324 "after PGC->permutation_group_init" << endl;
1325 }
1326
1327
1328 // create any_group object from permutation_group_create:
1329
1330
1332
1334 AG->init_permutation_group(PGC, verbose_level);
1335
1336
1337
1339
1341 Symb->init_any_group(define_label, AG, verbose_level);
1342 if (f_v) {
1343 cout << "symbol_definition::definition_of_permutation_group before add_symbol_table_entry" << endl;
1344 }
1346 define_label, Symb, verbose_level);
1347 if (f_v) {
1348 cout << "symbol_definition::definition_of_permutation_group done" << endl;
1349 }
1350}
1351
1352
1354{
1355 int f_v = (verbose_level >= 1);
1356
1357 if (f_v) {
1358 cout << "symbol_definition::definition_of_modified_group" << endl;
1359 }
1360
1361
1363
1365 if (f_v) {
1366 cout << "symbol_definition::definition_of_modified_group before PGC->permutation_group_init, "
1367 "before PGC->permutation_group_init" << endl;
1368 }
1369
1371 if (f_v) {
1372 cout << "symbol_definition::definition_of_modified_group before PGC->permutation_group_init, "
1373 "after PGC->permutation_group_init" << endl;
1374 }
1375
1377
1379 AG->init_modified_group(MGC, verbose_level);
1380
1382
1384
1385 Symb->init_any_group(define_label, AG, verbose_level);
1386 if (f_v) {
1387 cout << "symbol_definition::definition_of_modified_group before add_symbol_table_entry" << endl;
1388 }
1390 define_label, Symb, verbose_level);
1391 if (f_v) {
1392 cout << "symbol_definition::definition_of_modified_group done" << endl;
1393 }
1394}
1395
1397{
1398 int f_v = (verbose_level >= 1);
1399
1400 if (f_v) {
1401 cout << "symbol_definition::definition_of_geometric_object" << endl;
1402 }
1403
1404
1406
1408
1409
1411
1413
1415
1417
1418 if (f_v) {
1419 cout << "symbol_definition::definition_of_geometric_object before GeoObj->init" << endl;
1420 }
1421
1422 GeoObj->init(Geometric_object_description, PA->P, verbose_level);
1423
1425
1427
1428
1429
1430 Symb->init_geometric_object(define_label, GeoObj, verbose_level);
1431 if (f_v) {
1432 cout << "symbol_definition::definition_of_geometric_object before add_symbol_table_entry" << endl;
1433 }
1435 define_label, Symb, verbose_level);
1436 if (f_v) {
1437 cout << "symbol_definition::definition_of_geometric_object done" << endl;
1438 }
1439}
1440
1441
1442
1443
1444
1445
1448 int verbose_level)
1449{
1450 int f_v = (verbose_level >= 1);
1451
1452 if (f_v) {
1453 cout << "symbol_definition::definition_of_formula" << endl;
1454 }
1455
1457
1459
1460 Symb->init_formula(define_label, F, verbose_level);
1461 if (f_v) {
1462 cout << "symbol_definition::definition_of_formula before add_symbol_table_entry" << endl;
1463 }
1465 define_label, Symb, verbose_level);
1466
1467 if (f_v) {
1468 cout << "symbol_definition::definition_of_formula done" << endl;
1469 }
1470}
1471
1472void symbol_definition::definition_of_collection(std::string &list_of_objects,
1473 int verbose_level)
1474{
1475 int f_v = (verbose_level >= 1);
1476
1477 if (f_v) {
1478 cout << "symbol_definition::definition_of_collection" << endl;
1479 }
1480
1482
1484 Symb->init_collection(define_label, list_of_objects, verbose_level);
1485 if (f_v) {
1486 cout << "symbol_definition::definition_of_formula before add_symbol_table_entry" << endl;
1487 }
1489 define_label, Symb, verbose_level);
1490
1491 if (f_v) {
1492 cout << "symbol_definition::definition_of_collection done" << endl;
1493 }
1494}
1495
1497{
1498 int f_v = (verbose_level >= 1);
1499
1500 if (f_v) {
1501 cout << "symbol_definition::definition_of_graph" << endl;
1502 }
1503
1505
1507
1508 if (f_v) {
1509 cout << "symbol_definition::definition_of_graph before Gr->init" << endl;
1510 }
1511 Gr->init(Create_graph_description, verbose_level);
1512 if (f_v) {
1513 cout << "symbol_definition::definition_of_graph after Gr->init" << endl;
1514 }
1515 if (f_v) {
1516 cout << "Gr->N=" << Gr->N << endl;
1517 cout << "Gr->label=" << Gr->label << endl;
1518 cout << "Gr->f_has_CG=" << Gr->f_has_CG << endl;
1519 //cout << "Adj:" << endl;
1520 //int_matrix_print(Gr->Adj, Gr->N, Gr->N);
1521 }
1522
1523
1524
1525 if (f_v) {
1526 cout << "symbol_definition::definition_of_graph we created a graph on " << Gr->N
1527 << " points, called " << Gr->label << endl;
1528
1529#if 0
1530 cout << "list of points:" << endl;
1531
1532 cout << COC->nb_pts << endl;
1533 for (i = 0; i < COC->nb_pts; i++) {
1534 cout << COC->Pts[i] << " ";
1535 }
1536 cout << endl;
1537#endif
1538 }
1539
1540
1542
1544 Symb->init_graph(define_label, Gr->CG, verbose_level);
1545 if (f_v) {
1546 cout << "symbol_definition::definition_of_graph before add_symbol_table_entry" << endl;
1547 }
1549 define_label, Symb, verbose_level);
1550
1551
1552
1553 if (f_v) {
1554 cout << "symbol_definition::definition_of_graph done" << endl;
1555 }
1556}
1557
1558
1560{
1561 int f_v = (verbose_level >= 1);
1562
1563 if (f_v) {
1564 cout << "symbol_definition::definition_of_spread_table" << endl;
1565 }
1566
1567 if (f_v) {
1568 cout << "symbol_definition::definition_of_spread_table "
1569 "using existing PA " << spread_table_label_PA << endl;
1570 }
1571 int idx;
1573
1576
1577
1578
1579
1581
1582 if (f_v) {
1583 cout << "symbol_definition::definition_of_spread_table before P->spread_table_init" << endl;
1584 }
1585
1587
1589 PA,
1591 TRUE /* f_select_spread */, spread_selection_text,
1593 verbose_level);
1594
1595
1596 if (f_v) {
1597 cout << "symbol_definition::definition_of_spread_table after do_spread_table_init" << endl;
1598 }
1599
1600
1601
1602
1604
1606 Symb->init_spread_table(define_label, P, verbose_level);
1607 if (f_v) {
1608 cout << "symbol_definition::definition_of_spread_table before add_symbol_table_entry" << endl;
1609 }
1611 define_label, Symb, verbose_level);
1612
1613
1614
1615 if (f_v) {
1616 cout << "symbol_definition::definition_of_spread_table done" << endl;
1617 }
1618}
1619
1620
1622{
1623 int f_v = (verbose_level >= 1);
1624
1625 if (f_v) {
1626 cout << "symbol_definition::definition_of_packing_was" << endl;
1627 }
1628
1629 if (f_v) {
1630 cout << "symbol_definition::definition_of_packing_was "
1631 "using existing spread table " << packing_was_label_spread_table << endl;
1632 }
1633 int idx;
1635
1638
1639
1640
1641
1642
1643
1645
1647
1648 if (f_v) {
1649 cout << "symbol_definition::definition_of_packing_was before PW->init" << endl;
1650 }
1651
1652 PW->init(packing_was_descr, P, verbose_level);
1653
1654 if (f_v) {
1655 cout << "symbol_definition::perform_activity after PW->init" << endl;
1656 }
1657
1658
1659
1660
1662
1664 Symb->init_packing_was(define_label, PW, verbose_level);
1665 if (f_v) {
1666 cout << "symbol_definition::definition_of_packing_was before add_symbol_table_entry" << endl;
1667 }
1669 define_label, Symb, verbose_level);
1670
1671
1672
1673 if (f_v) {
1674 cout << "symbol_definition::definition_of_packing_was done" << endl;
1675 }
1676}
1677
1678
1679
1681{
1682 int f_v = (verbose_level >= 1);
1683
1684 if (f_v) {
1685 cout << "symbol_definition::definition_of_packing_was_choose_fixed_points" << endl;
1686 }
1687
1688 if (f_v) {
1689 cout << "symbol_definition::definition_of_packing_was_choose_fixed_points "
1690 "using existing object " << packing_with_assumed_symmetry_label << endl;
1691 }
1692 int idx;
1694
1697
1698
1700
1702
1703 if (f_v) {
1704 cout << "symbol_definition::definition_of_packing_was_choose_fixed_points before PWF->init" << endl;
1705 }
1706
1707 PWF->init(PW,
1710 verbose_level);
1711
1712 if (f_v) {
1713 cout << "symbol_definition::definition_of_packing_was_choose_fixed_points after PWF->init" << endl;
1714 }
1715
1720 verbose_level);
1721 }
1722 else {
1723 cout << "symbol_definition::definition_of_packing_was_choose_fixed_points clique size on fixed spreads is zero, so nothing to do" << endl;
1724 }
1725
1726
1727
1728
1730
1732 Symb->init_packing_was_choose_fixed_points(define_label, PWF, verbose_level);
1733 if (f_v) {
1734 cout << "symbol_definition::definition_of_packing_was_choose_fixed_points before add_symbol_table_entry" << endl;
1735 }
1737 define_label, Symb, verbose_level);
1738
1739
1740
1741 if (f_v) {
1742 cout << "symbol_definition::definition_of_packing_was_choose_fixed_points done" << endl;
1743 }
1744}
1745
1746
1747
1748
1749
1751{
1752 int f_v = (verbose_level >= 1);
1753
1754 if (f_v) {
1755 cout << "symbol_definition::definition_of_packing_long_orbits" << endl;
1756 }
1757
1758 if (f_v) {
1759 cout << "symbol_definition::definition_of_packing_long_orbits "
1760 "using existing object " << packing_long_orbits_choose_fixed_points_label << endl;
1761 }
1762 int idx;
1763
1765
1768
1769
1771
1773
1774 if (f_v) {
1775 cout << "symbol_definition::definition_of_packing_long_orbits before PL->init" << endl;
1776 }
1777
1778 PL->init(PWF, Packing_long_orbits_description, verbose_level);
1779
1780 if (f_v) {
1781 cout << "symbol_definition::definition_of_packing_long_orbits after PL->init" << endl;
1782 }
1783
1784
1785
1786
1788
1790 Symb->init_packing_long_orbits(define_label, PL, verbose_level);
1791 if (f_v) {
1792 cout << "symbol_definition::definition_of_packing_long_orbits before add_symbol_table_entry" << endl;
1793 }
1795 define_label, Symb, verbose_level);
1796
1797
1798
1799 if (f_v) {
1800 cout << "symbol_definition::definition_of_packing_long_orbits done" << endl;
1801 }
1802}
1803
1804
1806{
1807 int f_v = (verbose_level >= 1);
1808
1809 if (f_v) {
1810 cout << "symbol_definition::definition_of_graph_classification" << endl;
1811 }
1812
1813 if (f_v) {
1814 cout << "symbol_definition::definition_of_graph_classification "
1815 "using existing object " << packing_long_orbits_choose_fixed_points_label << endl;
1816 }
1817
1818
1820
1821
1823
1824 if (f_v) {
1825 cout << "symbol_definition::definition_of_graph_classification before GC->init" << endl;
1826 }
1827
1828 GC->init(Graph_classify_description, verbose_level);
1829
1830 if (f_v) {
1831 cout << "symbol_definition::definition_of_graph_classification after GC->init" << endl;
1832 }
1833
1834
1835
1836
1838
1840 Symb->init_graph_classify(define_label, GC, verbose_level);
1841 if (f_v) {
1842 cout << "symbol_definition::definition_of_graph_classification before add_symbol_table_entry" << endl;
1843 }
1845 define_label, Symb, verbose_level);
1846
1847
1848
1849 if (f_v) {
1850 cout << "symbol_definition::definition_of_graph_classification done" << endl;
1851 }
1852}
1853
1855{
1856 int f_v = (verbose_level >= 1);
1857
1858 if (f_v) {
1859 cout << "symbol_definition::definition_of_diophant" << endl;
1860 }
1861
1862 if (f_v) {
1863 cout << "symbol_definition::definition_of_diophant "
1864 "using existing object " << packing_long_orbits_choose_fixed_points_label << endl;
1865 }
1866
1867
1869
1870
1872
1873 if (f_v) {
1874 cout << "symbol_definition::definition_of_diophant before Dio->init" << endl;
1875 }
1876
1877 Dio->init(Diophant_description, verbose_level);
1878
1879
1880 if (f_v) {
1881 cout << "symbol_definition::definition_of_diophant after Dio->init" << endl;
1882 }
1883
1884
1885
1886
1888
1890 Symb->init_diophant(define_label, Dio, verbose_level);
1891 if (f_v) {
1892 cout << "symbol_definition::definition_of_diophant before add_symbol_table_entry" << endl;
1893 }
1895 define_label, Symb, verbose_level);
1896
1897
1898
1899 if (f_v) {
1900 cout << "symbol_definition::definition_of_diophant done" << endl;
1901 }
1902}
1903
1904
1905
1907{
1908 int f_v = (verbose_level >= 1);
1909
1910 if (f_v) {
1911 cout << "symbol_definition::definition_of_design" << endl;
1912 }
1913
1914
1916
1917
1919
1920 if (f_v) {
1921 cout << "symbol_definition::definition_of_design before DC->init" << endl;
1922 }
1923
1924 DC->init(Design_create_description, verbose_level);
1925 if (f_v) {
1926 cout << "symbol_definition::definition_of_design after DC->init" << endl;
1927 }
1928
1929
1930
1931
1933
1935 Symb->init_design(define_label, DC, verbose_level);
1936 if (f_v) {
1937 cout << "symbol_definition::definition_of_design before add_symbol_table_entry" << endl;
1938 }
1940 define_label, Symb, verbose_level);
1941
1942
1943
1944 if (f_v) {
1945 cout << "symbol_definition::definition_of_design done" << endl;
1946 }
1947}
1948
1949
1950
1952{
1953 int f_v = (verbose_level >= 1);
1954
1955 if (f_v) {
1956 cout << "symbol_definition::definition_of_design_table" << endl;
1957 }
1958
1959 if (f_v) {
1960 cout << "symbol_definition::definition_of_design_table "
1961 "using existing design " << design_table_label_design << endl;
1962 }
1963 int idx;
1965
1968
1969
1970
1971
1973
1975
1977
1979
1980 if (t != t_any_group) {
1981 cout << "object must be of type group, but is ";
1983 cout << endl;
1984 exit(1);
1985 }
1987
1988
1989
1992
1993
1994 if (f_v) {
1995 cout << "symbol_definition::definition_of_design_table before Combi.create_design_table" << endl;
1996 }
1997
1998 Combi.create_design_table(DC,
2000 T,
2001 AG->Subgroup_gens,
2002 verbose_level);
2003
2004 if (f_v) {
2005 cout << "symbol_definition::definition_of_design_table after Combi.create_design_table" << endl;
2006 }
2007
2008
2009
2011
2013
2014 LS->init(DC,
2015 T,
2016 verbose_level);
2017
2018
2019
2021
2023 Symb->init_design_table(define_label, LS, verbose_level);
2024 if (f_v) {
2025 cout << "symbol_definition::definition_of_design_table before add_symbol_table_entry" << endl;
2026 }
2028 define_label, Symb, verbose_level);
2029
2030
2031
2032 if (f_v) {
2033 cout << "symbol_definition::definition_of_design_table done" << endl;
2034 }
2035}
2036
2037
2039{
2040 int f_v = (verbose_level >= 1);
2041
2042 if (f_v) {
2043 cout << "symbol_definition::definition_of_large_set_was" << endl;
2044 }
2045
2046 if (f_v) {
2047 cout << "symbol_definition::definition_of_large_set_was "
2048 "using existing spread table " << packing_was_label_spread_table << endl;
2049 }
2050 int idx;
2052
2055
2056
2057
2058
2059
2060
2062
2064
2065 if (f_v) {
2066 cout << "symbol_definition::definition_of_large_set_was before LSW->init" << endl;
2067 }
2068
2069 LSW->init(large_set_was_descr, LS, verbose_level);
2070
2071 if (f_v) {
2072 cout << "symbol_definition::definition_of_large_set_was after LSW->init" << endl;
2073 }
2074
2075
2076
2077
2079
2081 Symb->init_large_set_was(define_label, LSW, verbose_level);
2082 if (f_v) {
2083 cout << "symbol_definition::definition_of_large_set_was before add_symbol_table_entry" << endl;
2084 }
2086 define_label, Symb, verbose_level);
2087
2088
2089
2090 if (f_v) {
2091 cout << "symbol_definition::definition_of_large_set_was done" << endl;
2092 }
2093}
2094
2096{
2097 int f_v = (verbose_level >= 1);
2098
2099 if (f_v) {
2100 cout << "symbol_definition::definition_of_set" << endl;
2101 }
2102
2103
2105
2107
2108 if (f_v) {
2109 cout << "symbol_definition::definition_of_set before SB->init" << endl;
2110 }
2111
2112 SB->init(Set_builder_description, verbose_level);
2113
2114 if (f_v) {
2115 cout << "symbol_definition::definition_of_set after SB->init" << endl;
2116 }
2117
2118
2120
2122 Symb->init_set(define_label, SB, verbose_level);
2123 if (f_v) {
2124 cout << "symbol_definition::definition_of_set before add_symbol_table_entry" << endl;
2125 }
2127 define_label, Symb, verbose_level);
2128
2129
2130
2131 if (f_v) {
2132 cout << "symbol_definition::definition_of_set done" << endl;
2133 }
2134}
2135
2137{
2138 int f_v = (verbose_level >= 1);
2139
2140 if (f_v) {
2141 cout << "symbol_definition::definition_of_vector" << endl;
2142 }
2143
2144
2146
2148
2149 int idx;
2150
2153 if (f_v) {
2154 cout << "symbol_definition::definition_of_vector over a field" << endl;
2155 }
2156
2157
2158 }
2159 else {
2160 if (f_v) {
2161 cout << "symbol_definition::definition_of_vector not over a field" << endl;
2162 }
2163
2164 }
2165
2166
2168
2170
2171 if (f_v) {
2172 cout << "symbol_definition::definition_of_vector before VB->init" << endl;
2173 }
2174
2175 VB->init(Vector_builder_description, F, verbose_level);
2176
2177 if (f_v) {
2178 cout << "symbol_definition::definition_of_vector after VB->init" << endl;
2179 }
2180
2181
2183
2185 Symb->init_vector(define_label, VB, verbose_level);
2186 if (f_v) {
2187 cout << "symbol_definition::definition_of_vector before add_symbol_table_entry" << endl;
2188 }
2190 define_label, Symb, verbose_level);
2191
2192
2193
2194 if (f_v) {
2195 cout << "symbol_definition::definition_of_vector done" << endl;
2196 }
2197}
2198
2200{
2201 int f_v = (verbose_level >= 1);
2202
2203 if (f_v) {
2204 cout << "symbol_definition::definition_of_combinatorial_object" << endl;
2205 }
2206
2208
2210
2211 if (f_v) {
2212 cout << "symbol_definition::definition_of_combinatorial_object before IS->init" << endl;
2213 }
2214
2215 IS->init(Data_input_stream_description, verbose_level);
2216
2217 if (f_v) {
2218 cout << "symbol_definition::definition_of_combinatorial_object after IS->init" << endl;
2219 }
2220
2221
2223
2225 Symb->init_combinatorial_objects(define_label, IS, verbose_level);
2226 if (f_v) {
2227 cout << "symbol_definition::definition_of_combinatorial_object before add_symbol_table_entry" << endl;
2228 }
2230 define_label, Symb, verbose_level);
2231
2232
2233
2234 if (f_v) {
2235 cout << "symbol_definition::definition_of_combinatorial_object done" << endl;
2236 }
2237}
2238
2240{
2241 int f_v = (verbose_level >= 1);
2242
2243 if (f_v) {
2244 cout << "symbol_definition::do_geometry_builder" << endl;
2245 }
2246
2248
2250
2252
2253 GB->gg->main2(verbose_level);
2254
2255
2257
2259 Symb->init_geometry_builder_object(define_label, GB, verbose_level);
2260 if (f_v) {
2261 cout << "symbol_definition::do_geometry_builder before add_symbol_table_entry" << endl;
2262 }
2264 define_label, Symb, verbose_level);
2265
2266
2267
2268 if (f_v) {
2269 cout << "symbol_definition::do_geometry_builder done" << endl;
2270 }
2271}
2272
2273
2274}}}
2275
2276
2277
2278
description of input data for classification of geometric objects from the command line
input data for classification of geometric objects from the command line
void init(data_input_stream_description *Descr, int verbose_level)
to define a set of integers for class set_builder
int read_arguments(int argc, std::string *argv, int verbose_level)
to create a set of integers from class set_builder_description
void init(set_builder_description *Descr, int verbose_level)
Definition: set_builder.cpp:37
functions related to strings and character arrays
to create a vector of field elements from class vector_builder_description
void init(vector_builder_description *Descr, field_theory::finite_field *F, int verbose_level)
void init(std::string &label, std::string &label_tex, std::string &managed_variables, std::string &formula_text, int verbose_level)
Definition: formula.cpp:52
int read_arguments(int argc, std::string *argv, int verbose_level)
to create a geometric object from a description using class geometric_object_description
Definition: geometry.h:568
void init(geometric_object_description *Descr, projective_space *P, int verbose_level)
to create a geometric object encoded as a set using a description from the command line
Definition: geometry.h:598
void init_description(geometry_builder_description *Descr, int verbose_level)
symbol table to store data entries for the orbiter run-time system
void init_packing_long_orbits(std::string &label, void *PL, int verbose_level)
void init_set(std::string &label, void *SB, int verbose_level)
void init_projective_space(std::string &label, void *p, int verbose_level)
void init_graph(std::string &label, void *Gr, int verbose_level)
void init_geometric_object(std::string &label, geometry::geometric_object_create *COC, int verbose_level)
void init_diophant(std::string &label, void *Dio, int verbose_level)
void init_spread_table(std::string &label, void *P, int verbose_level)
void init_collection(std::string &label, std::string &list_of_objects, int verbose_level)
void init_any_group(std::string &label, void *p, int verbose_level)
void init_large_set_was(std::string &label, void *LSW, int verbose_level)
void init_finite_field(std::string &label, field_theory::finite_field *F, int verbose_level)
void init_design(std::string &label, void *DC, int verbose_level)
void init_packing_was_choose_fixed_points(std::string &label, void *P, int verbose_level)
void init_combinatorial_objects(std::string &label, data_structures::data_input_stream *IS, int verbose_level)
void init_packing_was(std::string &label, void *P, int verbose_level)
void init_orthogonal_space(std::string &label, void *p, int verbose_level)
void init_vector(std::string &label, void *VB, int verbose_level)
void init_geometry_builder_object(std::string &label, geometry_builder::geometry_builder *GB, int verbose_level)
void init_formula(std::string &label, void *p, int verbose_level)
void init_graph_classify(std::string &label, void *GC, int verbose_level)
void init_design_table(std::string &label, void *DT, int verbose_level)
to create a diophantine system from diophant_description
Definition: solvers.h:101
void init(diophant_description *Descr, int verbose_level)
to describe a diophantine system from command line arguments
Definition: solvers.h:125
int read_arguments(int argc, std::string *argv, int verbose_level)
description of a linear group from the command line
Definition: groups.h:158
int read_arguments(int argc, std::string *argv, int verbose_level)
creates a linear group from command line arguments using linear_group_description
Definition: groups.h:244
void linear_group_init(linear_group_description *description, int verbose_level)
a domain for permutation groups whose elements are given in the permutation representation
Definition: groups.h:636
void permutation_group_init(permutation_group_description *description, int verbose_level)
a domain for permutation groups whose elements are given in the permutation representation
Definition: groups.h:677
to control the behavior of the poset classification algorithm
a wrapper for linear_group and permutation_group_create
void init_permutation_group(groups::permutation_group_create *PGC, int verbose_level)
Definition: any_group.cpp:83
void init_modified_group(modified_group_create *MGC, int verbose_level)
Definition: any_group.cpp:121
void init_linear_group(groups::linear_group *LG, int verbose_level)
Definition: any_group.cpp:47
to create a new group or group action from old ones, using class group_modification_description
void modified_group_init(group_modification_description *description, int verbose_level)
void create_design_table(design_create *DC, std::string &problem_label, design_tables *&T, groups::strong_generators *Gens, int verbose_level)
to describe the construction of a known design from the command line
to create a known design using a description from class design_create_description
void init(apps_combinatorics::design_create_description *Descr, int verbose_level)
void init(design_create *DC, design_tables *T, int verbose_level)
command line description of tasks for large sets with assumed symmetry
classification of large sets of designs with assumed symmetry
void init(large_set_was_description *Descr, large_set_classify *LS, int verbose_level)
a description of a graph using command line arguments
Definition: graph_theory.h:110
creates a graph from a description with create_graph_description
Definition: graph_theory.h:213
void init(create_graph_description *description, int verbose_level)
void init(graph_classify_description *Descr, int verbose_level)
void init(orthogonal_space_with_action_description *Descr, int verbose_level)
classification of packings in PG(3,q)
Definition: packings.h:66
void spread_table_init(projective_geometry::projective_space_with_action *PA, int dimension_of_spread_elements, int f_select_spread, std::string &select_spread_text, std::string &path_to_spread_tables, int verbose_level)
command line description of picking long orbits of packings with assumed symmetry
Definition: packings.h:245
complete a partial packing from a clique on the fixpoint graph using long orbits, utilizing clique se...
Definition: packings.h:284
void init(packing_was_fixpoints *PWF, packing_long_orbits_description *Descr, int verbose_level)
command line description of tasks for packings with assumed symmetry
Definition: packings.h:402
int read_arguments(int argc, std::string *argv, int verbose_level)
picking fixed points in the construction of packings in PG(3,q) with assumed symmetry
Definition: packings.h:494
void init(packing_was *PW, int fixpoint_clique_size, poset_classification::poset_classification_control *Control, int verbose_level)
void compute_cliques_on_fixpoint_graph(int clique_size, poset_classification::poset_classification_control *Control, int verbose_level)
construction of packings in PG(3,q) with assumed symmetry
Definition: packings.h:564
void init(packing_was_description *Descr, packing_classify *P, int verbose_level)
projective space PG(n,q) with automorphism group PGGL(n+1,q)
void init(field_theory::finite_field *F, int n, int f_semilinear, int f_init_incidence_structure, int verbose_level)
projective_geometry::projective_space_with_action * get_object_of_type_projective_space(std::string &label)
void add_symbol_table_entry(std::string &label, orbiter_kernel_system::orbiter_symbol_table_entry *Symb, int verbose_level)
apps_combinatorics::design_create_description * Design_create_description
Definition: interfaces.h:919
void definition_of_formula(expression_parser::formula *F, int verbose_level)
orthogonal_geometry_applications::orthogonal_space_with_action_description * Orthogonal_space_with_action_description
Definition: interfaces.h:863
packings::packing_long_orbits_description * Packing_long_orbits_description
Definition: interfaces.h:910
data_structures::set_builder_description * Set_builder_description
Definition: interfaces.h:932
geometry::geometric_object_description * Geometric_object_description
Definition: interfaces.h:887
apps_combinatorics::large_set_was_description * large_set_was_descr
Definition: interfaces.h:929
void definition_of_collection(std::string &list_of_objects, int verbose_level)
geometry_builder::geometry_builder_description * Geometry_builder_description
Definition: interfaces.h:941
groups::linear_group_description * Linear_group_description
Definition: interfaces.h:867
projective_geometry::projective_space_with_action_description * Projective_space_with_action_description
Definition: interfaces.h:860
void read_definition(interface_symbol_table *Sym, int argc, std::string *argv, int &i, int verbose_level)
field_theory::finite_field_description * Finite_field_description
Definition: interfaces.h:857
data_structures::vector_builder_description * Vector_builder_description
Definition: interfaces.h:935
apps_graph_theory::graph_classify_description * Graph_classify_description
Definition: interfaces.h:913
apps_graph_theory::create_graph_description * Create_graph_description
Definition: interfaces.h:890
groups::permutation_group_description * Permutation_group_description
Definition: interfaces.h:870
apps_algebra::group_modification_description * Group_modification_description
Definition: interfaces.h:873
poset_classification::poset_classification_control * packing_with_assumed_symmetry_choose_fixed_points_control
Definition: interfaces.h:905
data_structures::data_input_stream_description * Data_input_stream_description
Definition: interfaces.h:938
#define NEW_OBJECT(type)
Definition: foundations.h:638
#define TRUE
Definition: foundations.h:231
#define FALSE
Definition: foundations.h:234
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
user_interface::orbiter_top_level_session * The_Orbiter_top_level_session
the orbiter library for the classification of combinatorial objects