Orbiter 2022
Combinatorial Objects
activity_description.cpp
Go to the documentation of this file.
1/*
2 * activity_description.cpp
3 *
4 * Created on: Jun 20, 2021
5 * Author: betten
6 */
7
8
9#include "orbiter.h"
10
11using namespace std;
12
13namespace orbiter {
14namespace layer5_applications {
15namespace user_interface {
16
17
19{
20 Sym = NULL;
21
22 f_finite_field_activity = FALSE;
23 Finite_field_activity_description = NULL;
24
25 f_projective_space_activity = FALSE;
26 Projective_space_activity_description = NULL;
27
28 f_orthogonal_space_activity = FALSE;
29 Orthogonal_space_activity_description = NULL;
30
31 f_group_theoretic_activity = FALSE;
32 Group_theoretic_activity_description = NULL;
33
34 f_cubic_surface_activity = FALSE;
35 Cubic_surface_activity_description = NULL;
36
37 f_quartic_curve_activity = FALSE;
38 Quartic_curve_activity_description = NULL;
39
40 f_combinatorial_object_activity = FALSE;
41 Combinatorial_object_activity_description = NULL;
42
43 f_graph_theoretic_activity = FALSE;
44 Graph_theoretic_activity_description = NULL;
45
46 f_classification_of_cubic_surfaces_with_double_sixes_activity = FALSE;
47 Classification_of_cubic_surfaces_with_double_sixes_activity_description = NULL;
48
49 f_spread_table_activity = FALSE;
50 Spread_table_activity_description = NULL;
51
52 f_packing_with_symmetry_assumption_activity = FALSE;
53 Packing_was_activity_description = NULL;
54
55 f_packing_fixed_points_activity = FALSE;
56 Packing_was_fixpoints_activity_description = NULL;
57
58 f_graph_classification_activity = FALSE;
59 Graph_classification_activity_description = NULL;
60
61 f_diophant_activity = FALSE;
62 Diophant_activity_description = NULL;
63
64 f_design_activity = FALSE;
65 Design_activity_description = NULL;
66
67
68 f_large_set_was_activity = FALSE;
69 Large_set_was_activity_description = NULL;
70}
71
73{
74
75}
76
77
80 int argc, std::string *argv, int &i, int verbose_level)
81{
82 int f_v = (verbose_level >= 1);
83
84 if (f_v) {
85 cout << "activity_description::read_arguments" << endl;
86 }
88
89 activity_description::Sym = Sym;
90
91 if (ST.stringcmp(argv[i], "-finite_field_activity") == 0) {
92 f_finite_field_activity = TRUE;
93 Finite_field_activity_description =
95 if (f_v) {
96 cout << "reading -finite_field_activity" << endl;
97 }
98 i += Finite_field_activity_description->read_arguments(argc - (i + 1),
99 argv + i + 1, verbose_level);
100
101 i++;
102
103 if (f_v) {
104 cout << "-finite_field_activity" << endl;
105 cout << "i = " << i << endl;
106 cout << "argc = " << argc << endl;
107 if (i < argc) {
108 cout << "next argument is " << argv[i] << endl;
109 }
110 }
111 }
112 else if (ST.stringcmp(argv[i], "-projective_space_activity") == 0) {
113 f_projective_space_activity = TRUE;
114 Projective_space_activity_description =
116 if (f_v) {
117 cout << "reading -projective_space_activity" << endl;
118 }
119 i += Projective_space_activity_description->read_arguments(argc - (i + 1),
120 argv + i + 1, verbose_level);
121
122 i++;
123
124 if (f_v) {
125 cout << "-projective_space_activity" << endl;
126 cout << "i = " << i << endl;
127 cout << "argc = " << argc << endl;
128 if (i < argc) {
129 cout << "next argument is " << argv[i] << endl;
130 }
131 }
132 }
133 else if (ST.stringcmp(argv[i], "-orthogonal_space_activity") == 0) {
134 f_orthogonal_space_activity = TRUE;
135 Orthogonal_space_activity_description =
137 if (f_v) {
138 cout << "reading -orthogonal_space_activity" << endl;
139 }
140 i += Orthogonal_space_activity_description->read_arguments(argc - (i + 1),
141 argv + i + 1, verbose_level);
142
143 i++;
144
145 if (f_v) {
146 cout << "-orthogonal_space_activity" << endl;
147 cout << "i = " << i << endl;
148 cout << "argc = " << argc << endl;
149 if (i < argc) {
150 cout << "next argument is " << argv[i] << endl;
151 }
152 }
153 }
154 else if (ST.stringcmp(argv[i], "-group_theoretic_activity") == 0) {
155 f_group_theoretic_activity = TRUE;
156 Group_theoretic_activity_description =
158 if (f_v) {
159 cout << "reading -group_theoretic_activities" << endl;
160 }
161 i += Group_theoretic_activity_description->read_arguments(argc - (i + 1),
162 argv + i + 1, verbose_level);
163
164 i++;
165
166 if (f_v) {
167 cout << "-group_theoretic_activities" << endl;
168 cout << "i = " << i << endl;
169 cout << "argc = " << argc << endl;
170 if (i < argc) {
171 cout << "next argument is " << argv[i] << endl;
172 }
173 }
174 }
175 else if (ST.stringcmp(argv[i], "-cubic_surface_activity") == 0) {
176 f_cubic_surface_activity = TRUE;
177 Cubic_surface_activity_description =
179 if (f_v) {
180 cout << "reading -cubic_surface_activity" << endl;
181 }
182 i += Cubic_surface_activity_description->read_arguments(argc - (i + 1),
183 argv + i + 1, verbose_level);
184
185 i++;
186
187 if (f_v) {
188 cout << "-cubic_surface_activity" << endl;
189 cout << "i = " << i << endl;
190 cout << "argc = " << argc << endl;
191 if (i < argc) {
192 cout << "next argument is " << argv[i] << endl;
193 }
194 }
195 }
196 else if (ST.stringcmp(argv[i], "-quartic_curve_activity") == 0) {
197 f_quartic_curve_activity = TRUE;
198 Quartic_curve_activity_description =
200 if (f_v) {
201 cout << "reading -quartic_curve_activity" << endl;
202 }
203 i += Quartic_curve_activity_description->read_arguments(argc - (i + 1),
204 argv + i + 1, verbose_level);
205
206 i++;
207
208 if (f_v) {
209 cout << "-quartic_curve_activity" << endl;
210 cout << "i = " << i << endl;
211 cout << "argc = " << argc << endl;
212 if (i < argc) {
213 cout << "next argument is " << argv[i] << endl;
214 }
215 }
216 }
217 else if (ST.stringcmp(argv[i], "-combinatorial_object_activity") == 0) {
218 f_combinatorial_object_activity = TRUE;
219 Combinatorial_object_activity_description =
221 if (f_v) {
222 cout << "reading -combinatorial_object_activity" << endl;
223 }
224 i += Combinatorial_object_activity_description->read_arguments(argc - (i + 1),
225 argv + i + 1, verbose_level);
226
227 i++;
228
229 if (f_v) {
230 cout << "-combinatorial_object_activity" << endl;
231 cout << "i = " << i << endl;
232 cout << "argc = " << argc << endl;
233 if (i < argc) {
234 cout << "next argument is " << argv[i] << endl;
235 }
236 }
237 }
238 else if (ST.stringcmp(argv[i], "-graph_theoretic_activity") == 0) {
239 f_graph_theoretic_activity = TRUE;
240 Graph_theoretic_activity_description =
242 if (f_v) {
243 cout << "reading -graph_theoretic_activity" << endl;
244 }
245 i += Graph_theoretic_activity_description->read_arguments(argc - (i + 1),
246 argv + i + 1, verbose_level);
247
248 i++;
249
250 if (f_v) {
251 cout << "-graph_theoretic_activity" << endl;
252 cout << "i = " << i << endl;
253 cout << "argc = " << argc << endl;
254 if (i < argc) {
255 cout << "next argument is " << argv[i] << endl;
256 }
257 }
258 }
259 else if (ST.stringcmp(argv[i], "-classification_of_cubic_surfaces_with_double_sixes_activity") == 0) {
260 f_classification_of_cubic_surfaces_with_double_sixes_activity = TRUE;
261 Classification_of_cubic_surfaces_with_double_sixes_activity_description =
263 if (f_v) {
264 cout << "reading -classification_of_cubic_surfaces_with_double_sixes_activity" << endl;
265 }
266 i += Classification_of_cubic_surfaces_with_double_sixes_activity_description->read_arguments(argc - (i + 1),
267 argv + i + 1, verbose_level);
268
269 i++;
270
271 if (f_v) {
272 cout << "-classification_of_cubic_surfaces_with_double_sixes_activity" << endl;
273 cout << "i = " << i << endl;
274 cout << "argc = " << argc << endl;
275 if (i < argc) {
276 cout << "next argument is " << argv[i] << endl;
277 }
278 }
279 }
280 else if (ST.stringcmp(argv[i], "-spread_table_activity") == 0) {
281 f_spread_table_activity = TRUE;
282 Spread_table_activity_description =
284 if (f_v) {
285 cout << "reading -classification_of_cubic_surfaces_with_double_sixes_activity" << endl;
286 }
287 i += Spread_table_activity_description->read_arguments(argc - (i + 1),
288 argv + i + 1, verbose_level);
289
290 i++;
291
292 if (f_v) {
293 cout << "-spread_table_activity" << endl;
294 cout << "i = " << i << endl;
295 cout << "argc = " << argc << endl;
296 if (i < argc) {
297 cout << "next argument is " << argv[i] << endl;
298 }
299 }
300 }
301 else if (ST.stringcmp(argv[i], "-packing_with_symmetry_assumption_activity") == 0) {
302 f_packing_with_symmetry_assumption_activity = TRUE;
303 Packing_was_activity_description =
305 if (f_v) {
306 cout << "reading -packing_with_symmetry_assumption_activity" << endl;
307 }
308 i += Packing_was_activity_description->read_arguments(argc - (i + 1),
309 argv + i + 1, verbose_level);
310
311 i++;
312
313 if (f_v) {
314 cout << "-packing_with_symmetry_assumption_activity" << endl;
315 cout << "i = " << i << endl;
316 cout << "argc = " << argc << endl;
317 if (i < argc) {
318 cout << "next argument is " << argv[i] << endl;
319 }
320 }
321 }
322 else if (ST.stringcmp(argv[i], "-packing_fixed_points_activity") == 0) {
323 f_packing_fixed_points_activity = TRUE;
324 Packing_was_fixpoints_activity_description =
326 if (f_v) {
327 cout << "reading -packing_fixed_points_activity" << endl;
328 }
329 i += Packing_was_fixpoints_activity_description->read_arguments(argc - (i + 1),
330 argv + i + 1, verbose_level);
331
332 i++;
333
334 if (f_v) {
335 cout << "-packing_fixed_points_activity" << endl;
336 cout << "i = " << i << endl;
337 cout << "argc = " << argc << endl;
338 if (i < argc) {
339 cout << "next argument is " << argv[i] << endl;
340 }
341 }
342 }
343 else if (ST.stringcmp(argv[i], "-graph_classification_activity") == 0) {
344 f_graph_classification_activity = TRUE;
345 Graph_classification_activity_description =
347 if (f_v) {
348 cout << "reading -graph_classification_activity" << endl;
349 }
350 i += Graph_classification_activity_description->read_arguments(argc - (i + 1),
351 argv + i + 1, verbose_level);
352
353 i++;
354
355 if (f_v) {
356 cout << "-graph_classification_activity" << endl;
357 cout << "i = " << i << endl;
358 cout << "argc = " << argc << endl;
359 if (i < argc) {
360 cout << "next argument is " << argv[i] << endl;
361 }
362 }
363 }
364 else if (ST.stringcmp(argv[i], "-diophant_activity") == 0) {
365 f_diophant_activity = TRUE;
366 Diophant_activity_description =
368 if (f_v) {
369 cout << "reading -diophant_activity" << endl;
370 }
371 i += Diophant_activity_description->read_arguments(argc - (i + 1),
372 argv + i + 1, verbose_level);
373
374 i++;
375
376 if (f_v) {
377 cout << "-diophant_activity" << endl;
378 cout << "i = " << i << endl;
379 cout << "argc = " << argc << endl;
380 if (i < argc) {
381 cout << "next argument is " << argv[i] << endl;
382 }
383 }
384 }
385 else if (ST.stringcmp(argv[i], "-design_activity") == 0) {
386 f_design_activity = TRUE;
387 Design_activity_description =
389 if (f_v) {
390 cout << "reading -design_activity" << endl;
391 }
392 i += Design_activity_description->read_arguments(argc - (i + 1),
393 argv + i + 1, verbose_level);
394
395 i++;
396
397 if (f_v) {
398 cout << "-design_activity" << endl;
399 cout << "i = " << i << endl;
400 cout << "argc = " << argc << endl;
401 if (i < argc) {
402 cout << "next argument is " << argv[i] << endl;
403 }
404 }
405 }
406 else if (ST.stringcmp(argv[i], "-large_set_with_symmetry_assumption_activity") == 0) {
407 f_large_set_was_activity = TRUE;
408 Large_set_was_activity_description =
410 if (f_v) {
411 cout << "reading -large_set_with_symmetry_assumption_activity" << endl;
412 }
413 i += Large_set_was_activity_description->read_arguments(argc - (i + 1),
414 argv + i + 1, verbose_level);
415
416 i++;
417
418 if (f_v) {
419 cout << "-large_set_with_symmetry_assumption_activity" << endl;
420 cout << "i = " << i << endl;
421 cout << "argc = " << argc << endl;
422 if (i < argc) {
423 cout << "next argument is " << argv[i] << endl;
424 }
425 }
426 }
427
428 else {
429 cout << "unrecognized activity after -do : " << argv[i] << endl;
430 exit(1);
431 }
432
433 if (f_v) {
434 cout << "activity_description::read_arguments done" << endl;
435 }
436}
437
438
439void activity_description::worker(int verbose_level)
440{
441 int f_v = (verbose_level >= 1);
442
443 if (f_v) {
444 cout << "activity_description::worker" << endl;
445 }
446
447 if (f_finite_field_activity) {
448
449 if (f_v) {
450 cout << "activity_description::worker f_finite_field_activity" << endl;
451 }
452 do_finite_field_activity(verbose_level);
453
454 }
455 else if (f_projective_space_activity) {
456
457 if (f_v) {
458 cout << "activity_description::worker f_projective_space_activity" << endl;
459 }
460 do_projective_space_activity(verbose_level);
461
462 }
463 else if (f_orthogonal_space_activity) {
464
465 if (f_v) {
466 cout << "activity_description::worker f_orthogonal_space_activity" << endl;
467 }
468 do_orthogonal_space_activity(verbose_level);
469
470 }
471 else if (f_group_theoretic_activity) {
472
473 if (f_v) {
474 cout << "activity_description::worker f_group_theoretic_activity" << endl;
475 }
476 do_group_theoretic_activity(verbose_level);
477
478 }
479 else if (f_cubic_surface_activity) {
480
481 if (f_v) {
482 cout << "activity_description::worker f_cubic_surface_activity" << endl;
483 }
484 do_cubic_surface_activity(verbose_level);
485
486 }
487 else if (f_quartic_curve_activity) {
488
489 if (f_v) {
490 cout << "activity_description::worker f_quartic_curve_activity" << endl;
491 }
492 do_quartic_curve_activity(verbose_level);
493
494 }
495 else if (f_combinatorial_object_activity) {
496
497 if (f_v) {
498 cout << "activity_description::worker f_combinatorial_object_activity" << endl;
499 }
501
502 }
503 else if (f_graph_theoretic_activity) {
504
505 if (f_v) {
506 cout << "activity_description::worker f_graph_theoretic_activity" << endl;
507 }
508 do_graph_theoretic_activity(verbose_level);
509
510 }
511 else if (f_classification_of_cubic_surfaces_with_double_sixes_activity) {
512
513 if (f_v) {
514 cout << "activity_description::worker f_classification_of_cubic_surfaces_with_double_sixes_activity" << endl;
515 }
516
518 }
519 else if (f_spread_table_activity) {
520
521 if (f_v) {
522 cout << "activity_description::worker f_spread_table_activity" << endl;
523 }
524
525 do_spread_table_activity(verbose_level);
526 }
527 else if (f_packing_with_symmetry_assumption_activity) {
528
529 if (f_v) {
530 cout << "activity_description::worker f_packing_with_symmetry_activity" << endl;
531 }
532
533 do_packing_was_activity(verbose_level);
534 }
535 else if (f_packing_fixed_points_activity) {
536
537 if (f_v) {
538 cout << "activity_description::worker f_packing_with_symmetry_activity" << endl;
539 }
540
542 }
543 else if (f_graph_classification_activity) {
544
545 if (f_v) {
546 cout << "activity_description::worker f_graph_classification_activity" << endl;
547 }
548
550 }
551 else if (f_diophant_activity) {
552
553 if (f_v) {
554 cout << "activity_description::worker f_diophant_activity" << endl;
555 }
556
557 do_diophant_activity(verbose_level);
558 }
559 else if (f_design_activity) {
560
561 if (f_v) {
562 cout << "activity_description::worker f_design_activity" << endl;
563 }
564
565 do_design_activity(verbose_level);
566
567 }
568 else if (f_large_set_was_activity) {
569
570 if (f_v) {
571 cout << "activity_description::worker f_large_set_was_activity" << endl;
572 }
573
574 do_large_set_was_activity(verbose_level);
575 }
576
577
578 if (f_v) {
579 cout << "activity_description::worker done" << endl;
580 }
581}
582
584{
585
586 cout << "-with ";
587 Sym->print_with();
588 cout << "-do " << endl;
589
590 if (f_finite_field_activity) {
591 cout << "-finite_field_activity ";
592 Finite_field_activity_description->print();
593 }
594 else if (f_projective_space_activity) {
595 cout << "-projective_space_activity ";
596 Projective_space_activity_description->print();
597 }
598 else if (f_orthogonal_space_activity) {
599 cout << "-orthogonal_space_activity ";
600 Orthogonal_space_activity_description->print();
601 }
602 else if (f_group_theoretic_activity) {
603 cout << "-group_theoretic_activities ";
604 Group_theoretic_activity_description->print();
605 }
606 else if (f_cubic_surface_activity) {
607 cout << "-cubic_surface_activity ";
608 Cubic_surface_activity_description->print();
609 }
610 else if (f_quartic_curve_activity) {
611 cout << "-quartic_curve_activity ";
612 Quartic_curve_activity_description->print();
613 }
614 else if (f_combinatorial_object_activity) {
615 cout << "-combinatorial_object_activity ";
616 Combinatorial_object_activity_description->print();
617 }
618 else if (f_graph_theoretic_activity) {
619 cout << "-graph_theoretic_activity ";
620 Graph_theoretic_activity_description->print();
621 }
622 else if (f_classification_of_cubic_surfaces_with_double_sixes_activity) {
623 cout << "-classification_of_cubic_surfaces_with_double_sixes_activity ";
624 Classification_of_cubic_surfaces_with_double_sixes_activity_description->print();
625 }
626 else if (f_spread_table_activity) {
627 cout << "-spread_table_activity ";
628 Spread_table_activity_description->print();
629 }
630 else if (f_packing_with_symmetry_assumption_activity) {
631 cout << "-packing_with_symmetry_assumption_activity ";
632 Packing_was_activity_description->print();
633 }
634 else if (f_packing_fixed_points_activity) {
635 cout << "-packing_fixed_points_activity ";
636 Packing_was_fixpoints_activity_description->print();
637 }
638 else if (f_graph_classification_activity) {
639 cout << "-graph_classification_activity ";
640 Graph_classification_activity_description->print();
641 }
642 else if (f_diophant_activity) {
643 cout << "-diophant_activity ";
644 Diophant_activity_description->print();
645 }
646 else if (f_design_activity) {
647 cout << "-design_activity ";
648 Design_activity_description->print();
649 }
650 else if (f_large_set_was_activity) {
651 cout << "-large_set_with_symmetry_assumption_activity ";
652 Large_set_was_activity_description->print();
653 }
654}
655
656
657
659{
660 int f_v = (verbose_level >= 1);
661
662 if (f_v) {
663 cout << "activity_description::do_finite_field_activity "
664 "finite field activity for the following objects: ";
665 Sym->print_with();
666 }
667
668 int *Idx;
669
670
672
673 if (Sym->with_labels.size() < 1) {
674 cout << "-finite_field_activity requires at least one input" << endl;
675 exit(1);
676 }
678
680
682 FA.init(Finite_field_activity_description, F, verbose_level);
683#if 0
684 Finite_field_activity_description->f_q = TRUE;
685 Finite_field_activity_description->q = F->q;
686 FA.Descr = Finite_field_activity_description;
687 FA.F = F;
688#endif
689
690 if (Sym->with_labels.size() == 2) {
691 cout << "-finite_field_activity has two inputs" << endl;
693 }
694
695
696
697 if (f_v) {
698 cout << "activity_description::do_finite_field_activity "
699 "before FA.perform_activity" << endl;
700 }
701 FA.perform_activity(verbose_level);
702 if (f_v) {
703 cout << "activity_description::do_finite_field_activity "
704 "after FA.perform_activity" << endl;
705 }
706
707 FREE_int(Idx);
708
709}
710
711
713{
714 int f_v = (verbose_level >= 1);
715
716 if (f_v) {
717 cout << "activity_description::do_projective_space_activity "
718 "projective space activity for the following objects: ";
719 Sym->print_with();
720 }
721
722 int *Idx;
723
724
726
727 if (Sym->with_labels.size() < 1) {
728 cout << "-finite_field_activity requires at least one input" << endl;
729 exit(1);
730 }
732
734
736 Activity.Descr = Projective_space_activity_description;
737 Activity.PA = PA;
738
739#if 0
740 if (with_labels.size() == 2) {
741 cout << "-finite_field_activity has two inputs" << endl;
742 FA.F_secondary = (finite_field *) Orbiter_top_level_session->get_object(Idx[1]);
743 }
744#endif
745
746
747 if (f_v) {
748 cout << "activity_description::do_projective_space_activity "
749 "before Activity.perform_activity" << endl;
750 }
751 Activity.perform_activity(verbose_level);
752 if (f_v) {
753 cout << "activity_description::do_projective_space_activity "
754 "after Activity.perform_activity" << endl;
755 }
756
757 FREE_int(Idx);
758
759}
760
762{
763 int f_v = (verbose_level >= 1);
764
765 if (f_v) {
766 cout << "activity_description::do_orthogonal_space_activity "
767 "orthogonal space activity for the following objects: ";
768 Sym->print_with();
769 }
770
771 int *Idx;
772
773
775
776 if (Sym->with_labels.size() < 1) {
777 cout << "-finite_field_activity requires at least one input" << endl;
778 exit(1);
779 }
781
783
785 Activity.Descr = Orthogonal_space_activity_description;
786 Activity.OA = OA;
787
788#if 0
789 if (with_labels.size() == 2) {
790 cout << "-finite_field_activity has two inputs" << endl;
791 FA.F_secondary = (finite_field *) Orbiter_top_level_session->get_object(Idx[1]);
792 }
793#endif
794
795
796 if (f_v) {
797 cout << "activity_description::do_orthogonal_space_activity "
798 "before Activity.perform_activity" << endl;
799 }
800 Activity.perform_activity(verbose_level);
801 if (f_v) {
802 cout << "activity_description::do_orthogonal_space_activity "
803 "after Activity.perform_activity" << endl;
804 }
805
806 FREE_int(Idx);
807
808}
809
811{
812 int f_v = (verbose_level >= 1);
813
814 if (f_v) {
815 cout << "activity_description::do_group_theoretic_activity "
816 "finite field activity for the following objects:";
817 Sym->print_with();
818 }
819
820 int *Idx;
821
823
824 if (Sym->with_labels.size() < 1) {
825 cout << "-group_theoretic_activity requires at least one input" << endl;
826 exit(1);
827 }
828
829
831
832 type = Sym->Orbiter_top_level_session->get_object_type(Idx[0]);
833
834 if (type != t_any_group) {
835 cout << "activity_description::do_group_theoretic_activity type is not t_any_group" << endl;
836 exit(1);
837 }
838
840
842 {
844
845 Activity.init_group(Group_theoretic_activity_description, AG, verbose_level);
846
847 if (f_v) {
848 cout << "activity_description::do_group_theoretic_activity "
849 "before Activity.perform_activity" << endl;
850 }
851 Activity.perform_activity(verbose_level);
852 if (f_v) {
853 cout << "activity_description::do_group_theoretic_activity "
854 "after Activity.perform_activity" << endl;
855 }
856
857 }
858
859 FREE_int(Idx);
860
861 if (f_v) {
862 cout << "activity_description::do_group_theoretic_activity done" << endl;
863 }
864
865}
866
868{
869 int f_v = (verbose_level >= 1);
870
871 if (f_v) {
872 cout << "activity_description::do_cubic_surface_activity "
873 "activity for the following objects:";
874 Sym->print_with();
875 }
876
877
878
879 int *Idx;
880
882
883 if (Sym->with_labels.size() < 1) {
884 cout << "-group_theoretic_activity requires at least one input" << endl;
885 exit(1);
886 }
887
889
891 {
893
894 Activity.init(Cubic_surface_activity_description, SC, verbose_level);
895
896 if (f_v) {
897 cout << "activity_description::do_cubic_surface_activity "
898 "before Activity.perform_activity" << endl;
899 }
900 Activity.perform_activity(verbose_level);
901 if (f_v) {
902 cout << "activity_description::do_cubic_surface_activity "
903 "after Activity.perform_activity" << endl;
904 }
905
906 }
907
908 FREE_int(Idx);
909
910 if (f_v) {
911 cout << "activity_description::do_cubic_surface_activity done" << endl;
912 }
913
914}
915
916
918{
919 int f_v = (verbose_level >= 1);
920
921 if (f_v) {
922 cout << "activity_description::do_quartic_curve_activity "
923 "activity for the following objects:";
924 Sym->print_with();
925 }
926
927
928
929 int *Idx;
930
932
933 if (Sym->with_labels.size() < 1) {
934 cout << "-group_theoretic_activity requires at least one input" << endl;
935 exit(1);
936 }
937
939
941 {
943
944 Activity.init(Quartic_curve_activity_description, QC, verbose_level);
945
946 if (f_v) {
947 cout << "activity_description::do_quartic_curve_activity "
948 "before Activity.perform_activity" << endl;
949 }
950 Activity.perform_activity(verbose_level);
951 if (f_v) {
952 cout << "activity_description::do_quartic_curve_activity "
953 "after Activity.perform_activity" << endl;
954 }
955
956 }
957
958 FREE_int(Idx);
959
960 if (f_v) {
961 cout << "activity_description::do_quartic_curve_activity done" << endl;
962 }
963
964}
965
966
968{
969 int f_v = (verbose_level >= 1);
970
971 if (f_v) {
972 cout << "activity_description::do_combinatorial_object_activity "
973 "activity for the following objects:";
974 Sym->print_with();
975 }
976
977
978
979 int *Idx;
980
982
983 if (Sym->with_labels.size() < 1) {
984 cout << "-combinatorial_object_activity requires at least one input" << endl;
985 exit(1);
986 }
987
989
991 if (t == t_geometric_object) {
993
995 {
997
998 Activity.init(Combinatorial_object_activity_description, GOC, verbose_level);
999
1000 if (f_v) {
1001 cout << "activity_description::do_combinatorial_object_activity "
1002 "before Activity.perform_activity" << endl;
1003 }
1004 Activity.perform_activity(verbose_level);
1005 if (f_v) {
1006 cout << "activity_description::do_combinatorial_object_activity "
1007 "after Activity.perform_activity" << endl;
1008 }
1009
1010 }
1011 }
1012 else if (t == t_combinatorial_objects) {
1014
1016 {
1018
1019 Activity.init_input_stream(Combinatorial_object_activity_description, IS, verbose_level);
1020
1021 if (f_v) {
1022 cout << "activity_description::do_combinatorial_object_activity "
1023 "before Activity.perform_activity" << endl;
1024 }
1025 Activity.perform_activity(verbose_level);
1026 if (f_v) {
1027 cout << "activity_description::do_combinatorial_object_activity "
1028 "after Activity.perform_activity" << endl;
1029 }
1030
1031 }
1032 }
1033
1034 FREE_int(Idx);
1035
1036 if (f_v) {
1037 cout << "activity_description::do_combinatorial_object_activity done" << endl;
1038 }
1039
1040}
1041
1043{
1044 int f_v = (verbose_level >= 1);
1045
1046 if (f_v) {
1047 cout << "activity_description::do_graph_theoretic_activity "
1048 "activity for the following objects:";
1049 Sym->print_with();
1050 }
1051
1052
1053
1054 int *Idx;
1055
1057
1058 if (Sym->with_labels.size() < 1) {
1059 cout << "activity requires at least one input" << endl;
1060 exit(1);
1061 }
1062
1063 //create_graph *Gr;
1065
1067 if (f_v) {
1068 cout << "activity_description::do_graph_theoretic_activity CG->label = " << CG->label << endl;
1069 }
1070
1071 {
1073
1074 Activity.init(Graph_theoretic_activity_description, CG, verbose_level);
1075
1076 if (f_v) {
1077 cout << "activity_description::do_graph_theoretic_activity "
1078 "before Activity.perform_activity" << endl;
1079 }
1080 Activity.perform_activity(verbose_level);
1081 if (f_v) {
1082 cout << "activity_description::do_graph_theoretic_activity "
1083 "after Activity.perform_activity" << endl;
1084 }
1085
1086 }
1087
1088 FREE_int(Idx);
1089
1090 if (f_v) {
1091 cout << "activity_description::do_graph_theoretic_activity done" << endl;
1092 }
1093
1094}
1095
1097{
1098 int f_v = (verbose_level >= 1);
1099
1100 if (f_v) {
1101 cout << "activity_description::do_classification_of_cubic_surfaces_with_double_sixes_activity "
1102 "activity for the following objects:";
1103 Sym->print_with();
1104 }
1105
1106
1107
1108 int *Idx;
1109
1111
1112 if (Sym->with_labels.size() < 1) {
1113 cout << "activity requires at least one input" << endl;
1114 exit(1);
1115 }
1116
1118
1120 {
1122
1123 Activity.init(Classification_of_cubic_surfaces_with_double_sixes_activity_description, SCW, verbose_level);
1124
1125 if (f_v) {
1126 cout << "activity_description::do_classification_of_cubic_surfaces_with_double_sixes_activity "
1127 "before Activity.perform_activity" << endl;
1128 }
1129 Activity.perform_activity(verbose_level);
1130 if (f_v) {
1131 cout << "activity_description::do_classification_of_cubic_surfaces_with_double_sixes_activity "
1132 "after Activity.perform_activity" << endl;
1133 }
1134
1135 }
1136
1137 FREE_int(Idx);
1138
1139 if (f_v) {
1140 cout << "activity_description::do_classification_of_cubic_surfaces_with_double_sixes_activity done" << endl;
1141 }
1142
1143}
1144
1146{
1147 int f_v = (verbose_level >= 1);
1148
1149 if (f_v) {
1150 cout << "activity_description::do_spread_table_activity "
1151 "activity for the following objects:";
1152 Sym->print_with();
1153 }
1154
1155
1156
1157 int *Idx;
1158
1160
1161 if (Sym->with_labels.size() < 1) {
1162 cout << "activity requires at least one input" << endl;
1163 exit(1);
1164 }
1165
1167
1169 {
1171
1172 Activity.init(Spread_table_activity_description, P, verbose_level);
1173
1174 if (f_v) {
1175 cout << "activity_description::do_spread_table_activity "
1176 "before Activity.perform_activity" << endl;
1177 }
1178 Activity.perform_activity(verbose_level);
1179 if (f_v) {
1180 cout << "activity_description::do_spread_table_activity "
1181 "after Activity.perform_activity" << endl;
1182 }
1183
1184 }
1185
1186 FREE_int(Idx);
1187
1188 if (f_v) {
1189 cout << "activity_description::do_spread_table_activity done" << endl;
1190 }
1191
1192}
1193
1195{
1196 int f_v = (verbose_level >= 1);
1197
1198 if (f_v) {
1199 cout << "activity_description::do_packing_was_activity "
1200 "activity for the following objects:";
1201 Sym->print_with();
1202 }
1203
1204
1205
1206 int *Idx;
1207
1209
1210 if (Sym->with_labels.size() < 1) {
1211 cout << "activity requires at least one input" << endl;
1212 exit(1);
1213 }
1214
1216
1218 {
1220
1221 Activity.init(Packing_was_activity_description, PW, verbose_level);
1222
1223 if (f_v) {
1224 cout << "activity_description::do_packing_was_activity "
1225 "before Activity.perform_activity" << endl;
1226 }
1227 Activity.perform_activity(verbose_level);
1228 if (f_v) {
1229 cout << "activity_description::do_packing_was_activity "
1230 "after Activity.perform_activity" << endl;
1231 }
1232
1233 }
1234
1235 FREE_int(Idx);
1236
1237 if (f_v) {
1238 cout << "activity_description::do_packing_was_activity done" << endl;
1239 }
1240
1241}
1242
1243
1244
1246{
1247 int f_v = (verbose_level >= 1);
1248
1249 if (f_v) {
1250 cout << "activity_description::do_packing_fixed_points_activity "
1251 "activity for the following objects:";
1252 Sym->print_with();
1253 }
1254
1255
1256
1257 int *Idx;
1258
1260
1261 if (Sym->with_labels.size() < 1) {
1262 cout << "activity requires at least one input" << endl;
1263 exit(1);
1264 }
1265
1267
1269 {
1271
1272 Activity.init(Packing_was_fixpoints_activity_description, PWF, verbose_level);
1273
1274 if (f_v) {
1275 cout << "activity_description::do_packing_fixed_points_activity "
1276 "before Activity.perform_activity" << endl;
1277 }
1278 Activity.perform_activity(verbose_level);
1279 if (f_v) {
1280 cout << "activity_description::do_packing_fixed_points_activity "
1281 "after Activity.perform_activity" << endl;
1282 }
1283
1284 }
1285
1286 FREE_int(Idx);
1287
1288 if (f_v) {
1289 cout << "activity_description::do_packing_fixed_points_activity done" << endl;
1290 }
1291
1292}
1293
1294
1296{
1297 int f_v = (verbose_level >= 1);
1298
1299 if (f_v) {
1300 cout << "activity_description::do_graph_classification_activity "
1301 "activity for the following objects:";
1302 Sym->print_with();
1303 }
1304
1305
1306
1307 int *Idx;
1308
1310
1311 if (Sym->with_labels.size() < 1) {
1312 cout << "activity requires at least one input" << endl;
1313 exit(1);
1314 }
1315
1317
1319 {
1321
1322 Activity.init(Graph_classification_activity_description, GC, verbose_level);
1323
1324 if (f_v) {
1325 cout << "activity_description::do_graph_classification_activity "
1326 "before Activity.perform_activity" << endl;
1327 }
1328 Activity.perform_activity(verbose_level);
1329 if (f_v) {
1330 cout << "activity_description::do_graph_classification_activity "
1331 "after Activity.perform_activity" << endl;
1332 }
1333
1334 }
1335
1336 FREE_int(Idx);
1337
1338 if (f_v) {
1339 cout << "activity_description::do_graph_classification_activity done" << endl;
1340 }
1341
1342}
1343
1345{
1346 int f_v = (verbose_level >= 1);
1347
1348 if (f_v) {
1349 cout << "activity_description::do_diophant_activity "
1350 "activity for the following objects:";
1351 Sym->print_with();
1352 }
1353
1354
1355
1356 int *Idx;
1357
1359
1360 if (Sym->with_labels.size() < 1) {
1361 cout << "activity requires at least one input" << endl;
1362 exit(1);
1363 }
1364
1366
1368 {
1370
1371
1372 if (f_v) {
1373 cout << "activity_description::do_diophant_activity "
1374 "before Activity.perform_activity" << endl;
1375 }
1376 Activity.perform_activity(Diophant_activity_description, Dio->D, verbose_level);
1377 if (f_v) {
1378 cout << "activity_description::do_diophant_activity "
1379 "after Activity.perform_activity" << endl;
1380 }
1381
1382 }
1383
1384 FREE_int(Idx);
1385
1386 if (f_v) {
1387 cout << "activity_description::do_diophant_activity done" << endl;
1388 }
1389
1390}
1391
1393{
1394 int f_v = (verbose_level >= 1);
1395
1396 if (f_v) {
1397 cout << "activity_description::do_design_activity "
1398 "activity for the following objects:";
1399 Sym->print_with();
1400 }
1401
1402
1403
1404 int *Idx;
1405
1407
1408 if (Sym->with_labels.size() < 1) {
1409 cout << "activity requires at least one input" << endl;
1410 exit(1);
1411 }
1412
1414
1416 {
1418
1419
1420 if (f_v) {
1421 cout << "activity_description::do_design_activity "
1422 "before Activity.perform_activity" << endl;
1423 }
1424 Activity.perform_activity(Design_activity_description, DC, verbose_level);
1425 if (f_v) {
1426 cout << "activity_description::do_design_activity "
1427 "after Activity.perform_activity" << endl;
1428 }
1429
1430 }
1431
1432 FREE_int(Idx);
1433
1434 if (f_v) {
1435 cout << "activity_description::do_design_activity done" << endl;
1436 }
1437
1438}
1439
1441{
1442 int f_v = (verbose_level >= 1);
1443
1444 if (f_v) {
1445 cout << "activity_description::do_large_set_was_activity "
1446 "activity for the following objects:";
1447 Sym->print_with();
1448 }
1449
1450
1451
1452 int *Idx;
1453
1455
1456 if (Sym->with_labels.size() < 1) {
1457 cout << "activity requires at least one input" << endl;
1458 exit(1);
1459 }
1460
1462
1464 {
1466
1467 if (f_v) {
1468 cout << "activity_description::do_large_set_was_activity "
1469 "before Activity.perform_activity" << endl;
1470 }
1471 Activity.perform_activity(Large_set_was_activity_description, LSW, verbose_level);
1472 if (f_v) {
1473 cout << "activity_description::do_large_set_was_activity "
1474 "after Activity.perform_activity" << endl;
1475 }
1476
1477 }
1478
1479 FREE_int(Idx);
1480
1481 if (f_v) {
1482 cout << "activity_description::do_large_set_was_activity done" << endl;
1483 }
1484
1485}
1486
1487
1488
1489
1490}}}
1491
1492
input data for classification of geometric objects from the command line
functions related to strings and character arrays
void init(finite_field_activity_description *Descr, finite_field *F, int verbose_level)
to create a geometric object from a description using class geometric_object_description
Definition: geometry.h:568
to describe an activity for a diophantine system from command line arguments
Definition: solvers.h:27
to perform an activity for a diophantine system using diophant_activity_description
Definition: solvers.h:77
void perform_activity(diophant_activity_description *Descr, diophant *Dio, int verbose_level)
to create a diophantine system from diophant_description
Definition: solvers.h:101
void init(cubic_surfaces_in_general::cubic_surface_activity_description *Cubic_surface_activity_description, surface_create *SC, int verbose_level)
to create a cubic surface from a description using class surface_create_description
void init(quartic_curve_activity_description *Quartic_curve_activity_description, quartic_curve_create *QC, int verbose_level)
to create a quartic curve from a description using class quartic_curve_create_description
a wrapper for linear_group and permutation_group_create
void init_group(group_theoretic_activity_description *Descr, any_group *AG, int verbose_level)
void init_input_stream(combinatorial_object_activity_description *Descr, data_structures::data_input_stream *IS, int verbose_level)
void init(combinatorial_object_activity_description *Descr, geometry::geometric_object_create *GOC, int verbose_level)
void perform_activity(design_activity_description *Descr, design_create *DC, int verbose_level)
to create a known design using a description from class design_create_description
description of an activity for a large set search with assumed symmetry
an activity for a large set search with assumed symmetry
void perform_activity(large_set_was_activity_description *Descr, large_set_was *LSW, int verbose_level)
classification of large sets of designs with assumed symmetry
an activity for a classification of graphs and tournaments
Definition: graph_theory.h:297
void init(graph_classification_activity_description *Descr, graph_classify *GC, int verbose_level)
void init(graph_theoretic_activity_description *Descr, graph_theory::colored_graph *CG, int verbose_level)
classification of packings in PG(3,q)
Definition: packings.h:66
description of an activity involving a packing_was
Definition: packings.h:352
void init(packing_was_activity_description *Descr, packing_was *PW, int verbose_level)
description of an activity after the fixed points have been selected in the construction of packings ...
Definition: packings.h:445
an activity after the fixed points have been selected in the construction of packings in PG(3,...
Definition: packings.h:471
void init(packing_was_fixpoints_activity_description *Descr, packing_was_fixpoints *PWF, int verbose_level)
picking fixed points in the construction of packings in PG(3,q) with assumed symmetry
Definition: packings.h:494
construction of packings in PG(3,q) with assumed symmetry
Definition: packings.h:564
projective space PG(n,q) with automorphism group PGGL(n+1,q)
description of an activity for a spread table
Definition: spreads.h:405
void init(spreads::spread_table_activity_description *Descr, packings::packing_classify *P, int verbose_level)
void read_arguments(interface_symbol_table *Sym, int argc, std::string *argv, int &i, int verbose_level)
#define FREE_int(p)
Definition: foundations.h:640
#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