Orbiter 2022
Combinatorial Objects
projective_space_activity_description.cpp
Go to the documentation of this file.
1/*
2 * projective_space_activity_description.cpp
3 *
4 * Created on: Jan 5, 2021
5 * Author: betten
6 */
7
8
9
10
11
12#include "orbiter.h"
13
14using namespace std;
15
16namespace orbiter {
17namespace layer5_applications {
18namespace projective_geometry {
19
20
22{
23
24 //f_input = FALSE;
25 //Data = NULL;
26
27#if 0
28 f_canonical_form_PG = FALSE;
29 //canonical_form_PG_n = 0;
30 Canonical_form_PG_Descr = NULL;
31#endif
32
34
36 //std::string _table_of_cubic_surfaces_compute_fname_csv;
39
41 //std::string cubic_surface_properties_fname_csv;
43
45 //canonical_form_of_code_label;
46 //canonical_form_of_code_generator_matrix;
48
49 f_map = FALSE;
50 //std::string map_label;
51 //std::string map_parameters;
52
54 //analyze_del_Pezzo_surface_label;
55 //analyze_del_Pezzo_surface_parameters;
56
59 //std::string decomposition_by_element_data;
60 //std::string decomposition_by_element_fname;
61
62
64 //std::string decomposition_by_subgroup_label;
66
67
69 //std::string define_object_label;
70 Object_Descr = NULL;
71
72
74 //std::string define_surface_label
75 Surface_Descr = NULL;
76
78
80
81
83 //std::string define_quartic_curve_label;
85
87 //std::string classify_surfaces_with_double_sixes_label;
89
90
91
94 nb_E = 0;
97 Trihedra1_control = NULL;
99 Trihedra2_control = NULL;
101 Control_six_arcs = NULL;
102 //f_create_surface = FALSE;
103 //surface_description = NULL;
104
105 f_sweep = FALSE;
106 //std::string sweep_fname;
107
109 //std::string sweep_4_15_lines_fname;
111
113 //std::string sweep_F_beta_9_lines_fname;
115
117 //std::string sweep_6_9_lines_fname;
119
121 //std::string sweep_4_27_fname;
123
127
128
132
136
140
144
146
148 //std::string classify_quartic_curves_nauty_fname_mask;
150 //std::string classify_quartic_curves_nauty_fname_classification;
151
153 //std::string classify_quartic_curves_with_substructure_fname_mask;
157 //std::string classify_quartic_curves_with_substructure_fname_classification;
158
161 //std::string set_stabilizer_fname_mask;
163 //std::string set_stabilizer_column_label;
164 //std::string set_stabilizer_fname_out;
165
168 //std::string conic_type_set_text;
169
171 //lift_skew_hexagon_text
172
174 //std::string lift_skew_hexagon_with_polarity_polarity;
175
177 arc_size = 0;
178 arc_d = 0;
179 arc_d_low = 0;
180 arc_s = 0;
181 //std::string arc_input_set;
182 //std::string arc_label;
183
185 //int arc_size;
186 //int arc_d;
187 arc_t = 0;
188 //t_lines_string;
189
191 arc_u = 0;
192 //u_lines_string;
193
196 //std::string dualize_input_set;
197
200
203
205
208 //std::string latex_homogeneous_equation_symbol_txt
209 //std::string latex_homogeneous_equation_symbol_tex
210 //std::string latex_homogeneous_equation_text;
211
215
217 //rank_lines_in_PG_label;
218
220 //std::string unrank_lines_in_PG_text;
221
223 line1_from = 0;
224 line2_from = 0;
225 line1_to = 0;
226 line2_to = 0;
227
229 //std:string line1_from_text;
230 //std:string line2_from_text;
231 //std:string line1_to_text;
232 //std:string line2_to_text;
233
234
235}
236
238{
239
240}
241
242
244 int argc, std::string *argv,
245 int verbose_level)
246{
247 int f_v = (verbose_level >= 1);
248 int i;
250
251 if (f_v) {
252 cout << "projective_space_activity_description::read_arguments" << endl;
253 }
254 for (i = 0; i < argc; i++) {
255
256#if 0
257 if (stringcmp(argv[i], "-input") == 0) {
258 f_input = TRUE;
259 Data = NEW_OBJECT(data_input_stream);
260 if (f_v) {
261 cout << "-input" << endl;
262 }
263 i += Data->read_arguments(argc - (i + 1),
264 argv + i + 1, verbose_level);
265 if (f_v) {
266 cout << "projective_space_activity_description::read_arguments finished reading -input" << endl;
267 cout << "i = " << i << endl;
268 cout << "argc = " << argc << endl;
269 if (i < argc) {
270 cout << "next argument is " << argv[i] << endl;
271 }
272 }
273 }
274#endif
275
276#if 0
277 if (stringcmp(argv[i], "-canonical_form_PG") == 0) {
278 f_canonical_form_PG = TRUE;
279 if (f_v) {
280 cout << "-canonical_form_PG, reading extra arguments" << endl;
281 }
282
283 Canonical_form_PG_Descr = NEW_OBJECT(projective_space_object_classifier_description);
284
285 i += Canonical_form_PG_Descr->read_arguments(argc - (i + 1), argv + i + 1, verbose_level);
286 if (f_v) {
287 cout << "done reading -canonical_form_PG " << endl;
288 cout << "i = " << i << endl;
289 cout << "argc = " << argc << endl;
290 if (i < argc) {
291 cout << "next argument is " << argv[i] << endl;
292 }
293 }
294 }
295#endif
296
297 if (ST.stringcmp(argv[i], "-export_point_line_incidence_matrix") == 0) {
299 if (f_v) {
300 cout << "-export_point_line_incidence_matrix " << endl;
301 }
302 }
303
304 else if (ST.stringcmp(argv[i], "-table_of_cubic_surfaces_compute_properties") == 0) {
306 if (f_v) {
307 cout << "-table_of_cubic_surfaces_compute_properties next argument is " << argv[i + 1] << endl;
311 cout << "-table_of_cubic_surfaces_compute_properties "
315 << endl;
316 }
317 }
318
319 else if (ST.stringcmp(argv[i], "-cubic_surface_properties_analyze") == 0) {
321 cubic_surface_properties_fname_csv.assign(argv[++i]);
323 if (f_v) {
324 cout << "-cubic_surface_properties "
326 << " " << cubic_surface_properties_defining_q << endl;
327 }
328 }
329
330 else if (ST.stringcmp(argv[i], "-canonical_form_of_code") == 0) {
332 canonical_form_of_code_label.assign(argv[++i]);
334
336
337 i += Canonical_form_codes_Descr->read_arguments(argc - (i + 1), argv + i + 1, verbose_level);
338 if (f_v) {
339 cout << "done reading -canonical_form_of_code " << endl;
340 cout << "i = " << i << endl;
341 cout << "argc = " << argc << endl;
342 if (i < argc) {
343 cout << "next argument is " << argv[i] << endl;
344 }
345 }
346
347
348 if (f_v) {
349 cout << "-canonical_form_of_code "
352 << endl;
354 }
355 }
356
357 else if (ST.stringcmp(argv[i], "-map") == 0) {
358 f_map = TRUE;
359 map_label.assign(argv[++i]);
360 map_parameters.assign(argv[++i]);
361 if (f_v) {
362 cout << "-map "
363 << map_label << " "
364 << map_parameters << " "
365 << endl;
366 }
367 }
368
369 else if (ST.stringcmp(argv[i], "-analyze_del_Pezzo_surface") == 0) {
371 analyze_del_Pezzo_surface_label.assign(argv[++i]);
372 analyze_del_Pezzo_surface_parameters.assign(argv[++i]);
373 if (f_v) {
374 cout << "-analyze_del_Pezzo_surface "
377 << endl;
378 }
379 }
380
381 else if (ST.stringcmp(argv[i], "-cheat_sheet_for_decomposition_by_element_PG") == 0) {
384 decomposition_by_element_data.assign(argv[++i]);
385 decomposition_by_element_fname.assign(argv[++i]);
386 if (f_v) {
387 cout << "-cheat_sheet_for_decomposition_by_element_PG "
391 << endl;
392 }
393 }
394
395 else if (ST.stringcmp(argv[i], "-decomposition_by_subgroup") == 0) {
397 decomposition_by_subgroup_label.assign(argv[++i]);
400 argv + i + 1, verbose_level);
401
402 cout << "done reading -H" << endl;
403 cout << "i = " << i << endl;
404 cout << "argc = " << argc << endl;
405 if (i < argc) {
406 cout << "next argument is " << argv[i] << endl;
407 }
408 if (f_v) {
409 cout << "-decomposition_by_subgroup "
413 << endl;
414 }
415 }
416
417
418 else if (ST.stringcmp(argv[i], "-define_object") == 0) {
420 if (f_v) {
421 cout << "-define_object, reading extra arguments" << endl;
422 }
423
424 define_object_label.assign(argv[++i]);
426
427 i += Object_Descr->read_arguments(argc - (i + 1), argv + i + 1, verbose_level);
428 if (f_v) {
429 cout << "done reading -define_object " << endl;
430 cout << "i = " << i << endl;
431 cout << "argc = " << argc << endl;
432 if (i < argc) {
433 cout << "next argument is " << argv[i] << endl;
434 }
435 cout << "-define_object " << define_object_label << endl;
436 }
437 }
438
439 else if (ST.stringcmp(argv[i], "-define_surface") == 0) {
441 if (f_v) {
442 cout << "-define_surface, reading extra arguments" << endl;
443 }
444
445 define_surface_label.assign(argv[++i]);
447
448 i += Surface_Descr->read_arguments(argc - (i + 1), argv + i + 1, verbose_level);
449 if (f_v) {
450 cout << "done reading -define_surface " << endl;
451 cout << "i = " << i << endl;
452 cout << "argc = " << argc << endl;
453 if (i < argc) {
454 cout << "next argument is " << argv[i] << endl;
455 }
456 cout << "-define_surface " << define_surface_label << endl;
457 }
458 }
459
460 else if (ST.stringcmp(argv[i], "-table_of_quartic_curves") == 0) {
462 if (f_v) {
463 cout << "-table_of_quartic_curves " << endl;
464 }
465 }
466
467 else if (ST.stringcmp(argv[i], "-table_of_cubic_surfaces") == 0) {
469 if (f_v) {
470 cout << "-table_of_cubic_surfaces " << endl;
471 }
472 }
473
474 else if (ST.stringcmp(argv[i], "-define_quartic_curve") == 0) {
476 if (f_v) {
477 cout << "-define_quartic_curve, reading extra arguments" << endl;
478 }
479
480 define_quartic_curve_label.assign(argv[++i]);
482
483 i += Quartic_curve_descr->read_arguments(argc - (i + 1), argv + i + 1, verbose_level);
484 if (f_v) {
485 cout << "done reading -define_quartic_curve " << endl;
486 cout << "i = " << i << endl;
487 cout << "argc = " << argc << endl;
488 if (i < argc) {
489 cout << "next argument is " << argv[i] << endl;
490 }
491 cout << "-define_quartic_curve " << define_quartic_curve_label << endl;
492 }
493 }
494
495
496 // cubic surfaces:
497 else if (ST.stringcmp(argv[i], "-classify_surfaces_with_double_sixes") == 0) {
501 if (f_v) {
502 cout << "-classify_surfaces_with_double_sixes " << endl;
503 }
505 argv + i + 1, verbose_level);
506
507 if (f_v) {
508 cout << "done reading -poset_classification_control " << endl;
509 cout << "i = " << i << endl;
510 cout << "argc = " << argc << endl;
511 if (i < argc) {
512 cout << "next argument is " << argv[i] << endl;
513 }
514 cout << "-classify_surfaces_with_double_sixes " << classify_surfaces_with_double_sixes_label << endl;
516 }
517 }
518
519 else if (ST.stringcmp(argv[i], "-classify_surfaces_through_arcs_and_two_lines") == 0) {
521 if (f_v) {
522 cout << "-classify_surfaces_through_arcs_and_two_lines " << endl;
523 }
524 }
525
526 else if (ST.stringcmp(argv[i], "-test_nb_Eckardt_points") == 0) {
528 nb_E = ST.strtoi(argv[++i]);
529 if (f_v) {
530 cout << "-test_nb_Eckardt_points " << nb_E << endl;
531 }
532 }
533
534 else if (ST.stringcmp(argv[i], "-classify_surfaces_through_arcs_and_trihedral_pairs") == 0) {
536 if (f_v) {
537 cout << "-classify_surfaces_through_arcs_and_trihedral_pairs " << endl;
538 }
539 }
540#if 0
541 else if (stringcmp(argv[i], "-create_surface") == 0) {
542 f_create_surface = TRUE;
543 surface_description = NEW_OBJECT(surface_create_description);
544 cout << "-create_surface" << endl;
545 i += surface_description->read_arguments(
546 argc - (i + 1), argv + i + 1,
547 verbose_level);
548 cout << "done with -create_surface" << endl;
549 cout << "i = " << i << endl;
550 cout << "argc = " << argc << endl;
551 if (i < argc) {
552 cout << "next argument is " << argv[i] << endl;
553 }
554 }
555#endif
556
557 else if (ST.stringcmp(argv[i], "-sweep") == 0) {
558 f_sweep = TRUE;
559 sweep_fname.assign(argv[++i]);
560 if (f_v) {
561 cout << "-sweep " << sweep_fname << endl;
562 }
563 }
564
565 else if (ST.stringcmp(argv[i], "-sweep_4_15_lines") == 0) {
567 sweep_4_15_lines_fname.assign(argv[++i]);
569 if (f_v) {
570 cout << "-sweep_4_15_lines" << endl;
571 }
573 argc - (i + 1), argv + i + 1,
574 verbose_level);
575 if (f_v) {
576 cout << "done with -sweep_4_15_lines" << endl;
577 cout << "i = " << i << endl;
578 cout << "argc = " << argc << endl;
579 if (i < argc) {
580 cout << "next argument is " << argv[i] << endl;
581 }
582 cout << "-sweep_4_15_lines " << sweep_4_15_lines_fname << endl;
584 }
585 }
586
587 else if (ST.stringcmp(argv[i], "-sweep_F_beta_9_lines") == 0) {
589 sweep_F_beta_9_lines_fname.assign(argv[++i]);
591 if (f_v) {
592 cout << "-sweep_F_beta_9_lines" << endl;
593 }
595 argc - (i + 1), argv + i + 1,
596 verbose_level);
597 if (f_v) {
598 cout << "done with -sweep_F_beta_9_lines" << endl;
599 cout << "i = " << i << endl;
600 cout << "argc = " << argc << endl;
601 if (i < argc) {
602 cout << "next argument is " << argv[i] << endl;
603 }
604 cout << "-sweep_F_beta_9_lines " << sweep_F_beta_9_lines_fname << endl;
606 }
607 }
608
609
610 else if (ST.stringcmp(argv[i], "-sweep_6_9_lines") == 0) {
612 sweep_6_9_lines_fname.assign(argv[++i]);
614 if (f_v) {
615 cout << "-sweep_6_9_lines" << endl;
616 }
618 argc - (i + 1), argv + i + 1,
619 verbose_level);
620 if (f_v) {
621 cout << "done with -sweep_6_9_lines" << endl;
622 cout << "i = " << i << endl;
623 cout << "argc = " << argc << endl;
624 if (i < argc) {
625 cout << "next argument is " << argv[i] << endl;
626 }
627 cout << "-sweep_6_9_lines " << sweep_6_9_lines_fname << endl;
629 }
630 }
631
632 else if (ST.stringcmp(argv[i], "-sweep_4_27") == 0) {
634 sweep_4_27_fname.assign(argv[++i]);
636 if (f_v) {
637 cout << "-sweep_4_27" << endl;
638 }
640 argc - (i + 1), argv + i + 1,
641 verbose_level);
642 if (f_v) {
643 cout << "done with -sweep_4_27" << endl;
644 cout << "i = " << i << endl;
645 cout << "argc = " << argc << endl;
646 if (i < argc) {
647 cout << "next argument is " << argv[i] << endl;
648 }
649 cout << "-sweep_4_27 " << sweep_4_27_fname << endl;
650 }
651 }
652
653 else if (ST.stringcmp(argv[i], "-six_arcs_not_on_conic") == 0) {
655 if (f_v) {
656 cout << "-six_arcs_not_on_conic" << endl;
657 }
658 }
659
660 else if (ST.stringcmp(argv[i], "-filter_by_nb_Eckardt_points") == 0) {
662 nb_Eckardt_points = ST.strtoi(argv[++i]);
663 if (f_v) {
664 cout << "-filter_by_nb_Eckardt_points " << nb_Eckardt_points << endl;
665 }
666 }
667
668 else if (ST.stringcmp(argv[i], "-surface_quartic") == 0) {
670 if (f_v) {
671 cout << "-surface_quartic" << endl;
672 }
673 }
674
675 else if (ST.stringcmp(argv[i], "-surface_clebsch") == 0) {
677 if (f_v) {
678 cout << "-surface_clebsch" << endl;
679 }
680 }
681
682 else if (ST.stringcmp(argv[i], "-surface_codes") == 0) {
684 if (f_v) {
685 cout << "-surface_codes" << endl;
686 }
687 }
688
689 else if (ST.stringcmp(argv[i], "-trihedra1_control") == 0) {
692 i += Trihedra1_control->read_arguments(argc - (i + 1),
693 argv + i + 1, verbose_level);
694
695 if (f_v) {
696 cout << "done reading -trihedra1_control " << endl;
697 cout << "i = " << i << endl;
698 cout << "argc = " << argc << endl;
699 if (i < argc) {
700 cout << "next argument is " << argv[i] << endl;
701 }
702 }
703 }
704
705 else if (ST.stringcmp(argv[i], "-trihedra2_control") == 0) {
708 i += Trihedra2_control->read_arguments(argc - (i + 1),
709 argv + i + 1, verbose_level);
710
711 if (f_v) {
712 cout << "done reading -trihedra2_control " << endl;
713 cout << "i = " << i << endl;
714 cout << "argc = " << argc << endl;
715 if (i < argc) {
716 cout << "next argument is " << argv[i] << endl;
717 }
718 }
719 }
720
721 else if (ST.stringcmp(argv[i], "-control_six_arcs") == 0) {
724 i += Control_six_arcs->read_arguments(argc - (i + 1),
725 argv + i + 1, verbose_level);
726
727 if (f_v) {
728 cout << "done reading -control_six_arcs " << endl;
729 cout << "i = " << i << endl;
730 cout << "argc = " << argc << endl;
731 if (i < argc) {
732 cout << "next argument is " << argv[i] << endl;
733 }
734 }
735 }
736
737 else if (ST.stringcmp(argv[i], "-make_gilbert_varshamov_code") == 0) {
741 if (f_v) {
742 cout << "-make_gilbert_varshamov_code" << make_gilbert_varshamov_code_n
743 << " " << make_gilbert_varshamov_code_d << endl;
744 }
745 }
746
747 else if (ST.stringcmp(argv[i], "-spread_classify") == 0) {
749 spread_classify_k = ST.strtoi(argv[++i]);
751 if (f_v) {
752 cout << "-spread_classify " << endl;
753 }
754 i += spread_classify_Control->read_arguments(argc - (i + 1),
755 argv + i + 1, verbose_level);
756
757 if (f_v) {
758 cout << "done reading -spread_classify " << endl;
759 cout << "i = " << i << endl;
760 cout << "argc = " << argc << endl;
761 if (i < argc) {
762 cout << "next argument is " << argv[i] << endl;
763 }
764 cout << "-spread_classify " << spread_classify_k << endl;
766 }
767 }
768
769 // semifields
770 else if (ST.stringcmp(argv[i], "-classify_semifields") == 0) {
773 if (f_v) {
774 cout << "-classify_semifields" << endl;
775 }
777 argv + i + 1, verbose_level);
778
779 if (f_v) {
780 cout << "done reading -classify_semifields " << endl;
781 cout << "i = " << i << endl;
782 cout << "argc = " << argc << endl;
783 if (i < argc) {
784 cout << "next argument is " << argv[i] << endl;
785 }
786 }
788 if (f_v) {
789 cout << "reading control " << endl;
790 }
791 i += Semifield_classify_Control->read_arguments(argc - (i + 1),
792 argv + i + 1, verbose_level);
793
794 if (f_v) {
795 cout << "done reading control " << endl;
796 cout << "-classify_semifields " << endl;
797 }
798 }
799
800 else if (ST.stringcmp(argv[i], "-cheat_sheet") == 0) {
802 if (f_v) {
803 cout << "-cheat_sheet " << endl;
804 }
805 }
806
807 else if (ST.stringcmp(argv[i], "-classify_quartic_curves_nauty") == 0) {
812 if (f_v) {
813 cout << "-classify_quartic_curves_nauty "
817 << endl;
818 }
819 }
820
821 else if (ST.stringcmp(argv[i], "-classify_quartic_curves_with_substructure") == 0) {
828 if (f_v) {
829 cout << "-classify_quartic_curves_with_substructure "
835 << endl;
836 }
837 }
838
839 else if (ST.stringcmp(argv[i], "-set_stabilizer") == 0) {
842 set_stabilizer_fname_mask.assign(argv[++i]);
843 set_stabilizer_nb = ST.strtoi(argv[++i]);
844 set_stabilizer_column_label.assign(argv[++i]);
845 set_stabilizer_fname_out.assign(argv[++i]);
846 if (f_v) {
847 cout << "-set_stabilizer "
850 << set_stabilizer_nb << " "
853 << endl;
854 }
855 }
856
857 else if (ST.stringcmp(argv[i], "-conic_type") == 0) {
859 conic_type_threshold = ST.strtoi(argv[++i]);
860 conic_type_set_text.assign(argv[++i]);
861 if (f_v) {
862 cout << "-conic_type "
863 << " " << conic_type_threshold
864 << " " << conic_type_set_text << endl;
865 }
866 }
867
868 else if (ST.stringcmp(argv[i], "-lift_skew_hexagon") == 0) {
870 lift_skew_hexagon_text.assign(argv[++i]);
871 if (f_v) {
872 cout << "-lift_skew_hexagon "
873 << lift_skew_hexagon_text << endl;
874 }
875 }
876
877 else if (ST.stringcmp(argv[i], "-lift_skew_hexagon_with_polarity") == 0) {
880 if (f_v) {
881 cout << "-lift_skew_hexagon_with_polarity "
883 << endl;
884 }
885 }
886
887 else if (ST.stringcmp(argv[i], "-arc_with_given_set_as_s_lines_after_dualizing") == 0) {
889 arc_size = ST.strtoi(argv[++i]);
890 arc_d = ST.strtoi(argv[++i]);
891 arc_d_low = ST.strtoi(argv[++i]);
892 arc_s = ST.strtoi(argv[++i]);
893 arc_input_set.assign(argv[++i]);
894 arc_label.assign(argv[++i]);
895 if (f_v) {
896 cout << "-arc_with_given_set_as_s_lines_after_dualizing "
897 << arc_size << " d=" << arc_d << " d_low=" << arc_d_low << " s=" << arc_s << " " << arc_input_set << " " << arc_label << endl;
898 }
899 }
900
901 else if (ST.stringcmp(argv[i], "-arc_with_two_given_sets_of_lines_after_dualizing") == 0) {
903 arc_size = ST.strtoi(argv[++i]);
904 arc_d = ST.strtoi(argv[++i]);
905 arc_d_low = ST.strtoi(argv[++i]);
906 arc_s = ST.strtoi(argv[++i]);
907 arc_t = ST.strtoi(argv[++i]);
908 t_lines_string.assign(argv[++i]);
909 arc_input_set.assign(argv[++i]);
910 arc_label.assign(argv[++i]);
911 if (f_v) {
912 cout << "-arc_with_two_given_sets_of_lines_after_dualizing src_size="
913 << arc_size << " d=" << arc_d << " d_low=" << arc_d_low << " s=" << arc_s << " t=" << arc_t << " " << t_lines_string << " " << arc_input_set << " " << arc_label << endl;
914 }
915 }
916
917 else if (ST.stringcmp(argv[i], "-arc_with_three_given_sets_of_lines_after_dualizing") == 0) {
919 arc_size = ST.strtoi(argv[++i]);
920 arc_d = ST.strtoi(argv[++i]);
921 arc_d_low = ST.strtoi(argv[++i]);
922 arc_s = ST.strtoi(argv[++i]);
923 arc_t = ST.strtoi(argv[++i]);
924 t_lines_string.assign(argv[++i]);
925 arc_u = ST.strtoi(argv[++i]);
926 u_lines_string.assign(argv[++i]);
927 arc_input_set.assign(argv[++i]);
928 arc_label.assign(argv[++i]);
929 if (f_v) {
930 cout << "-arc_with_three_given_sets_of_lines_after_dualizing "
931 << arc_size << " d=" << arc_d << " d_low=" << arc_d_low << " s=" << arc_s << " " << arc_input_set << " " << arc_label << endl;
932 cout << "arc_t = " << arc_t << " t_lines_string = " << t_lines_string << endl;
933 cout << "arc_u = " << arc_u << " u_lines_string = " << u_lines_string << endl;
934 }
935 }
936
937 else if (ST.stringcmp(argv[i], "-dualize_hyperplanes_to_points") == 0) {
939 dualize_input_set.assign(argv[++i]);
940 if (f_v) {
941 cout << "-dualize_hyperplanes_to_points " << dualize_input_set << endl;
942 }
943 }
944
945 else if (ST.stringcmp(argv[i], "-dualize_points_to_hyperplanes") == 0) {
947 dualize_input_set.assign(argv[++i]);
948 if (f_v) {
949 cout << "-dualize_points_to_hyperplanes " << dualize_input_set << endl;
950 }
951 }
952 else if (ST.stringcmp(argv[i], "-dualize_rank_k_subspaces") == 0) {
954 dualize_rank_k_subspaces_k = ST.strtoi(argv[++i]);
955 dualize_input_set.assign(argv[++i]);
956 if (f_v) {
957 cout << "-dualize_rank_k_subspaces " << dualize_rank_k_subspaces_k << " " << dualize_input_set << endl;
958 }
959 }
960
961 else if (ST.stringcmp(argv[i], "-classify_arcs") == 0) {
964 if (f_v) {
965 cout << "-classify_arcs" << endl;
966 }
967 i += Arc_generator_description->read_arguments(argc - (i + 1),
968 argv + i + 1, verbose_level);
969
970 if (f_v) {
971 cout << "done reading -classify_arcs " << endl;
972 cout << "i = " << i << endl;
973 cout << "argc = " << argc << endl;
974 if (i < argc) {
975 cout << "next argument is " << argv[i] << endl;
976 }
977 }
978 }
979 // cubic curves
980 else if (ST.stringcmp(argv[i], "-classify_cubic_curves") == 0) {
983 if (f_v) {
984 cout << "-classify_cubic_curves" << endl;
985 }
986 i += Arc_generator_description->read_arguments(argc - (i + 1),
987 argv + i + 1, verbose_level);
988
989 if (f_v) {
990 cout << "done reading -classify_cubic_curves " << endl;
991 cout << "i = " << i << endl;
992 cout << "argc = " << argc << endl;
993 if (i < argc) {
994 cout << "next argument is " << argv[i] << endl;
995 }
996 cout << "-classify_cubic_curves " << endl;
997 }
998 }
999
1000 else if (ST.stringcmp(argv[i], "-latex_homogeneous_equation") == 0) {
1003 latex_homogeneous_equation_symbol_txt.assign(argv[++i]);
1004 latex_homogeneous_equation_symbol_tex.assign(argv[++i]);
1005 latex_homogeneous_equation_text.assign(argv[++i]);
1006 if (f_v) {
1007 cout << "-latex_homogeneous_equation " << latex_homogeneous_equation_degree
1010 << " " << latex_homogeneous_equation_text << endl;
1011 }
1012 }
1013 else if (ST.stringcmp(argv[i], "-lines_on_point_but_within_a_plane") == 0) {
1017 if (f_v) {
1018 cout << "-lines_on_point_but_within_a_plane "
1021 << endl;
1022 }
1023 }
1024 else if (ST.stringcmp(argv[i], "-rank_lines_in_PG") == 0) {
1026 rank_lines_in_PG_label.assign(argv[++i]);
1027 if (f_v) {
1028 cout << "-rank_lines_in_PG " << rank_lines_in_PG_label << endl;
1029 }
1030 }
1031
1032 else if (ST.stringcmp(argv[i], "-unrank_lines_in_PG") == 0) {
1034 unrank_lines_in_PG_text.assign(argv[++i]);
1035 if (f_v) {
1036 cout << "-unrank_lines_in_PG " << unrank_lines_in_PG_text << endl;
1037 }
1038 }
1039 else if (ST.stringcmp(argv[i], "-move_two_lines_in_hyperplane_stabilizer") == 0) {
1041 line1_from = ST.strtoi(argv[++i]);
1042 line2_from = ST.strtoi(argv[++i]);
1043 line1_to = ST.strtoi(argv[++i]);
1044 line2_to = ST.strtoi(argv[++i]);
1045 if (f_v) {
1046 cout << "-move_two_lines_in_hyperplane_stabilizer"
1047 << " " << line1_from
1048 << " " << line1_from
1049 << " " << line1_to
1050 << " " << line2_to
1051 << endl;
1052 }
1053 }
1054 else if (ST.stringcmp(argv[i], "-move_two_lines_in_hyperplane_stabilizer_text") == 0) {
1056 line1_from_text.assign(argv[++i]);
1057 line2_from_text.assign(argv[++i]);
1058 line1_to_text.assign(argv[++i]);
1059 line2_to_text.assign(argv[++i]);
1060 if (f_v) {
1061 cout << "-move_two_lines_in_hyperplane_stabilizer_text"
1062 << " " << line1_from_text
1063 << " " << line2_from_text
1064 << " " << line1_to_text
1065 << " " << line2_to_text
1066 << endl;
1067 }
1068 }
1069
1070 else if (ST.stringcmp(argv[i], "-end") == 0) {
1071 if (f_v) {
1072 cout << "-end" << endl;
1073 }
1074 break;
1075 }
1076
1077 else {
1078 cout << "projective_space_activity_description::read_arguments "
1079 "unrecognized option " << argv[i] << endl;
1080 exit(1);
1081 }
1082
1083 if (f_v) {
1084 cout << "projective_space_activity_description::read_arguments looping, i=" << i << endl;
1085 }
1086 } // next i
1087
1088 if (f_v) {
1089 cout << "projective_space_activity_description::read_arguments done" << endl;
1090 }
1091 return i + 1;
1092}
1093
1095{
1097 cout << "-table_of_cubic_surfaces_compute_properties "
1101 << endl;
1102 }
1104 cout << "-cubic_surface_properties " << cubic_surface_properties_fname_csv
1105 << " " << cubic_surface_properties_defining_q << endl;
1106 }
1108 cout << "-canonical_form_of_code "
1111 << endl;
1113 }
1114
1115 if (f_map) {
1116 cout << "-map "
1117 << map_label << " "
1118 << map_parameters << " "
1119 << endl;
1120 }
1122 cout << "-analyze_del_Pezzo_surface "
1125 << endl;
1126 }
1128 cout << "-cheat_sheet_for_decomposition_by_element_PG "
1132 << endl;
1133 }
1134
1135
1137 cout << "-decomposition_by_subgroup "
1139 << " ";
1141 }
1142
1143 if (f_define_object) {
1144 cout << "-define_object " << define_object_label << endl;
1146 }
1147 if (f_define_surface) {
1148 cout << "-define_surface " << define_surface_label << endl;
1150 }
1152 cout << "-table_of_quartic_curves " << endl;
1153 }
1155 cout << "-table_of_cubic_surfaces " << endl;
1156 }
1158 cout << "-define_quartic_curve " << define_quartic_curve_label << endl;
1160 }
1161
1162
1163 // cubic surfaces:
1165 cout << "-classify_surfaces_with_double_sixes " << classify_surfaces_with_double_sixes_label << endl;
1167 }
1168
1170 cout << "-classify_surfaces_through_arcs_and_two_lines " << endl;
1171 }
1172
1174 cout << "-test_nb_Eckardt_points " << nb_E << endl;
1175 }
1177 cout << "-classify_surfaces_through_arcs_and_trihedral_pairs " << endl;
1178 }
1179
1180 if (f_sweep) {
1181 cout << "-sweep " << sweep_fname << endl;
1182 }
1183
1184 if (f_sweep_4_15_lines) {
1185 cout << "-sweep_4_15_lines " << sweep_4_15_lines_fname << endl;
1187 }
1188
1190 cout << "-sweep_F_beta_9_lines " << sweep_F_beta_9_lines_fname << endl;
1192 }
1193
1194 if (f_sweep_6_9_lines) {
1195 cout << "-sweep_6_9_lines " << sweep_6_9_lines_fname << endl;
1197 }
1198
1199 if (f_sweep_4_27) {
1200 cout << "-sweep_4_27 " << sweep_4_27_fname << endl;
1201 }
1202
1204 cout << "-six_arcs_not_on_conic" << endl;
1205 }
1207 cout << "-filter_by_nb_Eckardt_points " << nb_Eckardt_points << endl;
1208 }
1209 if (f_surface_quartic) {
1210 cout << "-surface_quartic" << endl;
1211 }
1212 if (f_surface_quartic) {
1213 cout << "-surface_clebsch" << endl;
1214 }
1215 if (f_surface_codes) {
1216 cout << "-surface_codes" << endl;
1217 }
1218 if (f_trihedra1_control) {
1219 cout << "-trihedra1_control " << endl;
1221 }
1222 if (f_trihedra2_control) {
1223 cout << "-trihedra2_control " << endl;
1225 }
1226 if (f_control_six_arcs) {
1227 cout << "-control_six_arcs " << endl;
1229 }
1231 cout << "-make_gilbert_varshamov_code" << make_gilbert_varshamov_code_n
1232 << " " << make_gilbert_varshamov_code_d << endl;
1233 }
1234
1235 if (f_spread_classify) {
1237 cout << "-spread_classify " << spread_classify_k << endl;
1239 }
1240
1241 // semifields
1243 cout << "-classify_semifields " << endl;
1245 }
1246 if (f_cheat_sheet) {
1247 cout << "-cheat_sheet " << endl;
1248 }
1250 cout << "-classify_quartic_curves_nauty "
1254 << endl;
1255 }
1257 cout << "-classify_quartic_curves_with_substructure "
1263 << endl;
1264 }
1265 if (f_set_stabilizer) {
1266 cout << "-set_stabilizer "
1269 << set_stabilizer_nb << " "
1271 << set_stabilizer_fname_out << " "
1272 << endl;
1273 }
1274 if (f_conic_type) {
1275 cout << "-conic_type "
1276 << conic_type_set_text << endl;
1277 }
1278
1279 if (f_lift_skew_hexagon) {
1280 cout << "-lift_skew_hexagon "
1281 << lift_skew_hexagon_text << endl;
1282 }
1283
1285 cout << "-lift_skew_hexagon_with_polarity "
1287 << endl;
1288 }
1290 cout << "-arc_with_given_set_as_s_lines_after_dualizing "
1291 << arc_size << " d=" << arc_d << " d_low=" << arc_d_low << " s=" << arc_s << " " << arc_input_set << " " << arc_label << endl;
1292 }
1294 cout << "-arc_with_two_given_sets_of_lines_after_dualizing src_size="
1295 << arc_size << " d=" << arc_d << " d_low=" << arc_d_low << " s=" << arc_s << " t=" << arc_t << " " << t_lines_string << " " << arc_input_set << " " << arc_label << endl;
1296 }
1298 cout << "-arc_with_three_given_sets_of_lines_after_dualizing "
1299 << arc_size << " d=" << arc_d << " d_low=" << arc_d_low << " s=" << arc_s << " " << arc_input_set << " " << arc_label << endl;
1300 cout << "arc_t = " << arc_t << " t_lines_string = " << t_lines_string << endl;
1301 cout << "arc_u = " << arc_u << " u_lines_string = " << u_lines_string << endl;
1302 }
1304 cout << "-dualize_hyperplanes_to_points" << " " << dualize_input_set << endl;
1305 }
1307 cout << "-dualize_points_to_hyperplanes" << " " << dualize_input_set << endl;
1308 }
1310 cout << "-dualize_rank_k_subspaces " << dualize_rank_k_subspaces_k << " " << dualize_input_set << endl;
1311 }
1312 if (f_classify_arcs) {
1313 cout << "-classify_arcs " << endl;
1315 }
1316 // cubic curves
1318 cout << "-classify_cubic_curves" << endl;
1320 }
1322 cout << "-latex_homogeneous_equation " << latex_homogeneous_equation_degree
1325 << " " << latex_homogeneous_equation_text << endl;
1326 }
1328 cout << "-lines_on_point_but_within_a_plane "
1331 << endl;
1332 }
1333 if (f_rank_lines_in_PG) {
1334 cout << "-rank_lines_in_PG " << rank_lines_in_PG_label << endl;
1335 }
1336
1338 cout << "-unrank_lines_in_PG " << unrank_lines_in_PG_text << endl;
1339 }
1341 cout << "-move_two_lines_in_hyperplane_stabilizer"
1342 << " " << line1_from
1343 << " " << line1_from
1344 << " " << line1_to
1345 << " " << line2_to
1346 << endl;
1347 }
1349 cout << "-move_two_lines_in_hyperplane_stabilizer_text"
1350 << " " << line1_from_text
1351 << " " << line2_from_text
1352 << " " << line1_to_text
1353 << " " << line2_to_text
1354 << endl;
1355 }
1356
1357}
1358
1359
1360
1361}}}
1362
description of a classification of objects using class classification_of_objects
functions related to strings and character arrays
to create a geometric object encoded as a set using a description from the command line
Definition: geometry.h:598
description of a linear group from the command line
Definition: groups.h:158
int read_arguments(int argc, std::string *argv, int verbose_level)
to control the behavior of the poset classification algorithm
description of a classification problem of arcs in a geometry
Definition: tl_geometry.h:27
applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description * sweep_4_15_lines_surface_description
applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description * Surface_Descr
applications_in_algebraic_geometry::quartic_curves::quartic_curve_create_description * Quartic_curve_descr
applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description * sweep_F_beta_9_lines_surface_description
applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description * sweep_6_9_lines_surface_description
combinatorics::classification_of_objects_description * Canonical_form_codes_Descr
poset_classification::poset_classification_control * classify_surfaces_with_double_sixes_control
applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description * sweep_4_27_surface_description
description of a semifield classification problem
Definition: semifields.h:24
#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