8#ifndef SRC_LIB_TOP_LEVEL_SURFACES_SURFACES_AND_DOUBLE_SIXES_SURFACES_AND_DOUBLE_SIXES_H_
9#define SRC_LIB_TOP_LEVEL_SURFACES_SURFACES_AND_DOUBLE_SIXES_SURFACES_AND_DOUBLE_SIXES_H_
13namespace layer5_applications {
14namespace applications_in_algebraic_geometry {
15namespace cubic_surfaces_and_double_sixes {
55 int argc, std::string *argv,
83 poset_classification::poset_classification_report_options *report_options,
116 field_theory::finite_field *
F;
122 algebraic_geometry::surface_domain *
Surf;
128 induced_actions::action_on_wedge_product *
AW;
187 poset_classification::poset_classification_control *
Control;
188 poset_classification::poset_with_group_action *
Poset;
220 poset_classification::poset_classification_control *
Control,
227 void report(std::ostream &ost,
228 graphics::layered_graph_draw_options *draw_options,
229 poset_classification::poset_classification_report_options *Opt,
232 long int *candidates,
int nb_candidates,
233 long int *good_candidates,
int &nb_good_candidates,
237 data_structures::spreadsheet *&Sp,
240 long int *five_lines_out_as_neighbors,
int &orbit_index,
241 int *transporter,
int verbose_level);
244 void upstep(
int verbose_level);
247 int *transporter,
int &orbit_index,
int verbose_level);
248 void write_file(std::ofstream &fp,
int verbose_level);
249 void read_file(std::ifstream &fp,
int verbose_level);
264 field_theory::finite_field *
F;
272 algebraic_geometry::surface_domain *
Surf;
285 invariant_relations::classification_step *
Surfaces;
295 poset_classification::poset_classification_control *Control,
301 void upstep(
int verbose_level);
304 int *&Starter_configuration_idx,
int &nb_starter_conf,
int verbose_level);
305 void write_file(std::ofstream &fp,
int verbose_level);
306 void read_file(std::ifstream &fp,
int verbose_level);
313 int *Iso_type,
int *Nb_lines,
int verbose_level);
315 int *Iso_type,
int *Nb_lines,
int verbose_level);
319 int &isomorphic_to1,
int &isomorphic_to2,
320 int *Elt_isomorphism_1to2,
323 int &isomorphic_to,
int *Elt_isomorphism,
325 void latex_surfaces(std::ostream &ost,
int f_with_stabilizers,
int verbose_level);
326 void report_surface(std::ostream &ost,
int orbit_index,
int verbose_level);
337 graphics::layered_graph_draw_options *draw_options,
338 poset_classification::poset_classification_report_options *Opt,
340 void report(std::ostream &ost,
int f_with_stabilizers,
341 graphics::layered_graph_draw_options *draw_options,
342 poset_classification::poset_classification_report_options *Opt,
354 int *Iso_type,
int *Nb_lines,
int verbose_level);
description of an activity for a classification of cubic surfaces with 27 lines with double sixes
~classification_of_cubic_surfaces_with_double_sixes_activity_description()
cubic_surfaces_in_general::surface_create_description * recognize_surface
cubic_surfaces_in_general::surface_create_description * isomorphism_testing_surface2
int f_identify_general_abcd
int f_isomorphism_testing
cubic_surfaces_in_general::surface_create_description * isomorphism_testing_surface1
classification_of_cubic_surfaces_with_double_sixes_activity_description()
int read_arguments(int argc, std::string *argv, int verbose_level)
poset_classification::poset_classification_report_options * report_options
classification of double sixes in PG(3,q)
void upstep(int verbose_level)
void downstep(int verbose_level)
field_theory::finite_field * F
long int pt0_idx_in_orbit
ring_theory::longinteger_object go
long int * Pts_wedge_to_line
void make_spreadsheet_of_neighbors(data_structures::spreadsheet *&Sp, int verbose_level)
long int * line_to_pts_wedge
int * Pts_for_partial_ovoid_test
void init(cubic_surfaces_in_general::surface_with_action *Surf_A, poset_classification::poset_classification_control *Control, int verbose_level)
void write_file(std::ofstream &fp, int verbose_level)
void partial_ovoid_test_early(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, int verbose_level)
invariant_relations::flag_orbits * Flag_orbits
long int * Neighbor_to_line
void test_orbits(int verbose_level)
void compute_neighbors(int verbose_level)
void classify_partial_ovoids(int verbose_level)
void report(std::ostream &ost, graphics::layered_graph_draw_options *draw_options, poset_classification::poset_classification_report_options *Opt, int verbose_level)
void read_file(std::ifstream &fp, int verbose_level)
invariant_relations::classification_step * Double_sixes
void identify_five_plus_one(long int *five_lines, long int transversal_line, long int *five_lines_out_as_neighbors, int &orbit_index, int *transporter, int verbose_level)
poset_classification::poset_classification * Five_plus_one
void make_spreadsheet_of_fiveplusone_configurations(data_structures::spreadsheet *&Sp, int verbose_level)
induced_actions::action_on_wedge_product * AW
poset_classification::poset_classification_control * Control
ring_theory::longinteger_object stab_go
algebraic_geometry::surface_domain * Surf
int line_to_neighbor(long int line_rk, int verbose_level)
actions::action * A_on_neighbors
groups::strong_generators * stab_gens
void print_five_plus_ones(std::ostream &ost)
long int * Neighbor_to_klein
void classify(int verbose_level)
poset_classification::poset_with_group_action * Poset
cubic_surfaces_in_general::surface_with_action * Surf_A
void identify_double_six(long int *double_six, int *transporter, int &orbit_index, int verbose_level)
groups::strong_generators * SG_line_stab
to describe a cubic surface from the command line
classification of cubic surfaces using double sixes as substructures
void identify_general_abcd_and_print_table(int verbose_level)
int test_if_double_sixes_have_been_computed_already()
void classify_surfaces_from_double_sixes(int verbose_level)
void read_double_sixes(int verbose_level)
void write_double_sixes(int verbose_level)
field_theory::finite_field * F
void upstep(int verbose_level)
void do_classify_surfaces(int verbose_level)
int isomorphism_test_pairwise(cubic_surfaces_in_general::surface_create *SC1, cubic_surfaces_in_general::surface_create *SC2, int &isomorphic_to1, int &isomorphic_to2, int *Elt_isomorphism_1to2, int verbose_level)
void identify_F13(int *Iso_type, int *Nb_lines, int verbose_level)
void test_isomorphism(cubic_surfaces_in_general::surface_create_description *Descr1, cubic_surfaces_in_general::surface_create_description *Descr2, int verbose_level)
void downstep(int verbose_level)
void report_surface(std::ostream &ost, int orbit_index, int verbose_level)
void create_report_double_sixes(int verbose_level)
classify_double_sixes * Classify_double_sixes
void identify_Eckardt_and_print_table(int verbose_level)
void init(cubic_surfaces_in_general::surface_with_action *Surf_A, poset_classification::poset_classification_control *Control, int verbose_level)
void identify_F13_and_print_table(int verbose_level)
invariant_relations::classification_step * Surfaces
void identify_general_abcd(int *Iso_type, int *Nb_lines, int verbose_level)
void identify_Eckardt(int *Iso_type, int *Nb_lines, int verbose_level)
void identify_Bes_and_print_table(int verbose_level)
algebraic_geometry::surface_domain * Surf
void report(std::ostream &ost, int f_with_stabilizers, graphics::layered_graph_draw_options *draw_options, poset_classification::poset_classification_report_options *Opt, int verbose_level)
void derived_arcs(int verbose_level)
void identify_Bes(int *Iso_type, int *Nb_lines, int verbose_level)
void sweep_Cayley(int verbose_level)
void generate_history(int verbose_level)
void latex_surfaces(std::ostream &ost, int f_with_stabilizers, int verbose_level)
void do_classify_double_sixes(int verbose_level)
cubic_surfaces_in_general::surface_with_action * Surf_A
void create_report(int f_with_stabilizers, graphics::layered_graph_draw_options *draw_options, poset_classification::poset_classification_report_options *Opt, int verbose_level)
invariant_relations::flag_orbits * Flag_orbits
~surface_classify_wedge()
void starter_configurations_which_are_involved(int iso_type, int *&Starter_configuration_idx, int &nb_starter_conf, int verbose_level)
void read_file(std::ifstream &fp, int verbose_level)
void write_file(std::ofstream &fp, int verbose_level)
int test_if_surfaces_have_been_computed_already()
void recognition(cubic_surfaces_in_general::surface_create_description *Descr, int verbose_level)
void read_surfaces(int verbose_level)
void identify_surface(int *coeff_of_given_surface, int &isomorphic_to, int *Elt_isomorphism, int verbose_level)
void write_surfaces(int verbose_level)
void generate_source_code(int verbose_level)
cubic surfaces in projective space with automorphism group
to create a cubic surface from a description using class surface_create_description
an activity for a classification of cubic surfaces with 27 lines with double sixes
void do_surface_identify_general_abcd(int verbose_level)
void do_recognize(cubic_surfaces_in_general::surface_create_description *surface_descr, int verbose_level)
classification_of_cubic_surfaces_with_double_sixes_activity()
surface_classify_wedge * SCW
void do_surface_isomorphism_testing(cubic_surfaces_in_general::surface_create_description *surface_descr_isomorph1, cubic_surfaces_in_general::surface_create_description *surface_descr_isomorph2, int verbose_level)
void do_surface_identify_Eckardt(int verbose_level)
void do_surface_identify_F13(int verbose_level)
classification_of_cubic_surfaces_with_double_sixes_activity_description * Descr
void do_write_source_code(int verbose_level)
void do_surface_identify_Bes(int verbose_level)
~classification_of_cubic_surfaces_with_double_sixes_activity()
void init(classification_of_cubic_surfaces_with_double_sixes_activity_description *Descr, surface_classify_wedge *SCW, int verbose_level)
void perform_activity(int verbose_level)
void do_sweep(int verbose_level)
void report(poset_classification::poset_classification_report_options *report_options, int verbose_level)
the orbiter library for the classification of combinatorial objects