Orbiter 2022
Combinatorial Objects
arc_lifting.cpp
Go to the documentation of this file.
1// arc_lifting.cpp
2//
3// Anton Betten, Fatma Karaoglu
4//
5// January 24, 2017
6// moved here from clebsch.cpp: March 22, 2017
7//
8//
9//
10//
11
12#include "orbiter.h"
13
14using namespace std;
15
16namespace orbiter {
17namespace layer5_applications {
18namespace applications_in_algebraic_geometry {
19namespace cubic_surfaces_and_arcs {
20
21
23{
24 q = 0;
25 F = NULL;
26 Surf = NULL;
27 Surf_A = NULL;
28
29
30 the_equation = NULL;
31
32 Web = NULL;
33
34 Trihedral_pair = NULL;
35
36 null();
37}
38
40{
41 freeself();
42}
43
45{
46}
47
49{
50 if (the_equation) {
52 }
53 if (Web) {
55 }
56 if (Trihedral_pair) {
58 }
59
60 null();
61}
62
63
66 long int *Arc6, int verbose_level)
67{
68 int f_v = (verbose_level >= 1);
69
70 if (f_v) {
71 cout << "arc_lifting::create_surface_and_group" << endl;
72 }
73
74
75
76 arc_lifting::arc = Arc6;
79 Surf = Surf_A->Surf;
80 F = Surf->F;
81 q = F->q;
82
83
84
85 if (f_v) {
86 cout << "arc_lifting::create_surface_and_group "
87 "before create_web_of_cubic_curves" << endl;
88 }
89 create_web_of_cubic_curves(verbose_level - 2);
90 if (f_v) {
91 cout << "arc_lifting::create_surface_and_group "
92 "after create_web_of_cubic_curves" << endl;
93 }
94
95
97
98
99 if (f_v) {
100 cout << "arc_lifting::create_surface_and_group "
101 "before Trihedral_pair->init" << endl;
102 }
103 Trihedral_pair->init(this, verbose_level);
104 if (f_v) {
105 cout << "arc_lifting::create_surface_and_group "
106 "after Trihedral_pair->init" << endl;
107 }
108
109
110
111 if (f_v) {
112 cout << "arc_lifting::create_surface_and_group done" << endl;
113 }
114}
115
116
118{
119 int f_v = (verbose_level >= 1);
120
121 if (f_v) {
122 cout << "arc_lifting::create_web_of_cubic_curves" << endl;
123 }
124
125
126 the_equation = NEW_int(20);
127
128
130
131 if (f_v) {
132 cout << "arc_lifting::create_web_of_cubic_curves before Web->init" << endl;
133 }
134 Web->init(Surf, arc, verbose_level);
135 if (f_v) {
136 cout << "arc_lifting::create_web_of_cubic_curves after Web->init" << endl;
137 }
138
139
140
141
142
143 if (f_v) {
144 cout << "arc_lifting::create_web_of_cubic_curves done" << endl;
145 }
146}
147
148
149
150
151void arc_lifting::report(ostream &ost, int verbose_level)
152{
153 int f_v = (verbose_level >= 1);
154
155 if (f_v) {
156 cout << "arc_lifting::report" << endl;
157 }
158
159
160 if (f_v) {
161 cout << "arc_lifting::report before Web->report" << endl;
162 }
163 Web->report(ost, verbose_level);
164 if (f_v) {
165 cout << "arc_lifting::report after Web->report" << endl;
166 }
167
168 if (f_v) {
169 cout << "arc_lifting::report before Trihedral_pair->report" << endl;
170 }
171 Trihedral_pair->report(ost, verbose_level);
172 if (f_v) {
173 cout << "arc_lifting::report after Trihedral_pair->report" << endl;
174 }
175
176
177 if (f_v) {
178 cout << "arc_lifting::report done" << endl;
179 }
180}
181
182
184{
189}
190
191
192
193
194
195
196
197
198}}}}
199
200
201
202
void print_equation_in_trihedral_form(std::ostream &ost, int *the_six_plane_equations, int lambda, int *the_equation)
a web of cubic curves which is used to create an algebraic variety
void init(surface_domain *Surf, long int *arc6, int verbose_level)
void create_surface_and_group(cubic_surfaces_in_general::surface_with_action *Surf_A, long int *Arc6, int verbose_level)
Definition: arc_lifting.cpp:64
#define FREE_int(p)
Definition: foundations.h:640
#define NEW_OBJECT(type)
Definition: foundations.h:638
#define FREE_OBJECT(p)
Definition: foundations.h:651
#define NEW_int(n)
Definition: foundations.h:625
the orbiter library for the classification of combinatorial objects