14namespace layer5_applications {
15namespace applications_in_algebraic_geometry {
16namespace cubic_surfaces_and_arcs {
55 int f_test_nb_Eckardt_points,
int nb_E,
59 int f_v = (verbose_level >= 1);
63 cout <<
"six_arcs_not_on_a_conic::init" << endl;
67 cout <<
"six_arcs_not_on_a_conic::init PA->n != 2" << endl;
94 cout <<
"six_arcs_not_on_a_conic::init "
95 "before Gen->init" << endl;
110 cout <<
"six_arcs_not_on_a_conic::init "
111 "after Gen->init" << endl;
117 cout <<
"six_arcs_not_on_a_conic::init "
118 "Classifying 6-arcs for q=" <<
PA->
F->
q << endl;
119 cout <<
"six_arcs_not_on_a_conic::init before Gen->compute_starter" << endl;
125 cout <<
"six_arcs_not_on_a_conic::init "
126 "Classifying 6-arcs for q=" <<
PA->
F->
q << endl;
127 cout <<
"six_arcs_not_on_a_conic::init after Gen->compute_starter" << endl;
134 cout <<
"six_arcs_not_on_a_conic::init "
135 "We found " <<
nb_orbits <<
" isomorphism types "
150 cout <<
"six_arcs_not_on_a_conic::init "
151 "testing the arcs" << endl;
156 if (f_v && (h % 10000) == 0) {
157 cout <<
"six_arcs_not_on_a_conic::init "
158 "testing arc " << h <<
" / " <<
nb_orbits << endl;
165 long int **Pts_on_conic;
167 int *nb_pts_on_conic;
170 if (f_v && (h % 10000) == 0) {
171 cout <<
"six_arcs_not_on_a_conic::init "
172 "testing arc " << h <<
" / " <<
nb_orbits <<
" : ";
179 if (f_v && (h % 10000) == 0) {
180 cout <<
"six_arcs_not_on_a_conic::init "
181 "computing conic intersections:" << endl;
186 Pts_on_conic, Conic_eqn, nb_pts_on_conic, len1,
188 if (f_v && (h % 10000) == 0) {
189 cout <<
"The arc intersects " << len1
190 <<
" conics in 6 or more points. " << endl;
197 for (j = 0; j < len1; j++) {
208 "of 6-arcs not on a conic, out of a total of "
209 <<
nb_orbits <<
" isomorphism types of arcs" << endl;
216 cout <<
"six_arcs_not_on_a_conic::done" << endl;
223 int &orbit_not_on_conic_idx,
int verbose_level)
225 int f_v = (verbose_level >= 1);
230 cout <<
"six_arcs_not_on_a_conic::recognize" << endl;
241 orbit_not_on_conic_idx)) {
242 cout <<
"six_arcs_not_on_a_conic::recognize could not find orbit" << endl;
246 cout <<
"six_arcs_not_on_a_conic::recognize done" << endl;
255 ost <<
"\\subsection*{Classification of 6-arcs not on a conic "
256 "in $\\PG(2," <<
PA->
F->
q <<
")$}" << endl;
263 ost <<
"The order of the group $" <<
PA->
A->
label_tex <<
"$ is ";
267 ost <<
"\\bigskip" << endl << endl;
271 Ol.
create(0, __FILE__, __LINE__);
288 ost <<
"$ orbit length $";
290 ost <<
"$\\\\" << endl;
294 ost <<
"The overall number of 6-arcs not on a conic "
295 "in $\\PG(2," <<
PA->
F->
q <<
")$ is: " << Ol <<
"\\\\" << endl;
a collection of functions related to sorted vectors
int int_vec_search(int *v, int len, int a, int &idx)
void display_table_of_projective_points(std::ostream &ost, long int *Pts, int nb_pts, int len)
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)
domain to compute with objects of type longinteger
void add_in_place(longinteger_object &a, longinteger_object &b)
a class to represent arbitrary precision integers
std::ostream & print_not_scientific(std::ostream &ost)
void create(long int i, const char *file, int line)
groups::strong_generators * Strong_gens
a set and its known set stabilizer
groups::strong_generators * Strong_gens
void print_set_tex(std::ostream &ost)
void group_order(ring_theory::longinteger_object &go)
data_structures_groups::set_and_stabilizer * get_set_and_stabilizer(int level, int orbit_at_level, int verbose_level)
void orbit_length(int orbit_at_level, int level, ring_theory::longinteger_object &len)
int nb_orbits_at_level(int level)
void get_set_by_level(int level, int node, long int *set)
void identify(long int *data, int sz, int *transporter, int &orbit_at_level, int verbose_level)
void report_specific_arc_basic(std::ostream &ost, int arc_idx)
void init(apps_geometry::arc_generator_description *Descr, projective_geometry::projective_space_with_action *PA, int f_test_nb_Eckardt_points, int nb_E, int verbose_level)
six_arcs_not_on_a_conic()
~six_arcs_not_on_a_conic()
void report_specific_arc(std::ostream &ost, int arc_idx)
apps_geometry::arc_generator * Gen
void report_latex(std::ostream &ost)
projective_geometry::projective_space_with_action * PA
void recognize(long int *arc6, int *transporter, int &orbit_not_on_conic_idx, int verbose_level)
apps_geometry::arc_generator_description * Descr
description of a classification problem of arcs in a geometry
int f_test_nb_Eckardt_points
classification of arcs in desarguesian projective planes
void compute_starter(int verbose_level)
void init(arc_generator_description *Descr, projective_geometry::projective_space_with_action *PA, groups::strong_generators *SG, int verbose_level)
poset_classification::poset_classification * gen
projective space PG(n,q) with automorphism group PGGL(n+1,q)
geometry::projective_space * P
field_theory::finite_field * F
#define Lint_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects