16namespace layer5_applications {
17namespace applications_in_algebraic_geometry {
18namespace cubic_surfaces_and_arcs {
77 int f_v = (verbose_level >= 1);
81 cout <<
"surfaces_arc_lifting_upstep::init" << endl;
82 cout <<
"verbose_level = " << verbose_level << endl;
124 cout <<
"surfaces_arc_lifting_upstep::init before process_flag_orbit "
133 cout <<
"surfaces_arc_lifting_upstep::init after process_flag_orbit "
141 cout <<
"surfaces_arc_lifting_upstep::init flag orbit f=" <<
f
142 <<
" done, number of flag orbits processed = " <<
nb_processed
143 <<
" number of surfaces = "
152 cout <<
"warning: nb_processed != Flag_orbits->nb_flag_orbits" << endl;
154 cout <<
"Flag_orbits->nb_flag_orbits = "
163 <<
" isomorphism types of surfaces from "
165 <<
" flag orbits" << endl;
166 cout <<
"The group orders are: " << endl;
174 cout <<
"surfaces_arc_lifting_upstep::init done" << endl;
180 int f_v = (verbose_level >= 1);
183 cout <<
"surfaces_arc_lifting_upstep::process_flag_orbit f=" <<
f
185 cout <<
"verbose_level = " << verbose_level << endl;
192 cout <<
"surfaces_arc_lifting_upstep::process_flag_orbit Defining surface "
194 <<
" from flag orbit " <<
f <<
" / "
196 <<
" progress=" <<
progress <<
"%" << endl;
203 cout <<
"Flag_orbits->pt_representation_sz != pt_representation_sz" << endl;
228 cout <<
"surfaces_arc_lifting_upstep::process_flag_orbit before compute_stabilizer" << endl;
232 cout <<
"surfaces_arc_lifting_upstep::process_flag_orbit after compute_stabilizer" << endl;
238 cout <<
"surfaces_arc_lifting_upstep::process_flag_orbit before Surfaces.init" << endl;
243 Aut_gens,
Lines,
D , verbose_level);
245 cout <<
"surfaces_arc_lifting_upstep::process_flag_orbit after init Aut_gens" << endl;
251 cout <<
"surfaces_arc_lifting_upstep::process_flag_orbit before D->SOA->init_with_group" << endl;
274 cout <<
"surfaces_arc_lifting_upstep::process_flag_orbit after D->SOA->init_with_group" << endl;
282 cout <<
"surfaces_arc_lifting_upstep::process_flag_orbit f=" <<
f
291 int f_v = (verbose_level >= 1);
292 int f_vvv = (verbose_level >= 3);
295 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer f=" <<
f
297 cout <<
"verbose_level = " << verbose_level << endl;
306 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer Lines:";
314 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer f=" <<
f
325 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer "
332 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer "
333 "before process_tritangent_plane" << endl;
339 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer "
340 "after process_tritangent_plane" << endl;
352 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer "
353 "after process_tritangent_plane" << endl;
354 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer "
372 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer "
373 "Extending the group by a factor of "
384 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer "
385 "The surface has a stabilizer of order "
387 cout <<
"The surface stabilizer is:" << endl;
394 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer "
395 "before Algebra.relative_order_vector_of_cosets" << endl;
401 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer "
402 "after Algebra.relative_order_vector_of_cosets" << endl;
403 cout <<
"relative_order_table:" << endl;
419 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer before D->tally_f2" << endl;
423 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer after D->tally_f2" << endl;
429 cout <<
"surfaces_arc_lifting_upstep::compute_stabilizer f=" <<
f
439 int f_v = (verbose_level >= 1);
440 int f_vv = (verbose_level >= 2);
441 int f_vvv = (verbose_level >= 3);
445 cout <<
"surfaces_arc_lifting_upstep::process_tritangent_plane "
448 cout <<
"verbose_level = " << verbose_level << endl;
456 for (i = 0; i < 3; i++) {
464 cout <<
"surfaces_arc_lifting_upstep::process_tritangent_plane "
470 cout <<
" three_lines=";
490 cout <<
"surfaces_arc_lifting_upstep::process_tritangent_plane f=" <<
f <<
" / "
494 "isomorphic to orbit " << f2 << endl;
503 cout <<
"surfaces_arc_lifting_upstep::process_tritangent_plane "
505 <<
" / 3240, We found an automorphism "
520 cout <<
"surfaces_arc_lifting_upstep::process_tritangent_plane " << T->
upstep_idx
521 <<
" / 3240, We are identifying flag orbit " << T->
f2
522 <<
" with flag orbit " <<
f << endl;
543 cout <<
"surfaces_arc_lifting_upstep::process_tritangent_plane "
544 "Flag orbit " << f2 <<
" has already been "
545 "identified with flag orbit " <<
f << endl;
548 cout <<
"Flag_orbits->Flag_orbit_node[f2]."
549 "fusion_with != f" << endl;
565 cout <<
"surfaces_arc_lifting_upstep::process_tritangent_plane "
579 int f_v = (verbose_level >= 1);
581 int line_idx, m1, m2, m3, line_l1_l2_idx, l1, l2;
584 cout <<
"surfaces_arc_lifting_upstep::make_seventytwo_cases "
587 cout <<
"verbose_level = " << verbose_level << endl;
593 for (line_idx = 0; line_idx < 3; line_idx++) {
599 else if (line_idx == 1) {
603 else if (line_idx == 2) {
612 for (l1 = 0; l1 < 27; l1++) {
625 for (l2 = l1 + 1; l2 < 27; l2++) {
647 line_idx, m1, m2, m3, line_l1_l2_idx, l1, l2);
654 if (line_l1_l2_idx != 24) {
655 cout <<
"surfaces_arc_lifting_upstep::make_seventytwo_cases line_l1_l2_idx != 24" << endl;
662 cout <<
"surfaces_arc_lifting_upstep::make_seventytwo_cases c != 72" << endl;
667 cout <<
"surfaces_arc_lifting_upstep::make_seventytwo_cases "
671 for (c = 0; c < 72; c++) {
673 cout <<
"surfaces_arc_lifting_upstep::make_seventytwo_cases "
675 " tritangent_plane_idx=" <<
tritangent_plane_idx <<
" / 45, computing arc " << c <<
" / 72" << endl;
680 cout <<
"surfaces_arc_lifting_upstep::make_seventytwo_cases "
686 cout <<
"surfaces_arc_lifting_upstep::make_seventytwo_cases "
void three_lines(surface_domain *S, int *three_lines)
eckardt_point * Eckardt_points
void init(surface_domain *Surf, int f, int tritangent_plane_idx, int *three_lines_idx, long int *three_lines, int line_idx, int m1, int m2, int m3, int line_l1_l2_idx, int l1, int l2)
void compute_arc(surface_object *SO, int verbose_level)
Computes the six base points in a tritangent plane associated with the Clebsch map defined by two ske...
surface_object_properties * SOP
interface to create latex output files
void print_integer_matrix_with_standard_labels(std::ostream &ost, int *p, int m, int n, int f_tex)
a class to represent arbitrary precision integers
void element_print(void *elt, std::ostream &ost)
void element_invert(void *a, void *av, int verbose_level)
void element_move(void *a, void *b, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
to hold a vector of group elements
void allocate(int length, int verbose_level)
void reallocate(int new_length, int verbose_level)
void init(actions::action *A, int verbose_level)
a strong generating set for a permutation group with respect to a fixed action
strong_generators * create_copy()
void print_generators_tex()
void init_group_extension(strong_generators *subgroup, int *data, int index, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
a single step classification of combinatorial objects
void print_group_orders()
void init(actions::action *A, actions::action *A2, int max_orbits, int representation_sz, ring_theory::longinteger_object &go, int verbose_level)
groups::strong_generators * gens
void receive_trace_result(void *trace_result, int verbose_level)
flag_orbit_node * Flag_orbit_node
int nb_primary_orbits_upper
void init(classification_step *C, int orbit_index, groups::strong_generators *gens, long int *Rep, void *extra_data, int verbose_level)
~surfaces_arc_lifting_upstep()
ring_theory::longinteger_object A4_go
algebraic_geometry::seventytwo_cases Seventytwo[72]
surfaces_arc_lifting_definition_node * D
void compute_stabilizer(surfaces_arc_lifting_definition_node *D, groups::strong_generators *&Aut_gens, int verbose_level)
void process_flag_orbit(int verbose_level)
void make_seventytwo_cases(int verbose_level)
surfaces_arc_lifting * Lift
void init(surfaces_arc_lifting *Lift, int verbose_level)
surfaces_arc_lifting_upstep()
long int * Flag_representation
void process_tritangent_plane(surfaces_arc_lifting_definition_node *D, int verbose_level)
long int * Flag2_representation
flag orbit node which is a definition node and hence describes a surface
void init_with_27_lines(surfaces_arc_lifting *Lift, int f, int orbit_idx, long int *Lines27, int *eqn20, int verbose_level)
void tally_f2(int verbose_level)
long int three_lines[45 *3]
groups::strong_generators * Flag_stab_gens
algebraic_geometry::seventytwo_cases Seventytwo[45 *72]
algebraic_geometry::surface_object * SO
int three_lines_idx[45 *3]
cubic_surfaces_in_general::surface_object_with_action * SOA
data_structures_groups::vector_ge * coset_reps
ring_theory::longinteger_object Flag_stab_go
int * relative_order_table
surfaces_arc_lifting_trace ** T
an instance of a cubic surface together with its stabilizer
void init_with_group(surface_with_action *Surf_A, long int *Lines, int nb_lines, int *eqn, groups::strong_generators *Aut_gens, int f_find_double_six_and_rearrange_lines, int f_has_nice_gens, data_structures_groups::vector_ge *nice_gens, int verbose_level)
void init_with_surface_object(surface_with_action *Surf_A, algebraic_geometry::surface_object *SO, groups::strong_generators *Aut_gens, int f_has_nice_gens, data_structures_groups::vector_ge *nice_gens, int verbose_level)
tracing data to be used during the classification of cubic surfaces using lifted 6-arcs
algebraic_geometry::seventytwo_cases The_case
void init(surfaces_arc_lifting_upstep *Up, int seventytwo_case_idx, int verbose_level)
void process_flag_orbit(surfaces_arc_lifting_upstep *Up, int verbose_level)
classification of cubic surfaces using lifted 6-arcs
invariant_relations::classification_step * Surfaces
algebraic_geometry::surface_domain * Surf
invariant_relations::flag_orbits * Flag_orbits
cubic_surfaces_in_general::surface_with_action * Surf_A
algebraic_geometry::surface_domain * Surf
group theoretic functions which require an action
void relative_order_vector_of_cosets(actions::action *A, groups::strong_generators *SG, data_structures_groups::vector_ge *cosets, int *&relative_order_table, int verbose_level)
#define Lint_vec_copy(A, B, C)
#define Int_vec_zero(A, B)
#define Lint_vec_print(A, B, C)
#define Lint_vec_copy_to_int(A, B, C)
#define Int_vec_copy(A, B, C)
#define Int_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects