Orbiter 2022
Combinatorial Objects
tl_orthogonal.h
Go to the documentation of this file.
1/*
2 * tl_orthogonal.h
3 *
4 * Created on: Jun 9, 2021
5 * Author: betten
6 */
7
8#ifndef SRC_LIB_TOP_LEVEL_ORTHOGONAL_TL_ORTHOGONAL_H_
9#define SRC_LIB_TOP_LEVEL_ORTHOGONAL_TL_ORTHOGONAL_H_
10
11
12namespace orbiter {
13namespace layer5_applications {
14namespace orthogonal_geometry_applications {
15
16
17
18// #############################################################################
19// blt_set_classify.cpp
20// #############################################################################
21
23
24
25
27
28public:
29
31
32 //linear_group *LG;
33 actions::action *A; // orthogonal group
34
35
36
38
39 groups::strong_generators *Strong_gens;
40
42
43 int q;
44
45 poset_classification::poset_classification_control *Control;
46 poset_classification::poset_with_group_action *Poset;
47 poset_classification::poset_classification *gen;
48 int degree;
49
50
52
53
56 void null();
57 void freeself();
58 void init_basic(actions::action *A,
59 groups::strong_generators *Strong_gens,
60 int starter_size,
61 int verbose_level);
62 void compute_starter(
63 poset_classification::poset_classification_control *Control,
64 int verbose_level);
65 void create_graphs(
66 int orbit_at_level_r, int orbit_at_level_m,
67 int level_of_candidates_file,
68 int f_lexorder_test, int f_eliminate_graphs_if_possible,
69 int verbose_level);
71 std::string &case_label,
72 std::string &list_of_cases_text,
73 int level_of_candidates_file,
74 int f_lexorder_test, int f_eliminate_graphs_if_possible,
75 int verbose_level);
76 int create_graph(
77 int orbit_at_level, int level_of_candidates_file,
78 int f_lexorder_test, int f_eliminate_graphs_if_possible,
79 int &nb_vertices,
80 graph_theory::colored_graph *&CG,
81 int verbose_level);
82
83 void lifting_prepare_function_new(exact_cover *E, int starter_case,
84 long int *candidates, int nb_candidates,
85 groups::strong_generators *Strong_gens,
86 solvers::diophant *&Dio, long int *&col_labels,
87 int &f_ruled_out,
88 int verbose_level);
89 void report_from_iso(isomorph &Iso, int verbose_level);
90 void report(data_structures_groups::orbit_transversal *T,
91 int verbose_level);
92 void report2(std::ostream &ost,
93 data_structures_groups::orbit_transversal *T,
94 int verbose_level);
95};
96
97
98
99// #############################################################################
100// BLT_set_create_description.cpp
101// #############################################################################
102
104
105
106
108
109public:
110
112 int iso;
114 std::string family_name;
115
116
117
120 void null();
121 void freeself();
122 int read_arguments(int argc, std::string *argv,
123 int verbose_level);
124 void print();
125};
126
127
128
129
130// #############################################################################
131// BLT_set_create.cpp
132// #############################################################################
133
135
136
137
139
140public:
142
143 std::string prefix;
144 std::string label_txt;
145 std::string label_tex;
146
147
148
150
151 long int *set;
152
153 int *ABC;
154
155
157 groups::strong_generators *Sg;
158
161
162
165 void null();
166 void freeself();
167 void init(
171 int verbose_level);
173 std::vector<std::string> transform_coeffs,
174 std::vector<int> f_inverse_transform, int verbose_level);
175 void report(int verbose_level);
176 void report2(std::ostream &ost, int verbose_level);
177 void print_set_of_points(std::ostream &ost, long int *Pts, int nb_pts);
178 void print_set_of_points_with_ABC(std::ostream &ost, long int *Pts, int nb_pts);
179
180};
181
182// #############################################################################
183// blt_set_with_action.cpp
184// #############################################################################
185
186
188
189
191
192public:
193
194 actions::action *A;
195 orthogonal_geometry::blt_set_domain *Blt_set_domain;
196
197 long int *set;
198
199 groups::strong_generators *Aut_gens;
200 orthogonal_geometry::blt_set_invariants *Inv;
201
202 actions::action *A_on_points;
203 groups::schreier *Orbits_on_points;
204
207 void null();
208 void freeself();
209 void init_set(
210 actions::action *A,
211 orthogonal_geometry::blt_set_domain *Blt_set_domain,
212 long int *set,
213 groups::strong_generators *Aut_gens, int verbose_level);
215 int verbose_level);
217 std::ostream &ost);
218 void report(std::ostream &ost, int verbose_level);
219};
220
221
222
223
224// #############################################################################
225// orthogonal_space_activity_description.cpp
226// #############################################################################
227
229
230
232public:
233
235 data_structures::data_input_stream_description *Data;
236
239
240
243 poset_classification::poset_classification_control *BLT_set_starter_control;
244
249
251 std::string fname_base_out;
252
254
258
261
263 std::string perp_text;
264
271
273
274
275
278 int read_arguments(
279 int argc, std::string *argv,
280 int verbose_level);
281 void print();
282
283
284};
285
286// #############################################################################
287// orthogonal_space_activity.cpp
288// #############################################################################
289
291
292
294public:
295
297
299
301
306 int verbose_level);
307 void perform_activity(int verbose_level);
308 void set_stabilizer(
310 int intermediate_subset_size,
311 std::string &fname_mask, int nb, std::string &column_label,
312 std::string &fname_out,
313 int verbose_level);
314
315
316};
317
318
319// #############################################################################
320// orthogonal_space_with_action_description.cpp
321// #############################################################################
322
323
325
327public:
328
330 int n;
331 std::string input_q;
332 field_theory::finite_field *F;
334 std::string label_txt;
336 std::string label_tex;
338
341 int read_arguments(
342 int argc, std::string *argv,
343 int verbose_level);
344 void print();
345
346};
347
348
349
350// #############################################################################
351// orthogonal_space_with_action.cpp
352// #############################################################################
353
354
356
358public:
359
361
362 std::string label_txt;
363 std::string label_tex;
364
366
368
369 actions::action *A;
370 induced_actions::action_on_orthogonal *AO;
371
372
375 void init(
377 int verbose_level);
378 void init_group(int verbose_level);
379 void report(graphics::layered_graph_draw_options *LG_Draw_options,
380 int verbose_level);
381 void report2(std::ostream &ost,
382 graphics::layered_graph_draw_options *LG_Draw_options,
383 int verbose_level);
384
385};
386
387
388
389
390
391}}}
392
393
394
395
396#endif /* SRC_LIB_TOP_LEVEL_ORTHOGONAL_TL_ORTHOGONAL_H_ */
to create a BLT-set from a description using class BLT_set_create_description
void init(layer1_foundations::orthogonal_geometry::blt_set_domain *Blt_set_domain, BLT_set_create_description *Descr, orthogonal_space_with_action *OA, int verbose_level)
layer1_foundations::orthogonal_geometry::blt_set_domain * Blt_set_domain
void apply_transformations(std::vector< std::string > transform_coeffs, std::vector< int > f_inverse_transform, int verbose_level)
void print_set_of_points_with_ABC(std::ostream &ost, long int *Pts, int nb_pts)
void print_set_of_points(std::ostream &ost, long int *Pts, int nb_pts)
void create_graphs(int orbit_at_level_r, int orbit_at_level_m, int level_of_candidates_file, int f_lexorder_test, int f_eliminate_graphs_if_possible, int verbose_level)
void compute_starter(poset_classification::poset_classification_control *Control, int verbose_level)
void report(data_structures_groups::orbit_transversal *T, int verbose_level)
void create_graphs_list_of_cases(std::string &case_label, std::string &list_of_cases_text, int level_of_candidates_file, int f_lexorder_test, int f_eliminate_graphs_if_possible, int verbose_level)
poset_classification::poset_classification_control * Control
Definition: tl_orthogonal.h:45
void report2(std::ostream &ost, data_structures_groups::orbit_transversal *T, int verbose_level)
void init_basic(actions::action *A, groups::strong_generators *Strong_gens, int starter_size, int verbose_level)
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)
layer1_foundations::orthogonal_geometry::blt_set_domain * Blt_set_domain
Definition: tl_orthogonal.h:30
int create_graph(int orbit_at_level, int level_of_candidates_file, int f_lexorder_test, int f_eliminate_graphs_if_possible, int &nb_vertices, graph_theory::colored_graph *&CG, int verbose_level)
void init_set(actions::action *A, orthogonal_geometry::blt_set_domain *Blt_set_domain, long int *set, groups::strong_generators *Aut_gens, int verbose_level)
void set_stabilizer(orthogonal_space_with_action *OA, int intermediate_subset_size, std::string &fname_mask, int nb, std::string &column_label, std::string &fname_out, int verbose_level)
layer1_foundations::orthogonal_geometry::blt_set_domain * Blt_set_domain
void init(orthogonal_space_activity_description *Descr, orthogonal_space_with_action *OA, int verbose_level)
void report(graphics::layered_graph_draw_options *LG_Draw_options, int verbose_level)
void report2(std::ostream &ost, graphics::layered_graph_draw_options *LG_Draw_options, int verbose_level)
void init(orthogonal_space_with_action_description *Descr, int verbose_level)
the orbiter library for the classification of combinatorial objects