8#ifndef SRC_LIB_TOP_LEVEL_PROJECTIVE_SPACE_PROJECTIVE_SPACE_H_
9#define SRC_LIB_TOP_LEVEL_PROJECTIVE_SPACE_PROJECTIVE_SPACE_H_
14namespace layer5_applications {
15namespace projective_geometry {
73 ring_theory::homogeneous_polynomial_domain *
Poly_ring;
75 induced_actions::action_on_homogeneous_polynomials *
AonHPD;
81 data_structures::classify_bitvectors *
CB;
90 substructure_classifier *
SubC;
128 long int *bitangents,
130 int *canonical_equation,
131 int *transporter_to_canonical_form,
134 std::string &fname_base,
137 std::string &fname_base,
140 void report(std::string &fname,
int verbose_level);
141 void report2(std::ostream &ost, std::string &fname_base,
int verbose_level);
186 ring_theory::homogeneous_polynomial_domain *Poly4_x123,
187 induced_actions::action_on_homogeneous_polynomials *AonHPD,
191 int *canonical_equation,
192 int *transporter_to_canonical_form,
193 groups::strong_generators *&gens_stab_of_canonical_equation,
231 substructure_stats_and_selection *
SubSt;
237 compute_stabilizer *
CS;
272 ring_theory::longinteger_object &go_eqn,
298 geometry::object_with_canonical_form *
OwCF;
312 geometry::object_with_canonical_form *
OwCF,
314 groups::strong_generators *
Aut_gens,
318 void report(std::ostream &fp,
535 int argc, std::string *argv,
579 std::string &evaluate_text,
584 std::string &evaluate_text,
588 expression_parser::formula *F,
589 std::string &evaluate_text,
600 std::string &set_text,
608 std::string &polarity_36,
620 std::string &fname_mask,
int nb,
621 std::string &fname_classification,
626 std::string &fname_mask,
int nb,
int substructure_size,
int degree,
627 std::string &fname_classification,
632 std::string &fname_mask,
636 std::string &fname_classification,
640 int intermediate_subset_size,
641 std::string &fname_mask,
int nb, std::string &column_label,
642 std::string &fname_out,
662 field_theory::finite_field *
F;
669 int argc, std::string *argv,
695 field_theory::finite_field *
F;
699 geometry::projective_space *
P;
706 algebraic_geometry::quartic_curve_domain *
Dom;
728 geometry::object_with_canonical_form *OiP,
732 int *Elt, std::ostream &ost,
735 int *Elt, std::ostream &ost,
738 int *Elt, std::ostream &ost, std::string &fname_base,
741 data_structures::classify_bitvectors *CB,
742 geometry::object_with_canonical_form *OiP,
743 int f_save_incma_in_and_out, std::string &prefix,
744 int nb_objects_to_test,
745 groups::strong_generators *&SG,
749 groups::strong_generators *&Sg,
752 expression_parser::formula *Formula,
753 std::string &evaluate_text,
756 expression_parser::formula *Formula,
757 std::string &evaluate_text,
760 int decomposition_by_element_power,
761 std::string &decomposition_by_element_data, std::string &fname_base,
764 groups::linear_group_description * subgroup_Descr,
int verbose_level);
767 graphics::layered_graph_draw_options *O,
775 int *genma,
int m,
int n,
776 combinatorics::classification_of_objects_description *Canonical_form_codes_Descr,
781 long int *Pts,
int nb_pts,
int threshold,
784 graphics::layered_graph_draw_options *O,
787 poset_classification::poset_classification_control *Control,
793 groups::strong_generators *SG, std::ostream &ost, std::string &fname_base,
to describe a cubic surface from the command line
cubic surfaces in projective space with automorphism group
to create a cubic surface from a description using class surface_create_description
to describe a quartic curve from the command line
to create a quartic curve from a description using class quartic_curve_create_description
a domain for quartic curves in projective space with group action
description of a classification problem of arcs in a geometry
to represent an object in projective space
object_in_projective_space_with_action()
groups::strong_generators * Aut_gens
geometry::object_with_canonical_form * OwCF
void report(std::ostream &fp, projective_space_with_action *PA, int max_TDO_depth, int verbose_level)
void init(geometry::object_with_canonical_form *OwCF, long int ago, groups::strong_generators *Aut_gens, int *canonical_labeling, int verbose_level)
~object_in_projective_space_with_action()
description of an activity associated with a projective space
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
an activity associated with a projective space
~projective_space_activity()
void do_rank_lines_in_PG(std::string &label, int verbose_level)
projective_space_with_action * PA
projective_space_activity_description * Descr
projective_space_activity()
void perform_activity(int verbose_level)
collection of worker functions for projective space
void do_classify_cubic_curves(projective_space_with_action *PA, apps_geometry::arc_generator_description *Arc_generator_description, int verbose_level)
void analyze_del_Pezzo_surface(projective_space_with_action *PA, std::string &label, std::string &evaluate_text, int verbose_level)
void conic_type(projective_space_with_action *PA, int threshold, std::string &set_text, int verbose_level)
void do_lift_skew_hexagon_with_polarity(projective_space_with_action *PA, std::string &polarity_36, int verbose_level)
void map(projective_space_with_action *PA, std::string &label, std::string &evaluate_text, int verbose_level)
void set_stabilizer(projective_space_with_action *PA, int intermediate_subset_size, std::string &fname_mask, int nb, std::string &column_label, std::string &fname_out, int verbose_level)
void do_classify_arcs(projective_space_with_action *PA, apps_geometry::arc_generator_description *Arc_generator_description, int verbose_level)
void do_create_surface(projective_space_with_action *PA, applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create_description *Surface_Descr, applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_with_action *&Surf_A, applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_create *&SC, int verbose_level)
void classify_quartic_curves_with_substructure(projective_space_with_action *PA, std::string &fname_mask, int nb, int substructure_size, int degree, std::string &fname_classification, canonical_form_classifier *&Classifier, int verbose_level)
void do_lift_skew_hexagon(projective_space_with_action *PA, std::string &text, int verbose_level)
void analyze_del_Pezzo_surface_formula_given(projective_space_with_action *PA, expression_parser::formula *F, std::string &evaluate_text, int verbose_level)
void classify_quartic_curves(projective_space_with_action *PA, std::string &fname_mask, int nb, int size, int degree, std::string &fname_classification, int verbose_level)
void classify_quartic_curves_nauty(projective_space_with_action *PA, std::string &fname_mask, int nb, std::string &fname_classification, canonical_form_classifier *&Classifier, int verbose_level)
description of a projective space with action
int read_arguments(int argc, std::string *argv, int verbose_level)
~projective_space_with_action_description()
projective_space_with_action_description()
int f_use_projectivity_subgroup
field_theory::finite_field * F
projective space PG(n,q) with automorphism group PGGL(n+1,q)
void conic_type(long int *Pts, int nb_pts, int threshold, int verbose_level)
void do_spread_classify(int k, poset_classification::poset_classification_control *Control, int verbose_level)
void table_of_cubic_surfaces(int verbose_level)
void do_rank_lines_in_PG(std::string &label, int verbose_level)
applications_in_algebraic_geometry::quartic_curves::quartic_curve_domain_with_action * QCDA
void report(std::ostream &ost, graphics::layered_graph_draw_options *O, int verbose_level)
void do_cheat_sheet_for_decomposition_by_element_PG(int decomposition_by_element_power, std::string &decomposition_by_element_data, std::string &fname_base, int verbose_level)
void canonical_form_of_code(std::string &label, int *genma, int m, int n, combinatorics::classification_of_objects_description *Canonical_form_codes_Descr, int verbose_level)
geometry::projective_space * P
void map(expression_parser::formula *Formula, std::string &evaluate_text, int verbose_level)
int f_has_action_on_planes
void table_of_quartic_curves(int verbose_level)
actions::action * A_on_lines
projective_space_with_action()
int process_object(data_structures::classify_bitvectors *CB, geometry::object_with_canonical_form *OiP, int f_save_incma_in_and_out, std::string &prefix, int nb_objects_to_test, groups::strong_generators *&SG, long int *canonical_labeling, int verbose_level)
void init(field_theory::finite_field *F, int n, int f_semilinear, int f_init_incidence_structure, int verbose_level)
projective_space_with_action * PA2
void analyze_del_Pezzo_surface(expression_parser::formula *Formula, std::string &evaluate_text, int verbose_level)
actions::action * A_on_planes
void cheat_sheet(graphics::layered_graph_draw_options *O, int verbose_level)
int f_init_incidence_structure
void canonical_labeling(geometry::object_with_canonical_form *OiP, int *canonical_labeling, int verbose_level)
algebraic_geometry::quartic_curve_domain * Dom
void report_decomposition_by_group(groups::strong_generators *SG, std::ostream &ost, std::string &fname_base, int verbose_level)
void do_cheat_sheet_for_decomposition_by_subgroup(std::string &label, groups::linear_group_description *subgroup_Descr, int verbose_level)
void report_decomposition_by_single_automorphism(int *Elt, std::ostream &ost, std::string &fname_base, int verbose_level)
void do_unrank_lines_in_PG(std::string &text, int verbose_level)
field_theory::finite_field * F
void create_quartic_curve(applications_in_algebraic_geometry::quartic_curves::quartic_curve_create_description *Quartic_curve_descr, applications_in_algebraic_geometry::quartic_curves::quartic_curve_create *&QC, int verbose_level)
void compute_group_of_set(long int *set, int set_sz, groups::strong_generators *&Sg, int verbose_level)
~projective_space_with_action()
void report_orbits_on_points_lines_and_planes(int *Elt, std::ostream &ost, int verbose_level)
void report_fixed_points_lines_and_planes(int *Elt, std::ostream &ost, int verbose_level)
void init_group(int f_semilinear, int verbose_level)
void setup_surface_with_action(applications_in_algebraic_geometry::cubic_surfaces_in_general::surface_with_action *&Surf_A, int verbose_level)
description of a semifield classification problem
the orbiter library for the classification of combinatorial objects