Orbiter 2022
Combinatorial Objects
arc_partition.cpp
Go to the documentation of this file.
1/*
2 * arc_partition.cpp
3 *
4 * Created on: Jan 9, 2019
5 * Author: betten
6 */
7
8
9
10#include "orbiter.h"
11
12using namespace std;
13
14namespace orbiter {
15namespace layer5_applications {
16namespace applications_in_algebraic_geometry {
17namespace cubic_surfaces_and_arcs {
18
19
20
22{
23 null();
24}
25
27{
28 freeself();
29}
30
32{
33 OP = NULL;
34
35 A = NULL;
36
37 pair_orbit_idx = -1;
38 The_pair = NULL;
39
40 //int arc_remainder[4];
41
42 A_on_rest = NULL;
43 A_on_partition = NULL;
44
46
48}
49
51{
52 if (The_pair) {
54 }
55 if (A_on_rest) {
57 }
58 if (A_on_partition) {
60 }
63 }
64 null();
65}
66
68 arc_orbits_on_pairs *OP, int pair_orbit_idx,
69 actions::action *A, actions::action *A_on_arc,
70 int verbose_level)
71{
72 int f_v = (verbose_level >= 1);
73
74
75 if (f_v) {
76 cout << "arc_partition::init" << endl;
77 }
78
83
84
85 if (f_v) {
86 cout << "arc_partition::init "
87 "creating The_arc" << endl;
88 }
89
91 2 /* level */,
93 0 /* verbose_level */);
94
95
97 if (f_v) {
98 cout << "arc_partition::init "
99 "the pair is :";
100 Lint_vec_print(cout, The_pair->data, 2);
101 cout << endl;
102 cout << "arc_partition::init "
103 "the remainder is :";
105 cout << endl;
106 }
107
108 if (f_v) {
109 cout << "arc_partition::init "
110 "creating restricted action on the arc" << endl;
111 }
112
114 verbose_level);
115
116 if (f_v) {
117 cout << "arc_partition::init "
118 "creating action on the partition" << endl;
119 }
120
122 2,
123 verbose_level);
124
126
127 if (f_v) {
128 cout << "arc_partition::init "
129 "before A_on_rest->all_point_orbits_from_generators" << endl;
130 }
131
135 verbose_level);
136
138
139 if (f_v) {
140 cout << "arc_partition::init done" << endl;
141 }
142}
143
144void arc_partition::recognize(int *partition, int *transporter,
145 int &orbit_idx, int verbose_level)
146{
147 int f_v = (verbose_level >= 1);
148 int partition_idx;
150
151
152 if (f_v) {
153 cout << "arc_partition::recognize" << endl;
154 }
155
156
157 partition_idx = Combi.set_partition_4_into_2_rank(partition);
158
159 if (f_v) {
160 cout << "arc_partition::recognize partition_idx=" << partition_idx << endl;
161 }
162
164 orbit_idx, transporter, verbose_level - 2);
165
166 if (f_v) {
167 cout << "arc_partition::recognize orbit_idx=" << orbit_idx << endl;
168 }
169
170
171 if (f_v) {
172 cout << "arc_partition::recognize done" << endl;
173 }
174}
175
176
177
178}}}}
179
void complement(long int *v, long int *w, int n, int k)
Definition: lint_vec.cpp:101
a permutation group in a fixed action.
Definition: actions.h:99
action * induced_action_on_set_partitions(int partition_class_size, int verbose_level)
action * restricted_action(long int *points, int nb_points, int verbose_level)
void all_point_orbits_from_generators(groups::schreier &Schreier, groups::strong_generators *SG, int verbose_level)
Definition: action.cpp:1254
Schreier trees for orbits of groups on points.
Definition: groups.h:839
void transporter_from_point_to_orbit_rep(int pt, int &orbit_idx, int *Elt, int verbose_level)
Definition: schreier.cpp:760
data_structures_groups::set_and_stabilizer * get_set_and_stabilizer(int level, int orbit_at_level, int verbose_level)
void init(arc_orbits_on_pairs *OP, int pair_orbit_idx, actions::action *A, actions::action *A_on_arc, int verbose_level)
void recognize(int *partition, int *transporter, int &orbit_idx, int verbose_level)
#define NEW_OBJECT(type)
Definition: foundations.h:638
#define Lint_vec_print(A, B, C)
Definition: foundations.h:686
#define FREE_OBJECT(p)
Definition: foundations.h:651
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
the orbiter library for the classification of combinatorial objects