17namespace layer5_applications {
18namespace projective_geometry {
28 f_canonical_form_PG =
FALSE;
30 Canonical_form_PG_Descr = NULL;
244 int argc, std::string *argv,
247 int f_v = (verbose_level >= 1);
252 cout <<
"projective_space_activity_description::read_arguments" << endl;
254 for (i = 0; i < argc; i++) {
257 if (stringcmp(argv[i],
"-input") == 0) {
261 cout <<
"-input" << endl;
263 i += Data->read_arguments(argc - (i + 1),
264 argv + i + 1, verbose_level);
266 cout <<
"projective_space_activity_description::read_arguments finished reading -input" << endl;
267 cout <<
"i = " << i << endl;
268 cout <<
"argc = " << argc << endl;
270 cout <<
"next argument is " << argv[i] << endl;
277 if (stringcmp(argv[i],
"-canonical_form_PG") == 0) {
278 f_canonical_form_PG =
TRUE;
280 cout <<
"-canonical_form_PG, reading extra arguments" << endl;
283 Canonical_form_PG_Descr =
NEW_OBJECT(projective_space_object_classifier_description);
285 i += Canonical_form_PG_Descr->read_arguments(argc - (i + 1), argv + i + 1, verbose_level);
287 cout <<
"done reading -canonical_form_PG " << endl;
288 cout <<
"i = " << i << endl;
289 cout <<
"argc = " << argc << endl;
291 cout <<
"next argument is " << argv[i] << endl;
297 if (ST.
stringcmp(argv[i],
"-export_point_line_incidence_matrix") == 0) {
300 cout <<
"-export_point_line_incidence_matrix " << endl;
304 else if (ST.
stringcmp(argv[i],
"-table_of_cubic_surfaces_compute_properties") == 0) {
307 cout <<
"-table_of_cubic_surfaces_compute_properties next argument is " << argv[i + 1] << endl;
311 cout <<
"-table_of_cubic_surfaces_compute_properties "
319 else if (ST.
stringcmp(argv[i],
"-cubic_surface_properties_analyze") == 0) {
324 cout <<
"-cubic_surface_properties "
330 else if (ST.
stringcmp(argv[i],
"-canonical_form_of_code") == 0) {
339 cout <<
"done reading -canonical_form_of_code " << endl;
340 cout <<
"i = " << i << endl;
341 cout <<
"argc = " << argc << endl;
343 cout <<
"next argument is " << argv[i] << endl;
349 cout <<
"-canonical_form_of_code "
357 else if (ST.
stringcmp(argv[i],
"-map") == 0) {
369 else if (ST.
stringcmp(argv[i],
"-analyze_del_Pezzo_surface") == 0) {
374 cout <<
"-analyze_del_Pezzo_surface "
381 else if (ST.
stringcmp(argv[i],
"-cheat_sheet_for_decomposition_by_element_PG") == 0) {
387 cout <<
"-cheat_sheet_for_decomposition_by_element_PG "
395 else if (ST.
stringcmp(argv[i],
"-decomposition_by_subgroup") == 0) {
400 argv + i + 1, verbose_level);
402 cout <<
"done reading -H" << endl;
403 cout <<
"i = " << i << endl;
404 cout <<
"argc = " << argc << endl;
406 cout <<
"next argument is " << argv[i] << endl;
409 cout <<
"-decomposition_by_subgroup "
418 else if (ST.
stringcmp(argv[i],
"-define_object") == 0) {
421 cout <<
"-define_object, reading extra arguments" << endl;
429 cout <<
"done reading -define_object " << endl;
430 cout <<
"i = " << i << endl;
431 cout <<
"argc = " << argc << endl;
433 cout <<
"next argument is " << argv[i] << endl;
439 else if (ST.
stringcmp(argv[i],
"-define_surface") == 0) {
442 cout <<
"-define_surface, reading extra arguments" << endl;
450 cout <<
"done reading -define_surface " << endl;
451 cout <<
"i = " << i << endl;
452 cout <<
"argc = " << argc << endl;
454 cout <<
"next argument is " << argv[i] << endl;
460 else if (ST.
stringcmp(argv[i],
"-table_of_quartic_curves") == 0) {
463 cout <<
"-table_of_quartic_curves " << endl;
467 else if (ST.
stringcmp(argv[i],
"-table_of_cubic_surfaces") == 0) {
470 cout <<
"-table_of_cubic_surfaces " << endl;
474 else if (ST.
stringcmp(argv[i],
"-define_quartic_curve") == 0) {
477 cout <<
"-define_quartic_curve, reading extra arguments" << endl;
485 cout <<
"done reading -define_quartic_curve " << endl;
486 cout <<
"i = " << i << endl;
487 cout <<
"argc = " << argc << endl;
489 cout <<
"next argument is " << argv[i] << endl;
497 else if (ST.
stringcmp(argv[i],
"-classify_surfaces_with_double_sixes") == 0) {
502 cout <<
"-classify_surfaces_with_double_sixes " << endl;
505 argv + i + 1, verbose_level);
508 cout <<
"done reading -poset_classification_control " << endl;
509 cout <<
"i = " << i << endl;
510 cout <<
"argc = " << argc << endl;
512 cout <<
"next argument is " << argv[i] << endl;
519 else if (ST.
stringcmp(argv[i],
"-classify_surfaces_through_arcs_and_two_lines") == 0) {
522 cout <<
"-classify_surfaces_through_arcs_and_two_lines " << endl;
526 else if (ST.
stringcmp(argv[i],
"-test_nb_Eckardt_points") == 0) {
530 cout <<
"-test_nb_Eckardt_points " <<
nb_E << endl;
534 else if (ST.
stringcmp(argv[i],
"-classify_surfaces_through_arcs_and_trihedral_pairs") == 0) {
537 cout <<
"-classify_surfaces_through_arcs_and_trihedral_pairs " << endl;
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,
548 cout <<
"done with -create_surface" << endl;
549 cout <<
"i = " << i << endl;
550 cout <<
"argc = " << argc << endl;
552 cout <<
"next argument is " << argv[i] << endl;
557 else if (ST.
stringcmp(argv[i],
"-sweep") == 0) {
565 else if (ST.
stringcmp(argv[i],
"-sweep_4_15_lines") == 0) {
570 cout <<
"-sweep_4_15_lines" << endl;
573 argc - (i + 1), argv + i + 1,
576 cout <<
"done with -sweep_4_15_lines" << endl;
577 cout <<
"i = " << i << endl;
578 cout <<
"argc = " << argc << endl;
580 cout <<
"next argument is " << argv[i] << endl;
587 else if (ST.
stringcmp(argv[i],
"-sweep_F_beta_9_lines") == 0) {
592 cout <<
"-sweep_F_beta_9_lines" << endl;
595 argc - (i + 1), argv + i + 1,
598 cout <<
"done with -sweep_F_beta_9_lines" << endl;
599 cout <<
"i = " << i << endl;
600 cout <<
"argc = " << argc << endl;
602 cout <<
"next argument is " << argv[i] << endl;
610 else if (ST.
stringcmp(argv[i],
"-sweep_6_9_lines") == 0) {
615 cout <<
"-sweep_6_9_lines" << endl;
618 argc - (i + 1), argv + i + 1,
621 cout <<
"done with -sweep_6_9_lines" << endl;
622 cout <<
"i = " << i << endl;
623 cout <<
"argc = " << argc << endl;
625 cout <<
"next argument is " << argv[i] << endl;
632 else if (ST.
stringcmp(argv[i],
"-sweep_4_27") == 0) {
637 cout <<
"-sweep_4_27" << endl;
640 argc - (i + 1), argv + i + 1,
643 cout <<
"done with -sweep_4_27" << endl;
644 cout <<
"i = " << i << endl;
645 cout <<
"argc = " << argc << endl;
647 cout <<
"next argument is " << argv[i] << endl;
653 else if (ST.
stringcmp(argv[i],
"-six_arcs_not_on_conic") == 0) {
656 cout <<
"-six_arcs_not_on_conic" << endl;
660 else if (ST.
stringcmp(argv[i],
"-filter_by_nb_Eckardt_points") == 0) {
668 else if (ST.
stringcmp(argv[i],
"-surface_quartic") == 0) {
671 cout <<
"-surface_quartic" << endl;
675 else if (ST.
stringcmp(argv[i],
"-surface_clebsch") == 0) {
678 cout <<
"-surface_clebsch" << endl;
682 else if (ST.
stringcmp(argv[i],
"-surface_codes") == 0) {
685 cout <<
"-surface_codes" << endl;
689 else if (ST.
stringcmp(argv[i],
"-trihedra1_control") == 0) {
693 argv + i + 1, verbose_level);
696 cout <<
"done reading -trihedra1_control " << endl;
697 cout <<
"i = " << i << endl;
698 cout <<
"argc = " << argc << endl;
700 cout <<
"next argument is " << argv[i] << endl;
705 else if (ST.
stringcmp(argv[i],
"-trihedra2_control") == 0) {
709 argv + i + 1, verbose_level);
712 cout <<
"done reading -trihedra2_control " << endl;
713 cout <<
"i = " << i << endl;
714 cout <<
"argc = " << argc << endl;
716 cout <<
"next argument is " << argv[i] << endl;
721 else if (ST.
stringcmp(argv[i],
"-control_six_arcs") == 0) {
725 argv + i + 1, verbose_level);
728 cout <<
"done reading -control_six_arcs " << endl;
729 cout <<
"i = " << i << endl;
730 cout <<
"argc = " << argc << endl;
732 cout <<
"next argument is " << argv[i] << endl;
737 else if (ST.
stringcmp(argv[i],
"-make_gilbert_varshamov_code") == 0) {
747 else if (ST.
stringcmp(argv[i],
"-spread_classify") == 0) {
752 cout <<
"-spread_classify " << endl;
755 argv + i + 1, verbose_level);
758 cout <<
"done reading -spread_classify " << endl;
759 cout <<
"i = " << i << endl;
760 cout <<
"argc = " << argc << endl;
762 cout <<
"next argument is " << argv[i] << endl;
770 else if (ST.
stringcmp(argv[i],
"-classify_semifields") == 0) {
774 cout <<
"-classify_semifields" << endl;
777 argv + i + 1, verbose_level);
780 cout <<
"done reading -classify_semifields " << endl;
781 cout <<
"i = " << i << endl;
782 cout <<
"argc = " << argc << endl;
784 cout <<
"next argument is " << argv[i] << endl;
789 cout <<
"reading control " << endl;
792 argv + i + 1, verbose_level);
795 cout <<
"done reading control " << endl;
796 cout <<
"-classify_semifields " << endl;
800 else if (ST.
stringcmp(argv[i],
"-cheat_sheet") == 0) {
803 cout <<
"-cheat_sheet " << endl;
807 else if (ST.
stringcmp(argv[i],
"-classify_quartic_curves_nauty") == 0) {
813 cout <<
"-classify_quartic_curves_nauty "
821 else if (ST.
stringcmp(argv[i],
"-classify_quartic_curves_with_substructure") == 0) {
829 cout <<
"-classify_quartic_curves_with_substructure "
839 else if (ST.
stringcmp(argv[i],
"-set_stabilizer") == 0) {
847 cout <<
"-set_stabilizer "
857 else if (ST.
stringcmp(argv[i],
"-conic_type") == 0) {
862 cout <<
"-conic_type "
868 else if (ST.
stringcmp(argv[i],
"-lift_skew_hexagon") == 0) {
872 cout <<
"-lift_skew_hexagon "
877 else if (ST.
stringcmp(argv[i],
"-lift_skew_hexagon_with_polarity") == 0) {
881 cout <<
"-lift_skew_hexagon_with_polarity "
887 else if (ST.
stringcmp(argv[i],
"-arc_with_given_set_as_s_lines_after_dualizing") == 0) {
896 cout <<
"-arc_with_given_set_as_s_lines_after_dualizing "
901 else if (ST.
stringcmp(argv[i],
"-arc_with_two_given_sets_of_lines_after_dualizing") == 0) {
912 cout <<
"-arc_with_two_given_sets_of_lines_after_dualizing src_size="
917 else if (ST.
stringcmp(argv[i],
"-arc_with_three_given_sets_of_lines_after_dualizing") == 0) {
930 cout <<
"-arc_with_three_given_sets_of_lines_after_dualizing "
937 else if (ST.
stringcmp(argv[i],
"-dualize_hyperplanes_to_points") == 0) {
945 else if (ST.
stringcmp(argv[i],
"-dualize_points_to_hyperplanes") == 0) {
952 else if (ST.
stringcmp(argv[i],
"-dualize_rank_k_subspaces") == 0) {
961 else if (ST.
stringcmp(argv[i],
"-classify_arcs") == 0) {
965 cout <<
"-classify_arcs" << endl;
968 argv + i + 1, verbose_level);
971 cout <<
"done reading -classify_arcs " << endl;
972 cout <<
"i = " << i << endl;
973 cout <<
"argc = " << argc << endl;
975 cout <<
"next argument is " << argv[i] << endl;
980 else if (ST.
stringcmp(argv[i],
"-classify_cubic_curves") == 0) {
984 cout <<
"-classify_cubic_curves" << endl;
987 argv + i + 1, verbose_level);
990 cout <<
"done reading -classify_cubic_curves " << endl;
991 cout <<
"i = " << i << endl;
992 cout <<
"argc = " << argc << endl;
994 cout <<
"next argument is " << argv[i] << endl;
996 cout <<
"-classify_cubic_curves " << endl;
1000 else if (ST.
stringcmp(argv[i],
"-latex_homogeneous_equation") == 0) {
1013 else if (ST.
stringcmp(argv[i],
"-lines_on_point_but_within_a_plane") == 0) {
1018 cout <<
"-lines_on_point_but_within_a_plane "
1024 else if (ST.
stringcmp(argv[i],
"-rank_lines_in_PG") == 0) {
1032 else if (ST.
stringcmp(argv[i],
"-unrank_lines_in_PG") == 0) {
1039 else if (ST.
stringcmp(argv[i],
"-move_two_lines_in_hyperplane_stabilizer") == 0) {
1046 cout <<
"-move_two_lines_in_hyperplane_stabilizer"
1054 else if (ST.
stringcmp(argv[i],
"-move_two_lines_in_hyperplane_stabilizer_text") == 0) {
1061 cout <<
"-move_two_lines_in_hyperplane_stabilizer_text"
1070 else if (ST.
stringcmp(argv[i],
"-end") == 0) {
1072 cout <<
"-end" << endl;
1078 cout <<
"projective_space_activity_description::read_arguments "
1079 "unrecognized option " << argv[i] << endl;
1084 cout <<
"projective_space_activity_description::read_arguments looping, i=" << i << endl;
1089 cout <<
"projective_space_activity_description::read_arguments done" << endl;
1097 cout <<
"-table_of_cubic_surfaces_compute_properties "
1108 cout <<
"-canonical_form_of_code "
1122 cout <<
"-analyze_del_Pezzo_surface "
1128 cout <<
"-cheat_sheet_for_decomposition_by_element_PG "
1137 cout <<
"-decomposition_by_subgroup "
1152 cout <<
"-table_of_quartic_curves " << endl;
1155 cout <<
"-table_of_cubic_surfaces " << endl;
1170 cout <<
"-classify_surfaces_through_arcs_and_two_lines " << endl;
1174 cout <<
"-test_nb_Eckardt_points " <<
nb_E << endl;
1177 cout <<
"-classify_surfaces_through_arcs_and_trihedral_pairs " << endl;
1204 cout <<
"-six_arcs_not_on_conic" << endl;
1210 cout <<
"-surface_quartic" << endl;
1213 cout <<
"-surface_clebsch" << endl;
1216 cout <<
"-surface_codes" << endl;
1219 cout <<
"-trihedra1_control " << endl;
1223 cout <<
"-trihedra2_control " << endl;
1227 cout <<
"-control_six_arcs " << endl;
1243 cout <<
"-classify_semifields " << endl;
1247 cout <<
"-cheat_sheet " << endl;
1250 cout <<
"-classify_quartic_curves_nauty "
1257 cout <<
"-classify_quartic_curves_with_substructure "
1266 cout <<
"-set_stabilizer "
1275 cout <<
"-conic_type "
1280 cout <<
"-lift_skew_hexagon "
1285 cout <<
"-lift_skew_hexagon_with_polarity "
1290 cout <<
"-arc_with_given_set_as_s_lines_after_dualizing "
1294 cout <<
"-arc_with_two_given_sets_of_lines_after_dualizing src_size="
1298 cout <<
"-arc_with_three_given_sets_of_lines_after_dualizing "
1313 cout <<
"-classify_arcs " << endl;
1318 cout <<
"-classify_cubic_curves" << endl;
1328 cout <<
"-lines_on_point_but_within_a_plane "
1341 cout <<
"-move_two_lines_in_hyperplane_stabilizer"
1349 cout <<
"-move_two_lines_in_hyperplane_stabilizer_text"
description of a classification of objects using class classification_of_objects
int read_arguments(int argc, std::string *argv, int verbose_level)
to create a geometric object encoded as a set using a description from the command line
int read_arguments(int argc, std::string *argv, int verbose_level)
description of a linear group from the command line
int read_arguments(int argc, std::string *argv, int verbose_level)
to control the behavior of the poset classification algorithm
int read_arguments(int argc, std::string *argv, int verbose_level)
to describe a cubic surface from the command line
int read_arguments(int argc, std::string *argv, int verbose_level)
to describe a quartic curve from the command line
int read_arguments(int argc, std::string *argv, int verbose_level)
description of a classification problem of arcs in a geometry
int read_arguments(int argc, std::string *argv, int verbose_level)
std::string analyze_del_Pezzo_surface_parameters
applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description * sweep_4_15_lines_surface_description
int f_analyze_del_Pezzo_surface
std::string set_stabilizer_fname_mask
int f_classify_quartic_curves_with_substructure
std::string classify_quartic_curves_with_substructure_fname_mask
geometry::geometric_object_description * Object_Descr
int f_sweep_F_beta_9_lines
std::string cubic_surface_properties_fname_csv
int dualize_rank_k_subspaces_k
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
std::string decomposition_by_element_fname
poset_classification::poset_classification_control * Trihedra2_control
int classify_quartic_curves_nauty_nb
std::string line2_to_text
std::string define_quartic_curve_label
std::string lift_skew_hexagon_text
poset_classification::poset_classification_control * spread_classify_Control
~projective_space_activity_description()
std::string line1_to_text
applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description * sweep_F_beta_9_lines_surface_description
int f_dualize_rank_k_subspaces
std::string line1_from_text
std::string define_surface_label
int f_arc_with_two_given_sets_of_lines_after_dualizing
int f_test_nb_Eckardt_points
int table_of_cubic_surfaces_compute_defining_q
int decomposition_by_element_power
int f_cheat_sheet_for_decomposition_by_element_PG
std::string line2_from_text
std::string u_lines_string
std::string conic_type_set_text
int f_cubic_surface_properties_analyze
apps_geometry::arc_generator_description * Arc_generator_description
std::string sweep_F_beta_9_lines_fname
std::string decomposition_by_element_data
int f_lines_on_point_but_within_a_plane
std::string unrank_lines_in_PG_text
int table_of_cubic_surfaces_compute_column_offset
applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description * sweep_6_9_lines_surface_description
std::string sweep_4_15_lines_fname
combinatorics::classification_of_objects_description * Canonical_form_codes_Descr
int f_table_of_cubic_surfaces
int f_filter_by_nb_Eckardt_points
std::string sweep_4_27_fname
int f_classify_semifields
long int lines_on_point_but_within_a_plane_point_rk
int f_arc_with_given_set_as_s_lines_after_dualizing
poset_classification::poset_classification_control * classify_surfaces_with_double_sixes_control
int f_dualize_points_to_hyperplanes
int f_lift_skew_hexagon_with_polarity
int read_arguments(int argc, std::string *argv, int verbose_level)
int classify_quartic_curves_with_substructure_nb
int f_table_of_quartic_curves
std::string map_parameters
applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description * sweep_4_27_surface_description
std::string classify_surfaces_with_double_sixes_label
int f_move_two_lines_in_hyperplane_stabilizer
std::string latex_homogeneous_equation_symbol_tex
int f_latex_homogeneous_equation
poset_classification::poset_classification_control * Trihedra1_control
int latex_homogeneous_equation_degree
int f_classify_surfaces_through_arcs_and_trihedral_pairs
std::string lift_skew_hexagon_with_polarity_polarity
std::string latex_homogeneous_equation_symbol_txt
std::string t_lines_string
semifields::semifield_classify_description * Semifield_classify_description
std::string latex_homogeneous_equation_text
int classify_quartic_curves_with_substructure_degree
int f_decomposition_by_subgroup
int f_define_quartic_curve
int f_six_arcs_not_on_conic
std::string table_of_cubic_surfaces_compute_fname_csv
std::string set_stabilizer_column_label
std::string classify_quartic_curves_nauty_fname_classification
int f_classify_quartic_curves_nauty
std::string classify_quartic_curves_nauty_fname_mask
int make_gilbert_varshamov_code_d
int f_classify_cubic_curves
int cubic_surface_properties_defining_q
int make_gilbert_varshamov_code_n
int f_make_gilbert_varshamov_code
projective_space_activity_description()
int f_classify_surfaces_through_arcs_and_two_lines
std::string classify_quartic_curves_with_substructure_fname_classification
std::string dualize_input_set
groups::linear_group_description * decomposition_by_subgroup_Descr
std::string canonical_form_of_code_label
int f_classify_surfaces_with_double_sixes
std::string define_object_label
long int lines_on_point_but_within_a_plane_plane_rk
std::string set_stabilizer_fname_out
int set_stabilizer_intermediate_set_size
std::string arc_input_set
int f_table_of_cubic_surfaces_compute_properties
std::string decomposition_by_subgroup_label
std::string sweep_6_9_lines_fname
int f_dualize_hyperplanes_to_points
poset_classification::poset_classification_control * Semifield_classify_Control
poset_classification::poset_classification_control * Control_six_arcs
int classify_quartic_curves_with_substructure_size
int f_move_two_lines_in_hyperplane_stabilizer_text
int f_arc_with_three_given_sets_of_lines_after_dualizing
std::string rank_lines_in_PG_label
std::string analyze_del_Pezzo_surface_label
int f_export_point_line_incidence_matrix
std::string canonical_form_of_code_generator_matrix
int f_canonical_form_of_code
description of a semifield classification problem
int read_arguments(int argc, std::string *argv, int verbose_level)
the orbiter library for the classification of combinatorial objects