20namespace layer5_applications {
21namespace apps_geometry {
24static void arc_generator_early_test_function(
long int *S,
int len,
25 long int *candidates,
int nb_candidates,
26 long int *good_candidates,
int &nb_good_candidates,
27 void *data,
int verbose_level);
29static void arc_generator_lifting_prepare_function_new(
36static void arc_generator_print_arc(std::ostream &ost,
int len,
long int *S,
void *data);
88 int verbose_level = 0;
89 int f_v = (verbose_level >= 1);
92 cout <<
"arc_generator::freeself" << endl;
96 cout <<
"arc_generator::freeself before FREE_OBJECT(gen)" << endl;
100 cout <<
"arc_generator::freeself after FREE_OBJECT(gen)" << endl;
112 cout <<
"arc_generator::freeself done" << endl;
118 int f_v = (verbose_level >= 1);
121 cout <<
"arc_generator::main "
122 "verbose_level=" << verbose_level << endl;
128 cout <<
"arc_generator::main before compute_starter" << endl;
132 cout <<
"arc_generator::main after compute_starter" << endl;
138 cout <<
"arc_generator::main done" << endl;
148 int f_v = (verbose_level >= 1);
153 cout <<
"arc_generator::init" << endl;
164 cout <<
"arc_generator::init" << endl;
171 cout <<
"arc_generator::init nb_points_total = " <<
nb_points_total << endl;
177 cout <<
"arc_generator::init nb_affine_lines = " <<
nb_affine_lines << endl;
194 cout <<
"arc_generator::init point " << a <<
" is forbidden" << endl;
198 cout <<
"arc_generator::init "
199 "P->Lines_on_point == NULL" << endl;
204 cout <<
"arc_generator::init line_type" << endl;
210 cout <<
"arc_generator::init before prepare_generator Control=" << endl;
214 cout <<
"arc_generator::init before prepare_generator" << endl;
220 cout <<
"arc_generator::init after prepare_generator" << endl;
226 cout <<
"arc_generator::init done" << endl;
233 int f_v = (verbose_level >= 1);
236 cout <<
"arc_generator::prepare_generator" << endl;
237 cout <<
"arc_generator::prepare_generator " << endl;
252 cout <<
"arc_generator::init before "
253 "Poset->add_testing_without_group" << endl;
256 arc_generator_early_test_function,
269 cout <<
"arc_generator::init "
275 if (f_read_data_file) {
277 cout <<
"arc_generator::init reading data file "
278 << fname_data_file << endl;
282 fname_data_file, verbose_level - 1);
284 cout <<
"arc_generator::init after reading data file "
285 << fname_data_file <<
" depth_completed = "
286 << depth_completed << endl;
289 cout <<
"arc_generator::init before "
290 "gen->recreate_schreier_vectors_up_to_level" << endl;
295 cout <<
"arc_generator::init after "
296 "gen->recreate_schreier_vectors_up_to_level" << endl;
303 cout <<
"arc_generator::prepare_generator done" << endl;
309 int f_v = (verbose_level >= 1);
315 cout <<
"arc_generator::compute_starter" << endl;
318 int schreier_depth = 1000;
319 int f_use_invariant_subset_if_available =
TRUE;
327 if (f_read_data_file) {
328 int target_depth = 0;
331 cout <<
"arc_generator::compute_starter "
332 "before generator_main" << endl;
333 cout <<
"arc_generator::compute_starter "
337 depth_completed, target_depth,
340 cout <<
"arc_generator::compute_starter "
341 "after gen->compute_orbits" << endl;
347 cout <<
"arc_generator::compute_starter "
348 "before gen->main" << endl;
349 cout <<
"arc_generator::compute_starter "
354 f_use_invariant_subset_if_available,
358 cout <<
"arc_generator::compute_starter "
359 "after gen->main" << endl;
364 cout <<
"arc_generator::compute_starter "
365 "finished, depth=" << depth << endl;
372 cout <<
"arc_generator::compute_starter "
373 "before gen->print_data_structure_tex" << endl;
382 cout <<
"arc_generator::compute_starter "
383 "before gen->draw_poset" << endl;
387 f_embedded, f_sideways, 0 );
396 for (h = 0; h < nb_recognize; h++) {
397 long int *recognize_set;
398 int recognize_set_sz;
400 long int *canonical_set;
401 int *Elt_transporter;
402 int *Elt_transporter_inv;
404 cout <<
"recognize " << h <<
" / " << nb_recognize << endl;
405 lint_vec_scan(recognize[h], recognize_set, recognize_set_sz);
406 cout <<
"input set = " << h <<
" / " << nb_recognize <<
" : ";
407 lint_vec_print(cout, recognize_set, recognize_set_sz);
410 canonical_set =
NEW_lint(recognize_set_sz);
415 recognize_set_sz, recognize_set_sz ,
416 canonical_set, Elt_transporter,
419 cout <<
"canonical set = ";
420 lint_vec_print(cout, canonical_set, recognize_set_sz);
422 cout <<
"is orbit " << orb << endl;
423 cout <<
"transporter:" << endl;
424 A->element_print_quick(Elt_transporter, cout);
426 A->element_invert(Elt_transporter, Elt_transporter_inv, 0);
427 cout <<
"transporter inverse:" << endl;
428 A->element_print_quick(Elt_transporter_inv, cout);
438 int f_show_orbit_decomposition =
FALSE, f_show_stab =
FALSE;
439 int f_save_stab =
FALSE, f_show_whole_orbit =
FALSE;
445 arc_generator_print_arc,
447 f_show_orbit_decomposition,
457 char fname_csv[1000];
458 sprintf(fname_csv,
"orbits_%d.csv", depth);
459 Sp->save(fname_csv, verbose_level);
470 cout <<
"arc_generator::compute_starter done" << endl;
476 long int *S,
int len,
int pt,
int nb_E,
int verbose_level)
478 int f_v = (verbose_level >= 1);
483 cout <<
"arc_generator::test_nb_Eckardt_points" << endl;
487 cout <<
"arc_generator::test_nb_Eckardt_points done" << endl;
494 int f_v = (verbose_level >= 1);
498 cout <<
"arc_generator::conic_test" << endl;
502 cout <<
"arc_generator::conic_test done" << endl;
508 long int *candidates,
int nb_candidates,
509 long int *good_candidates,
int &nb_good_candidates,
512 int f_v = (verbose_level >= 1);
517 cout <<
"arc_generator::early_test_func checking set ";
520 cout <<
"candidate set of size " << nb_candidates <<
":" << endl;
528 nb_good_candidates = 0;
529 for (i = 0; i < nb_candidates; i++) {
543 for (j = 0; j <
PA->
P->
r; j++) {
571 good_candidates[nb_good_candidates++] = candidates[i];
589 cout <<
" has line type ";
600 cout <<
"the coordinates of the points are:" << endl;
601 for (i = 0; i < len; i++) {
605 for (i = 0; i < len; i++) {
606 cout << S[i] <<
" : ";
616 long int **Pts_on_conic;
618 int *nb_pts_on_conic;
622 cout <<
"Conic intersections:" << endl;
625 cout <<
"conic intersections "
626 "only defined in the plane" << endl;
632 Pts_on_conic, Conic_eqn, nb_pts_on_conic, len1,
634 cout <<
"The arc intersects " << len1
635 <<
" conics in 6 or more points. " << endl;
638 cout <<
"These intersections are" << endl;
639 for (i = 0; i < len1; i++) {
640 cout <<
"conic intersection of size "
641 << nb_pts_on_conic[i] <<
" : ";
642 int_vec_print(cout, Pts_on_conic[i], nb_pts_on_conic[i]);
651 for (i = 0; i < len1; i++) {
662 F->simeon(n, len, S, simeon_s, verbose_level);
692 int f_v = (verbose_level >= 1);
697 cout <<
"arc_generator::compute_line_type" << endl;
701 cout <<
"arc_generator::compute_line_type "
702 "P->Lines_on_point == 0" << endl;
706 for (i = 0; i < len; i++) {
708 for (j = 0; j <
PA->
P->
r; j++) {
718 long int *candidates,
int nb_candidates,
726 int f_v = (verbose_level >= 1);
727 int f_vv = (verbose_level >= 2);
733 cout <<
"arc_generator::lifting_prepare_function_new "
734 "nb_candidates=" << nb_candidates << endl;
738 cout <<
"arc_generator::lifting_prepare_function_new "
739 "needs PA->n == 2" << endl;
743 cout <<
"arc_generator::lifting_prepare_function_new "
744 "needs d == 2" << endl;
749 cout <<
"arc_generator::lifting_prepare_function_new "
750 "starter_size=" << starter_size << endl;
766 cout <<
"arc_generator::lifting_prepare_function_new "
767 "line_type:" << endl;
775 int tangent_lines_fst, nb_tangent_lines;
777 int *tangent_line_idx;
778 int external_lines_fst, nb_external_lines;
780 int *external_line_idx;
797 cout <<
"arc_generator::lifting_prepare_function_new "
798 "there are no tangent lines" << endl;
801 tangent_lines_fst = fst;
802 nb_tangent_lines = len;
803 tangent_lines =
NEW_int(nb_tangent_lines);
806 tangent_line_idx[i] = -1;
808 for (i = 0; i < len; i++) {
810 tangent_lines[i] = j;
811 tangent_line_idx[j] = i;
825 cout <<
"arc_generator::lifting_prepare_function_new "
826 "there are no external lines" << endl;
829 external_lines_fst = fst;
830 nb_external_lines = len;
831 external_lines =
NEW_int(nb_external_lines);
834 external_line_idx[i] = -1;
836 for (i = 0; i < len; i++) {
838 external_lines[i] = j;
839 external_line_idx[j] = i;
844 col_labels =
NEW_lint(nb_candidates);
851 cout <<
"arc_generator::lifting_prepare_function_new "
852 "before lexorder test" << endl;
857 cout <<
"arc_generator::lifting_prepare_function_new "
858 "after lexorder test" << endl;
863 cout <<
"arc_generator::lifting_prepare_function_new "
864 "after lexorder test" << endl;
865 cout <<
"arc_generator::lifting_prepare_function_new "
866 "nb_candidates=" << nb_candidates << endl;
877 nb_rows = nb_tangent_lines + nb_external_lines;
878 nb_cols = nb_candidates;
881 Dio->
open(nb_rows, nb_cols);
882 Dio->
sum = nb_needed;
884 for (i = 0; i < nb_tangent_lines; i++) {
889 for (i = 0; i < nb_external_lines; i++) {
891 Dio->
RHS[nb_tangent_lines + i] = 2;
897 for (i = 0; i < nb_candidates; i++) {
899 for (j = 0; j <
PA->
P->
r; j++) {
902 cout <<
"arc_generator::lifting_prepare_function "
903 "candidate lies on a secant" << endl;
906 idx = tangent_line_idx[b];
908 Dio->
Aij(idx, i) = 1;
910 idx = external_line_idx[b];
912 Dio->
Aij(nb_tangent_lines + idx, i) = 1;
924 cout <<
"arc_generator::lifting_prepare_function_new "
932 int f_v = (verbose_level >= 1);
937 cout <<
"arc_generator::report" << endl;
940 sprintf(fname,
"hyperovals_%d.tex",
PA->
q);
951 const char *author =
"Orbiter";
953 int f_landscape =
FALSE;
955 int f_enlarged_page =
TRUE;
956 int f_pagenumbers =
TRUE;
960 sprintf(title,
"Hyperovals over ${\\mathbb F}_{%d}$",
PA->
q);
963 sprintf(title,
"Arcs over ${\\mathbb F}_{%d}$ "
966 cout <<
"Writing file " << fname <<
" with "
968 L.
head(f, f_book, f_title,
970 f_toc, f_landscape, f_12pt, f_enlarged_page, f_pagenumbers,
983 cout <<
"Written file " << fname <<
" of size "
990 int f_v = (verbose_level >= 1);
994 cout <<
"arc_generator::report_do_the_work" << endl;
999 ost <<
"\\chapter{Summary}" << endl << endl;
1001 <<
" isomorphism types." << endl << endl;
1007 int u, v, h, rep, tt;
1009 long int data[1000];
1033 Ago_int[h] = Ago[h].
as_int();
1035 cout <<
"arc_generator::report computing induced "
1036 "action on the set (in data)" << endl;
1048 cout <<
"Classification by ago:" << endl;
1053 ost <<
"\\chapter{Invariants}" << endl << endl;
1055 ost <<
"Classification by automorphism group order: ";
1057 ost <<
"\\\\" << endl;
1059 ost <<
"\\begin{center}" << endl;
1060 ost <<
"\\begin{tabular}{|c|l|}" << endl;
1061 ost <<
"\\hline" << endl;
1062 ost <<
"Ago & Isom. Types \\\\" << endl;
1063 ost <<
"\\hline" << endl;
1064 ost <<
"\\hline" << endl;
1066 int cnt, length, t, vv, *set;
1069 for (u = C_ago.
nb_types - 1; u >= 0; u--) {
1077 for (v = 0; v < length; v++, cnt++) {
1085 for (v = 0; v < length; v++, cnt++) {
1089 if (v < length - 1) {
1091 if ((v + 1) % 10 == 0) {
1092 ost <<
"\\\\" << endl;
1093 ost <<
" & " << endl;
1097 ost <<
"\\\\" << endl;
1099 ost <<
"\\hline" << endl;
1103 ost <<
"\\hline" << endl;
1104 ost <<
"\\end{tabular}" << endl;
1105 ost <<
"\\end{center}" << endl << endl;
1108 ost <<
"\\clearpage" << endl << endl;
1110 ost <<
"\\begin{center}" << endl;
1111 ost <<
"\\begin{tabular}{|r|r|r|}" << endl;
1112 ost <<
"\\hline" << endl;
1113 ost <<
"Isom. Type & $|\\mbox{Aut}|$ & $|\\mbox{Aut}|$ "
1114 "(induced)\\\\" << endl;
1115 ost <<
"\\hline" << endl;
1116 ost <<
"\\hline" << endl;
1119 for (u = 0; u < C_ago.
nb_types; u ++) {
1125 for (v = 0; v < length; v++) {
1134 for (v = 0; v < length; v++) {
1138 ost << setw(3) << h <<
" & ";
1142 ost <<
"\\\\" << endl;
1144 if ((cnt % 30) == 0) {
1145 ost <<
"\\hline" << endl;
1146 ost <<
"\\end{tabular}" << endl;
1147 ost <<
"\\end{center}" << endl << endl;
1148 ost <<
"\\begin{center}" << endl;
1149 ost <<
"\\begin{tabular}{|r|r|r|}" << endl;
1150 ost <<
"\\hline" << endl;
1151 ost <<
"Isom. Type & $|\\mbox{Aut}|$ & $|\\mbox{Aut}|$ "
1152 "(induced)\\\\" << endl;
1153 ost <<
"\\hline" << endl;
1154 ost <<
"\\hline" << endl;
1160 ost <<
"\\hline" << endl;
1161 ost <<
"\\end{tabular}" << endl;
1162 ost <<
"\\end{center}" << endl << endl;
1166 ost <<
"\\chapter{The Hyperovals}" << endl << endl;
1169 ost <<
"\\chapter{The Arcs}" << endl << endl;
1172 ost <<
"\\clearpage" << endl << endl;
1183 ost <<
"\\section{Isomorphism type " << h <<
"}" << endl;
1184 ost <<
"\\bigskip" << endl;
1189 ost <<
"Stabilizer has order $";
1191 ost <<
"$.\\\\" << endl;
1202 cout <<
"arc_generator::report computing induced "
1203 "action on the set (in data)" << endl;
1210 cout <<
"action " << Iso.
AA->
label
1211 <<
" computed, group order is " << go1 << endl;
1213 ost <<
"Order of the group that is induced on the set is ";
1216 ost <<
"$.\\\\" << endl;
1223 Stab->
gens, verbose_level - 2);
1225 <<
" orbits on the set.\\\\" << endl;
1231 ost <<
"Orbit lengths: ";
1234 ost <<
" \\\\" << endl;
1238 ost <<
"The points by ranks:\\\\" << endl;
1239 ost <<
"\\begin{center}" << endl;
1241 for (u = 0; u < 4; u++) {
1242 ost <<
"\\begin{tabular}[t]{|c|c|c|}" << endl;
1243 ost <<
"\\hline" << endl;
1244 ost <<
"$i$ & Rank & Unrank\\\\" << endl;
1245 ost <<
"\\hline" << endl;
1246 for (i = 0; i < tt; i++) {
1248 if (v < Descr->target_size) {
1252 ost <<
"$" << v <<
"$ & $" << data[v] <<
"$ & $";
1254 ost <<
"$\\\\" << endl;
1257 ost <<
"\\hline" << endl;
1258 ost <<
"\\end{tabular}" << endl;
1260 ost <<
"\\end{center}" << endl;
1267 data, verbose_level);
1273 char label_of_structure_plural[1000];
1276 sprintf(label_of_structure_plural,
"Arcs");
1283 prefix, label_of_structure_plural, ost,
1294 cout <<
"arc_generator::report_do_the_work done" << endl;
1299 isomorph &Iso, ostream &ost,
int orbit,
1300 long int *data,
int verbose_level)
1302 int f_v = (verbose_level >= 1);
1305 cout <<
"arc_generator::report_decompositions" << endl;
1327 ostream &ost,
int orbit,
int verbose_level)
1349static void arc_generator_early_test_function(
long int *S,
int len,
1350 long int *candidates,
int nb_candidates,
1351 long int *good_candidates,
int &nb_good_candidates,
1352 void *data,
int verbose_level)
1356 int f_v = (verbose_level >= 1);
1359 cout <<
"arc_generator_early_test_function for set ";
1364 candidates, nb_candidates,
1365 good_candidates, nb_good_candidates,
1368 cout <<
"arc_generator_early_test_function nb_candidates=" << nb_candidates
1369 <<
" nb_good_candidates=" << nb_good_candidates << endl;
1372 cout <<
"arc_generator_early_test_function done" << endl;
1377static void arc_generator_lifting_prepare_function_new(
1379 long int *candidates,
int nb_candidates,
1385 int f_v = (verbose_level >= 1);
1386 arc_generator *Gen = (arc_generator *) EC->
user_data;
1389 cout <<
"arc_generator_lifting_prepare_function_new "
1390 "nb_candidates=" << nb_candidates << endl;
1393 Gen->lifting_prepare_function_new(EC, starter_case,
1394 candidates, nb_candidates, Strong_gens,
1395 Dio, col_labels, f_ruled_out,
1400 cout <<
"arc_generator_lifting_prepare_function_new "
1401 "nb_rows=" << Dio->
m <<
" nb_cols=" << Dio->
n << endl;
1405 cout <<
"arc_generator_lifting_prepare_function_new done" << endl;
1411static void arc_generator_print_arc(ostream &ost,
int len,
long int *S,
void *data)
1413 arc_generator *Gen = (arc_generator *) data;
1416 Gen->print_set_in_affine_plane(len, S);
1420static void arc_generator_print_point(
long int pt,
void *data)
1422 arc_generator *Gen = (arc_generator *) data;
1425 Gen->PA->F->PG_element_unrank_modified(
1427 cout <<
"(" << v[0] <<
"," << v[1] <<
"," << v[2] <<
")" << endl;
1430static void arc_generator_report(
1431 isomorph *Iso,
void *data,
int verbose_level)
1433 arc_generator *Gen = (arc_generator *) data;
1435 Gen->report(*Iso, verbose_level);
a collection of functions related to sorted vectors
void int_vec_heapsort(int *v, int len)
a statistical analysis of data consisting of single integers
void init(int *data, int data_length, int f_second, int verbose_level)
void print(int f_backwards)
void print_naked_tex(std::ostream &ost, int f_backwards)
void print_naked(int f_backwards)
void PG_element_rank_modified(int *v, int stride, int len, int &a)
void PG_element_unrank_modified(int *v, int stride, int len, int a)
void print_set_in_affine_plane(int len, long int *S)
various functions related to geometries
int test_nb_Eckardt_points(projective_space *P2, long int *S, int len, int pt, int nb_E, int verbose_level)
long int nb_PG_elements(int n, int q)
long int nb_affine_lines(int n, int q)
void conic_type(long int *set, int set_size, int threshold, long int **&Pts_on_conic, int **&Conic_eqn, int *&nb_pts_on_conic, int &nb_conics, int verbose_level)
projective_space_implementation * Implementation
int conic_test(long int *S, int len, int pt, int verbose_level)
basic number theoretic functions
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)
interface to system functions
a class to represent arbitrary precision integers
std::ostream & print_not_scientific(std::ostream &ost)
diophantine systems of equations (i.e., linear systems over the integers)
void fill_coefficient_matrix_with(int a)
diophant_equation_type * type
void compute_all_point_orbits(groups::schreier &S, data_structures_groups::vector_ge &gens, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
Schreier trees for orbits of groups on points.
a permutation group represented via a stabilizer chain
void group_order(ring_theory::longinteger_object &go)
data_structures_groups::vector_ge gens
a strong generating set for a permutation group with respect to a fixed action
void init_from_sims(groups::sims *S, int verbose_level)
data_structures_groups::vector_ge * gens
void print_generators_in_latex_individually(std::ostream &ost)
exact cover problems arising with the lifting of combinatorial objects
void lexorder_test(long int *live_blocks2, int &nb_live_blocks2, data_structures_groups::vector_ge *stab_gens, int verbose_level)
auxiliary class for class isomorph
void report_data_in_source_code_inside_tex(isomorph &Iso, const char *prefix, char *label_of_structure_plural, std::ostream &f, int verbose_level)
void init(actions::action *A_base, actions::action *A, poset_classification::poset_classification *gen, int verbose_level)
classification of combinatorial objects using subobjects
void setup_and_open_solution_database(int verbose_level)
void load_solution(int id, long int *data)
poset_classification::poset_classification * gen
void induced_action_on_set_basic(groups::sims *S, long int *set, int verbose_level)
void close_solution_database(int verbose_level)
the poset classification algorithm
void initialize_and_allocate_root_node(poset_classification_control *PC_control, poset_with_group_action *Poset, int depth, int verbose_level)
int compute_orbits(int from_level, int to_level, int schreier_depth, int f_use_invariant_subset_if_available, int verbose_level)
int trace_set(long int *set, int size, int level, long int *canonical_set, int *Elt_transporter, int verbose_level)
actions::action * get_A()
int main(int t0, int schreier_depth, int f_use_invariant_subset_if_available, int f_debug, int verbose_level)
void list_all_orbits_at_level(int depth, int f_has_print_function, void(*print_function)(std::ostream &ost, int len, long int *S, void *data), void *print_function_data, int f_show_orbit_decomposition, int f_show_stab, int f_save_stab, int f_show_whole_orbit)
void make_spreadsheet_of_orbit_reps(data_structures::spreadsheet *&Sp, int max_depth)
std::string & get_problem_label_with_path()
void recreate_schreier_vectors_up_to_level(int lvl, int verbose_level)
void generate_source_code(int level, int verbose_level)
void draw_poset(std::string &fname_base, int depth, int data, graphics::layered_graph_draw_options *LG_Draw_options, int verbose_level)
void read_data_file(int &depth_completed, std::string &fname, int verbose_level)
a poset with a group action on it
void * print_function_data
void init_subset_lattice(actions::action *A, actions::action *A2, groups::strong_generators *Strong_gens, int verbose_level)
void add_testing_without_group(void(*func)(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, void *data, int verbose_level), void *data, int verbose_level)
void(* print_function)(std::ostream &ost, int len, long int *S, void *data)
group theoretic functions which require an action
void report_tactical_decomposition_by_automorphism_group(std::ostream &ost, geometry::projective_space *P, actions::action *A_on_points, actions::action *A_on_lines, groups::strong_generators *gens, int size_limit_for_printing, int verbose_level)
description of a classification problem of arcs in a geometry
int f_has_forbidden_point_set
int f_test_nb_Eckardt_points
std::string forbidden_point_set_string
poset_classification::poset_classification_control * Control
classification of arcs in desarguesian projective planes
void compute_line_type(long int *set, int len, int verbose_level)
poset_classification::poset_with_group_action * Poset
void lifting_prepare_function_new(exact_cover *E, int starter_case, long int *candidates, int nb_candidates, groups::strong_generators *Strong_gens, solvers::diophant *&Dio, long int *&col_labels, int &f_ruled_out, int verbose_level)
arc_generator_description * Descr
void compute_starter(int verbose_level)
void report_decompositions(isomorph &Iso, std::ostream &ost, int orbit, long int *data, int verbose_level)
void print(int len, long int *S)
void init(arc_generator_description *Descr, projective_geometry::projective_space_with_action *PA, groups::strong_generators *SG, int verbose_level)
void point_unrank(int *v, int rk)
void report(isomorph &Iso, int verbose_level)
void report_do_the_work(std::ostream &ost, isomorph &Iso, int verbose_level)
void main(int verbose_level)
groups::strong_generators * SG
int conic_test(long int *S, int len, int pt, int verbose_level)
void early_test_func(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, int verbose_level)
int test_nb_Eckardt_points(long int *S, int len, int pt, int nb_E, int verbose_level)
projective_geometry::projective_space_with_action * PA
void report_stabilizer(isomorph &Iso, std::ostream &ost, int orbit, int verbose_level)
poset_classification::poset_classification * gen
void prepare_generator(int verbose_level)
void print_set_in_affine_plane(int len, long int *S)
projective space PG(n,q) with automorphism group PGGL(n+1,q)
geometry::projective_space * P
actions::action * A_on_lines
projective_space_with_action * PA2
field_theory::finite_field * F
#define Lint_vec_copy(A, B, C)
#define Int_vec_scan(A, B, C)
#define Int_vec_zero(A, B)
#define Lint_vec_print(A, B, C)
#define NEW_OBJECTS(type, n)
#define Int_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects