13namespace layer5_applications {
14namespace projective_geometry {
21 std::string &evaluate_text,
24 int f_v = (verbose_level >= 1);
27 cout <<
"projective_space_global::map" << endl;
36 cout <<
"could not find symbol " << label << endl;
42 cout <<
"symbol table entry must be of type t_object" << endl;
46 cout <<
"symbol table entry is a collection" << endl;
53 for (i = 0; i < List->size(); i++) {
58 cout <<
"could not find symbol " << (*List)[i] << endl;
70 cout <<
"symbol table entry is a formula" << endl;
80 cout <<
"symbol table entry must be either a formula or a collection" << endl;
86 cout <<
"projective_space_global::map done" << endl;
94 std::string &evaluate_text,
97 int f_v = (verbose_level >= 1);
100 cout <<
"projective_space_global::analyze_del_Pezzo_surface" << endl;
109 cout <<
"could not find symbol " << label << endl;
115 cout <<
"symbol table entry must be of type t_object" << endl;
119 cout <<
"symbol table entry is a collection" << endl;
121 vector<string> *List;
126 for (i = 0; i < List->size(); i++) {
131 cout <<
"could not find symbol " << (*List)[i] << endl;
145 cout <<
"symbol table entry is a formula" << endl;
157 cout <<
"symbol table entry must be either a formula or a collection" << endl;
163 cout <<
"projective_space_global::analyze_del_Pezzo_surface done" << endl;
170 std::string &evaluate_text,
173 int f_v = (verbose_level >= 1);
176 cout <<
"projective_space_global::analyze_del_Pezzo_surface_formula_given" << endl;
180 cout <<
"projective_space_global::analyze_del_Pezzo_surface_formula_given before PA->analyze_del_Pezzo_surface" << endl;
186 cout <<
"projective_space_global::analyze_del_Pezzo_surface_formula_given after PA->analyze_del_Pezzo_surface" << endl;
190 cout <<
"projective_space_global::analyze_del_Pezzo_surface_formula_given done" << endl;
205 int f_v = (verbose_level >= 1);
208 cout <<
"projective_space_global::do_create_surface" << endl;
209 cout <<
"projective_space_global::do_create_surface verbose_level=" << verbose_level << endl;
216 cout <<
"projective_space_global::do_create_surface before Surface_Descr->get_q" << endl;
218 q = Surface_Descr->
get_q();
220 cout <<
"projective_space_global::do_create_surface q = " << q << endl;
224 cout <<
"projective_space_global::do_create_surface PA->q != q" << endl;
228 cout <<
"projective_space_global::do_create_surface we need a three-dimensional projective space" << endl;
234 cout <<
"projective_space_global::do_create_surface before Surf->init" << endl;
237 Surf->
init(PA->
F, 0 );
239 cout <<
"projective_space_global::do_create_surface after Surf->init" << endl;
245 cout <<
"projective_space_global::do_create_surface before Surf_A->init" << endl;
249 cout <<
"projective_space_global::do_create_surface after Surf_A->init" << endl;
254 cout <<
"projective_space_global::do_create_surface before Surf_A->create_surface_and_do_report" << endl;
263 cout <<
"projective_space_global::do_create_surface after Surf_A->create_surface_and_do_report" << endl;
267 cout <<
"projective_space_global::do_create_surface done" << endl;
277 std::string &set_text,
280 int f_v = (verbose_level >= 1);
284 cout <<
"projective_space_global::conic_type" << endl;
294 cout <<
"projective_space_global::conic_type before PA->conic_type" << endl;
297 PA->
conic_type(Pts, nb_pts, threshold, verbose_level);
300 cout <<
"projective_space_global::conic_type after PA->conic_type" << endl;
304 cout <<
"projective_space_global::conic_type done" << endl;
313 int f_v = (verbose_level >= 1);
317 cout <<
"projective_space_global::do_lift_skew_hexagon" << endl;
320 int *Pluecker_coords;
330 if (nb_pts * 6 != sz) {
331 cout <<
"projective_space_global::do_lift_skew_hexagon the number of coordinates must be a multiple of 6" << endl;
336 cout <<
"Pluecker coordinates of lines:" << endl;
344 cout <<
"projective_space_global::do_lift_skew_hexagon we need a three-dimensional projective space" << endl;
350 cout <<
"projective_space_global::do_lift_skew_hexagon before Surf->init" << endl;
353 Surf->
init(PA->
F, 0 );
355 cout <<
"projective_space_global::do_lift_skew_hexagon after Surf->init" << endl;
361 cout <<
"projective_space_global::do_lift_skew_hexagon before Surf_A->init" << endl;
365 cout <<
"projective_space_global::do_lift_skew_hexagon after Surf_A->init" << endl;
375 for (i = 0; i < nb_pts; i++) {
380 cout <<
"projective_space_global::do_lift_skew_hexagon nb_pts != 6" << endl;
385 cout <<
"lines:" << endl;
391 std::vector<std::vector<long int> > Double_sixes;
394 cout <<
"projective_space_global::do_lift_skew_hexagon before Surf_A->complete_skew_hexagon" << endl;
400 cout <<
"projective_space_global::do_lift_skew_hexagon after Surf_A->complete_skew_hexagon" << endl;
403 cout <<
"We found " << Double_sixes.size() <<
" double sixes. They are:" << endl;
404 for (i = 0; i < Double_sixes.size(); i++) {
405 cout << Double_sixes[i][0] <<
",";
406 cout << Double_sixes[i][1] <<
",";
407 cout << Double_sixes[i][2] <<
",";
408 cout << Double_sixes[i][3] <<
",";
409 cout << Double_sixes[i][4] <<
",";
410 cout << Double_sixes[i][5] <<
",";
411 cout << Double_sixes[i][6] <<
",";
412 cout << Double_sixes[i][7] <<
",";
413 cout << Double_sixes[i][8] <<
",";
414 cout << Double_sixes[i][9] <<
",";
415 cout << Double_sixes[i][10] <<
",";
416 cout << Double_sixes[i][11] <<
"," << endl;
421 cout <<
"projective_space_global::do_lift_skew_hexagon done" << endl;
428 std::string &polarity_36,
431 int f_v = (verbose_level >= 1);
435 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity" << endl;
444 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity I need exactly 36 coefficients for the polarity" << endl;
453 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity we need a three-dimensional projective space" << endl;
459 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity before Surf->init" << endl;
462 Surf->
init(PA->
F, 0 );
464 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity after Surf->init" << endl;
470 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity before Surf_A->init" << endl;
474 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity after Surf_A->init" << endl;
480 std::vector<std::vector<long int> > Double_sixes;
482 int Pluecker_coords[36];
488 Pluecker_coords[0] = 1;
490 for (alpha = 1; alpha < PA->
F->
q; alpha++) {
494 for (beta = 1; beta < PA->
F->
q; beta++) {
498 Pluecker_coords[6 + 1] = beta;
499 Pluecker_coords[6 + 3] = alpha;
500 Pluecker_coords[6 + 4] = alpha;
504 Pluecker_coords[12 + 1] = alpha;
505 Pluecker_coords[12 + 2] = beta;
508 for (j = 0; j < 3; j++) {
510 Pluecker_coords + 18 + j * 6, 1, 6, 6, 0 );
518 cout <<
"Pluecker coordinates of lines:" << endl;
528 for (i = 0; i < nb_pts; i++) {
533 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity nb_pts != 6" << endl;
538 cout <<
"lines:" << endl;
547 sprintf(str,
"alpha=%d beta=%d", alpha, beta);
552 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity before Surf_A->complete_skew_hexagon_with_polarity" << endl;
558 cout <<
"projective_space_global::do_lift_skew_hexagon_with_polarity after Surf_A->complete_skew_hexagon_with_polarity" << endl;
570 cout <<
"We found " << Double_sixes.size() <<
" double sixes. They are:" << endl;
571 for (i = 0; i < Double_sixes.size(); i++) {
572 cout << Double_sixes[i][0] <<
",";
573 cout << Double_sixes[i][1] <<
",";
574 cout << Double_sixes[i][2] <<
",";
575 cout << Double_sixes[i][3] <<
",";
576 cout << Double_sixes[i][4] <<
",";
577 cout << Double_sixes[i][5] <<
",";
578 cout << Double_sixes[i][6] <<
",";
579 cout << Double_sixes[i][7] <<
",";
580 cout << Double_sixes[i][8] <<
",";
581 cout << Double_sixes[i][9] <<
",";
582 cout << Double_sixes[i][10] <<
",";
583 cout << Double_sixes[i][11] <<
"," << endl;
588 cout <<
"projective_space_global::do_lift_do_lift_skew_hexagon_with_polarityskew_hexagon done" << endl;
598 int f_v = (verbose_level >= 1);
601 cout <<
"projective_space_global::do_classify_arcs" << endl;
605 Arc_generator_description->F = LG->F;
606 Arc_generator_description->LG = LG;
607 Arc_generator_description->
Control = Descr->Control;
609 if (Arc_generator_description->n != LG->A2->matrix_group_dimension()) {
610 cout <<
"projective_space_global::do_classify_arcs the dimensions don't match" << endl;
620 cout <<
"projective_space_global::do_classify_arcs "
629 cout <<
"projective_space_global::do_classify_arcs The object given must be a group" << endl;
635 if (!LG->f_has_strong_generators) {
636 cout <<
"projective_space_global::do_classify_arcs the group must have strong generators" << endl;
657 cout <<
"projective_space_global::do_classify_arcs before Gen->init" << endl;
660 Arc_generator_description,
666 cout <<
"projective_space_global::do_classify_arcs after Gen->init" << endl;
672 cout <<
"projective_space_global::do_classify_arcs before Gen->main" << endl;
674 Gen->
main(verbose_level);
676 cout <<
"projective_space_global::do_classify_arcs after Gen->main" << endl;
685 cout <<
"projective_space_global::do_classify_arcs done" << endl;
695 int f_v = (verbose_level >= 1);
698 cout <<
"projective_space_global::do_classify_cubic_curves" << endl;
708 cout <<
"projective_space_global::do_classify_cubic_curves before CC->init" << endl;
710 CC->
init(PA->
F, verbose_level);
712 cout <<
"projective_space_global::do_classify_cubic_curves after CC->init" << endl;
721 cout <<
"projective_space_global::do_classify_cubic_curves before CCA->init" << endl;
723 CCA->
init(CC, PA->
A, verbose_level);
725 cout <<
"projective_space_global::do_classify_cubic_curves after CCA->init" << endl;
735 cout <<
"projective_space_global::do_classify_cubic_curves before CCC->init" << endl;
740 Arc_generator_description,
743 cout <<
"projective_space_global::do_classify_cubic_curves after CCC->init" << endl;
747 cout <<
"projective_space_global::do_classify_cubic_curves before CCC->compute_starter" << endl;
751 cout <<
"projective_space_global::do_classify_cubic_curves after CCC->compute_starter" << endl;
756 cout <<
"projective_space_global::do_classify_cubic_curves before CCC->test_orbits" << endl;
760 cout <<
"projective_space_global::do_classify_cubic_curves after CCC->test_orbits" << endl;
765 cout <<
"projective_space_global::do_classify_cubic_curves before CCC->do_classify" << endl;
769 cout <<
"projective_space_global::do_classify_cubic_curves after CCC->do_classify" << endl;
774 cout <<
"projective_space_global::do_classify_cubic_curves creating cheat sheet" << endl;
779 snprintf(title, 1000,
"Cubic Curves in PG$(2,%d)$", PA->
F->
q);
781 snprintf(fname, 1000,
"Cubic_curves_q%d.tex", PA->
F->
q);
799 fp <<
"\\subsection*{" << title <<
"}" << endl;
802 cout <<
"projective_space_global::do_classify_cubic_curves before CCC->report" << endl;
804 CCC->
report(fp, verbose_level);
806 cout <<
"projective_space_global::do_classify_cubic_curves after CCC->report" << endl;
814 cout <<
"Written file " << fname <<
" of size "
818 cout <<
"projective_space_global::do_classify_cubic_curves writing cheat sheet on "
819 "cubic curves done" << endl;
824 cout <<
"projective_space_global::do_classify_cubic_curves done" << endl;
830 std::string &fname_mask,
int nb,
831 std::string &fname_classification,
835 int f_v = (verbose_level >= 1);
839 cout <<
"projective_space_global::classify_quartic_curves_nauty" << endl;
860 Classifier->
classify(Descr, verbose_level);
862 cout <<
"The number of types of quartic curves is " << Classifier->
CB->
nb_types << endl;
870 cout <<
"idx : ago" << endl;
871 for (idx = 0; idx < Classifier->
CB->
nb_types; idx++) {
880 cout << idx <<
" : " << go << endl;
888 cout <<
"projective_space_global::classify_quartic_curves_nauty done" << endl;
894 std::string &fname_mask,
int nb,
int substructure_size,
int degree,
895 std::string &fname_classification,
899 int f_v = (verbose_level >= 1);
903 cout <<
"projective_space_global::classify_quartic_curves_with_substructure" << endl;
926 cout <<
"projective_space_global::classify_quartic_curves_with_substructure before Classifier.classify" << endl;
928 Classifier->
classify(Descr, verbose_level);
930 cout <<
"projective_space_global::classify_quartic_curves_with_substructure after Classifier.classify" << endl;
937 cout <<
"projective_space_global::classify_quartic_curves_with_substructure before Classifier.report" << endl;
939 Classifier->
report(fname_classification, verbose_level);
941 cout <<
"projective_space_global::classify_quartic_curves_with_substructure after Classifier.report" << endl;
946 cout <<
"The number of types of quartic curves is " << Classifier.
CB->
nb_types << endl;
949 cout <<
"idx : ago" << endl;
950 for (idx = 0; idx < Classifier.
CB->
nb_types; idx++) {
953 longinteger_object go;
957 C1->Stab_gens_quartic->group_order(go);
959 cout << idx <<
" : " << go << endl;
967 cout <<
"projective_space_global::classify_quartic_curves_with_substructure done" << endl;
974 std::string &fname_mask,
978 std::string &fname_classification,
981 int f_v = (verbose_level >= 1);
984 cout <<
"projective_space_global::classify_quartic_curves" << endl;
995 fname_classification,
1000 cout <<
"transversal:" << endl;
1006 cout <<
"orbit frequencies:" << endl;
1007 for (i = 0; i < Classifier->
nb_types; i++) {
1027 int *orbit_frequencies;
1030 for (i = 0; i < Classifier->
nb_types; i++) {
1043 cout <<
"cannot determine nb_orbits" << endl;
1050 for (i = 0; i < Classifier->
nb_types; i++) {
1057 orbit_frequencies + i * nb_orbits,
1063 tally_vector_data *T;
1070 T->init(orbit_frequencies, Classifier->
nb_types, nb_orbits, verbose_level);
1074 T->get_transversal(transversal, frequency, nb_types, verbose_level);
1077 cout <<
"Classification of types:" << endl;
1078 cout <<
"nb_types=" << nb_types << endl;
1081 cout <<
"transversal:" << endl;
1085 cout <<
"frequency:" << endl;
1089 T->print_classes_bigger_than_one(verbose_level);
1094 string_tools String;
1097 fname.assign(fname_mask);
1098 String.chop_off_extension(fname);
1099 sprintf(str,
"_subset%d_types.csv", size);
1103 cout <<
"preparing table" << endl;
1108 for (i = 0; i < Classifier->
nb_types; i++) {
1110 cout <<
"preparing table i=" << i << endl;
1114 cout <<
"preparing table i=" << i <<
" h=" << h << endl;
1116 table[i * (nb_orbits + 2) + 0] = i;
1118 for (j = 0; j < nb_orbits; j++) {
1119 table[i * (nb_orbits + 2) + 1 + j] = orbit_frequencies[i * nb_orbits + j];
1126 Fio.int_matrix_write_csv(fname, table, Classifier->
nb_types, nb_orbits + 2);
1127 cout <<
"Written file " << fname <<
" of size " << Fio.file_size(fname) << endl;
1131 cout <<
"preparing detailed information:" << endl;
1142 cout <<
"nb_interesting_subsets = "
1144 cout <<
"interesting subsets: ";
1150 cout <<
"generators for the canonical subset:" << endl;
1166 cout <<
"Orbit length:" << endl;
1174 cout <<
"Orbit_patterns:" << endl;
1184 cout <<
"minimal orbit pattern:" << endl;
1188 tally_vector_data *T_O;
1189 int *T_O_transversal;
1200 T_O->get_transversal(T_O_transversal, T_O_frequency, T_O_nb_types, verbose_level);
1202 cout <<
"T_O_nb_types = " << T_O_nb_types << endl;
1204 cout <<
"T_O_transversal:" << endl;
1208 cout <<
"T_O_frequency:" << endl;
1212 T_O->print_classes_bigger_than_one(verbose_level);
1214 cout <<
"Types classified:" << endl;
1217 for (u = 0; u < T_O_nb_types; u++) {
1218 v = T_O_transversal[u];
1226 cout << setw(3) << u <<
" : " << setw(3) << v <<
" : " << setw(3) << T_O_frequency[u] <<
" : ";
1238 cout <<
"Types classified in lex order:" << endl;
1243 for (u = 0; u < T_O_nb_types; u++) {
1245 cout << setw(3) << u <<
" : " << setw(3) << T_O->Frequency_in_lex_order[u] <<
" : ";
1248 T_O->Reps_in_lex_order[u],
1256 fname.assign(fname_mask);
1257 String.chop_off_extension(fname);
1258 sprintf(str,
"_subset%d_types_classified.csv", size);
1261 Fio.int_matrix_write_csv(fname, data, T_O_nb_types, Stab_orbits->
Schreier->
nb_orbits);
1262 cout <<
"Written file " << fname <<
" of size " << Fio.file_size(fname) << endl;
1266 cout <<
"All canonical_forms:" << endl;
1274 cout <<
"All canonical_forms, with transporter" << endl;
1278 fname.assign(fname_mask);
1279 String.chop_off_extension(fname);
1280 sprintf(str,
"_subset%d_cf_input.csv", size);
1287 cout <<
"Written file " << fname <<
" of size " << Fio.file_size(fname) << endl;
1290 Fio.write_characteristic_matrix(fname,
1299 fname.assign(fname_mask);
1300 String.chop_off_extension(fname);
1301 sprintf(str,
"_subset%d_cf_output.csv", size);
1306 cout <<
"Written file " << fname <<
" of size " << Fio.file_size(fname) << endl;
1309 Fio.write_characteristic_matrix(fname,
1316 fname.assign(fname_mask);
1317 String.chop_off_extension(fname);
1318 sprintf(str,
"_subset%d_cf_transporter.tex", size);
1324 title.assign(
"Transporter");
1330 cout <<
"Written file " << fname <<
" of size " << Fio.file_size(fname) << endl;
1343 long int *interesting_subsets;
1344 int nb_interesting_subsets;
1349 strong_generators *gens;
1356 action *A_on_the_set;
1363 longinteger_object stab_order, new_stab_order;
1364 int nb_times_orbit_count_does_not_match_up;
1365 int backtrack_nodes_first_time;
1366 int backtrack_nodes_total_in_loop;
1370 strong_generators *selected_set_stab_gens;
1371 sims *selected_set_stab;
1374 int reduced_set_size;
1379 long int *reduced_set1;
1380 long int *reduced_set2;
1381 long int *reduced_set1_new_labels;
1382 long int *reduced_set2_new_labels;
1383 long int *canonical_set1;
1384 long int *canonical_set2;
1386 int *elt1, *Elt1, *Elt1_inv, *new_automorphism, *Elt4;
1390 longinteger_object go_G;
1398 int nb_interesting_subsets_reduced;
1399 long int *interesting_subsets_reduced;
1401 int *Orbit_patterns;
1404 int *orbit_to_interesting_orbit;
1406 int nb_interesting_orbits;
1407 int *interesting_orbits;
1409 int nb_interesting_points;
1410 long int *interesting_points;
1412 int *interesting_orbit_first;
1413 int *interesting_orbit_len;
1415 int local_idx1, local_idx2;
1424 longinteger_object induced_go, K_go;
1426 int *transporter_witness;
1432 sims *Kernel_original;
1439 longinteger_object ago;
1440 longinteger_object ago1;
1441 longinteger_object target_go;
1447 long int *Canonical_forms;
1448 int nb_interesting_subsets_rr;
1449 long int *interesting_subsets_rr;
1452 strong_generators *Gens_stabilizer_original_set;
1453 strong_generators *Gens_stabilizer_canonical_form;
1458 strong_generators *gens_stab_of_canonical_equation;
1462 int *intermediate_equation;
1469 int *canonical_equation;
1470 int *transporter_to_canonical_form;
1474 cout <<
"projective_space_global::classify_quartic_curves done" << endl;
1481 int intermediate_subset_size,
1482 std::string &fname_mask,
int nb, std::string &column_label,
1483 std::string &fname_out,
1486 int f_v = (verbose_level >= 1);
1490 cout <<
"projective_space_global::set_stabilizer" << endl;
1494 top_level_geometry_global T;
1496 T.set_stabilizer_projective_space(
1498 intermediate_subset_size,
1499 fname_mask, nb, column_label,
1508 intermediate_subset_size,
1509 fname_mask, nb, column_label,
1515 cout <<
"projective_space_global::set_stabilizer done" << endl;
void init(field_theory::finite_field *F, int verbose_level)
cubic surfaces in PG(3,q) with 27 lines
field_theory::finite_field * F
geometry::klein_correspondence * Klein
void init(field_theory::finite_field *F, int verbose_level)
void zero(int *v, long int len)
void print_integer_matrix_width(std::ostream &ost, int *p, int m, int n, int dim_n, int w)
void copy(int *from, int *to, long int len)
void print(std::ostream &ost, std::vector< int > &v)
void matrix_print_width(std::ostream &ost, long int *p, int m, int n, int dim_n, int w)
void print(std::ostream &ost, long int *v, int len)
linear_algebra::linear_algebra * Linear_algebra
long int Pluecker_to_line_rk(int *v6, int verbose_level)
void mult_matrix_matrix(int *A, int *B, int *C, int m, int n, int o, int verbose_level)
a collection of functions related to file io
long int file_size(std::string &fname)
interface to create latex output files
void head(std::ostream &ost, int f_book, int f_title, const char *title, const char *author, int f_toc, int f_landscape, int f_12pt, int f_enlarged_page, int f_pagenumbers, const char *extras_for_preamble)
void foot(std::ostream &ost)
orbiter_kernel_system::orbiter_symbol_table * Orbiter_symbol_table
int find_symbol(std::string &label)
data_structures::lint_vec * Lint_vec
data_structures::int_vec * Int_vec
int find_symbol(std::string &str)
void * get_object(int idx)
a class to represent arbitrary precision integers
groups::strong_generators * Strong_gens
void write_set_of_elements_latex_file(std::string &fname, std::string &title, int *Elt, int nb_elts)
a strong generating set for a permutation group with respect to a fixed action
void print_generators_tex()
void group_order(ring_theory::longinteger_object &go)
to compute the set-stabilizer
void print_canonical_sets()
long int * Canonical_forms
int * Canonical_form_transporter
long int * Canonical_form_input
stabilizer_orbits_and_types * Stab_orbits
substructure_stats_and_selection * SubSt
orbit of homogeneous equations using a Schreier tree
orbits of the stabilizer of the substructure and orbit types
int nb_interesting_points
int nb_interesting_subsets_reduced
void print_minimal_orbit_pattern()
groups::schreier * Schreier
int minimal_orbit_pattern_idx
classification of substructures
void set_stabilizer_in_any_space(actions::action *A, actions::action *A2, groups::strong_generators *Strong_gens, int intermediate_subset_size, std::string &fname_mask, int nb, std::string &column_label, std::string &fname_out, int verbose_level)
analyzing the substructures of a given set
long int * interesting_subsets
groups::strong_generators * gens
int nb_interesting_subsets
to describe a cubic surface from the command line
cubic surfaces in projective space with automorphism group
void complete_skew_hexagon_with_polarity(std::string &label_for_printing, long int *skew_hexagon, int *Polarity36, std::vector< std::vector< long int > > &Double_sixes, int verbose_level)
void init(algebraic_geometry::surface_domain *Surf, projective_geometry::projective_space_with_action *PA, int f_recoordinatize, int verbose_level)
void create_surface(surface_create_description *Surface_Descr, surface_create *&SC, int verbose_level)
algebraic_geometry::surface_domain * Surf
void complete_skew_hexagon(long int *skew_hexagon, std::vector< std::vector< long int > > &Double_sixes, int verbose_level)
to create a cubic surface from a description using class surface_create_description
a wrapper for linear_group and permutation_group_create
groups::strong_generators * Subgroup_gens
description of a classification problem of arcs in a geometry
poset_classification::poset_classification_control * Control
std::string override_group_label
classification of arcs in desarguesian projective planes
void init(arc_generator_description *Descr, projective_geometry::projective_space_with_action *PA, groups::strong_generators *SG, int verbose_level)
void main(int verbose_level)
classification of cubic curves in PG(2,q)
void report(std::ostream &ost, int verbose_level)
void test_orbits(int verbose_level)
void compute_starter(int verbose_level)
void init(projective_geometry::projective_space_with_action *PA, cubic_curve_with_action *CCA, arc_generator_description *Descr, int verbose_level)
void do_classify(int verbose_level)
domain for cubic curves in projective space with automorphism group
void init(algebraic_geometry::cubic_curve *CC, actions::action *A, int verbose_level)
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)
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 map(expression_parser::formula *Formula, std::string &evaluate_text, int verbose_level)
void analyze_del_Pezzo_surface(expression_parser::formula *Formula, std::string &evaluate_text, int verbose_level)
field_theory::finite_field * F
orbiter_kernel_system::orbiter_session * Orbiter_session
#define Int_vec_scan(A, B, C)
#define Int_vec_zero(A, B)
#define Lint_vec_scan(A, B, C)
#define Lint_vec_print(A, B, C)
#define Int_matrix_print(A, B, C)
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
user_interface::orbiter_top_level_session * The_Orbiter_top_level_session
the orbiter library for the classification of combinatorial objects