Orbiter 2022
Combinatorial Objects
classify.h
Go to the documentation of this file.
1/*
2 * classify.h
3 *
4 * Created on: Aug 9, 2018
5 * Author: Anton Betten
6 *
7 * started: September 20, 2007
8 * pulled out of snakesandladders.h: Aug 9, 2018
9 */
10
11
12#ifndef ORBITER_SRC_LIB_CLASSIFICATION_CLASSIFY_CLASSIFY_H_
13#define ORBITER_SRC_LIB_CLASSIFICATION_CLASSIFY_CLASSIFY_H_
14
15
16namespace orbiter {
17namespace layer4_classification {
18namespace invariant_relations {
19
20
21
22// #############################################################################
23// classification_step.cpp
24// #############################################################################
25
27
28
30public:
31 actions::action *A; // do not free
32 actions::action *A2; // do not free
33
34 //int f_lint;
35 ring_theory::longinteger_object go;
38 orbit_node *Orbit; // [max_orbits]
40 long int *Rep; // [nb_orbits * representation_sz]
41 //long int *Rep_lint; // [nb_orbits * representation_sz]
42
45 void null();
46 void freeself();
47 void init(actions::action *A, actions::action *A2, int max_orbits, int representation_sz,
48 ring_theory::longinteger_object &go, int verbose_level);
49 data_structures_groups::set_and_stabilizer *get_set_and_stabilizer(int orbit_index,
50 int verbose_level);
51 void write_file(std::ofstream &fp, int verbose_level);
52 void read_file(std::ifstream &fp,
53 actions::action *A, actions::action *A2, ring_theory::longinteger_object &go,
54 int verbose_level);
55 void generate_source_code(std::string &fname_base, int verbose_level);
56 long int *Rep_ith(int i);
57 void print_group_orders();
58 void print_summary(std::ostream &ost);
59 void print_latex(std::ostream &ost,
60 std::string &title, int f_print_stabilizer_gens,
61 int f_has_print_function,
62 void (*print_function)(std::ostream &ost, int i,
63 classification_step *Step, void *print_function_data),
64 void *print_function_data);
65
66};
67
68// #############################################################################
69// flag_orbits.cpp
70// #############################################################################
71
73
74
76public:
77 actions::action *A; // do not free
78 actions::action *A2; // do not free
79
82
84 void (*func_to_free_received_trace)(void *trace_result, void *data, int verbose_level);
85 void (*func_latex_report_trace)(std::ostream &ost, void *trace_result, void *data, int verbose_level);
87
91 long int *Pt; // [nb_flag_orbits * pt_representation_sz]
92
93
96 void null();
97 void freeself();
98 void init(actions::action *A, actions::action *A2, int nb_primary_orbits_lower,
101 void (*func_to_free_received_trace)(void *trace_result, void *data, int verbose_level),
102 void (*func_latex_report_trace)(std::ostream &ost, void *trace_result, void *data, int verbose_level),
104 int verbose_level);
105 int find_node_by_po_so(int po, int so, int &idx,
106 int verbose_level);
107 void write_file(std::ofstream &fp, int verbose_level);
108 void read_file(std::ifstream &fp,
109 actions::action *A, actions::action *A2,
110 int verbose_level);
111 void print_latex(std::ostream &ost,
112 const char *title, int f_print_stabilizer_gens);
113
114};
115
116// #############################################################################
117// flag_orbit_node.cpp
118// #############################################################################
119
121
122
124public:
126
128
138
139 ring_theory::longinteger_object go;
140 groups::strong_generators *gens;
141
143 void **Receptacle; // [upper_bound_for_number_of_traces]
144
147 void null();
148 void freeself();
151 int downstep_orbit_len, int f_long_orbit, long int *pt_representation,
152 groups::strong_generators *Strong_gens, int verbose_level);
153 void receive_trace_result(void *trace_result, int verbose_level);
154 void write_file(std::ofstream &fp, int verbose_level);
155 void read_file(std::ifstream &fp, int verbose_level);
157 std::ostream &ost,
158 int f_print_stabilizer_gens);
159
160};
161
162// #############################################################################
163// orbit_node.cpp
164// #############################################################################
165
167
169public:
172 groups::strong_generators *gens;
174
175 orbit_node();
176 ~orbit_node();
177 void null();
178 void freeself();
180 int orbit_index, groups::strong_generators *gens,
181 long int *Rep, void *extra_data, int verbose_level);
182 void write_file(std::ofstream &fp, int verbose_level);
183 void read_file(std::ifstream &fp, int verbose_level);
184};
185
186}}}
187
188
189#endif /* ORBITER_SRC_LIB_CLASSIFICATION_CLASSIFY_CLASSIFY_H_ */
190
191
192
193
a single step classification of combinatorial objects
Definition: classify.h:29
void generate_source_code(std::string &fname_base, int verbose_level)
void print_latex(std::ostream &ost, std::string &title, int f_print_stabilizer_gens, int f_has_print_function, void(*print_function)(std::ostream &ost, int i, classification_step *Step, void *print_function_data), void *print_function_data)
void init(actions::action *A, actions::action *A2, int max_orbits, int representation_sz, ring_theory::longinteger_object &go, int verbose_level)
void read_file(std::ifstream &fp, actions::action *A, actions::action *A2, ring_theory::longinteger_object &go, int verbose_level)
data_structures_groups::set_and_stabilizer * get_set_and_stabilizer(int orbit_index, int verbose_level)
to represent a flag orbit; related to the class flag_orbits
Definition: classify.h:123
void init(flag_orbits *Flag_orbits, int flag_orbit_index, int downstep_primary_orbit, int downstep_secondary_orbit, int downstep_orbit_len, int f_long_orbit, long int *pt_representation, groups::strong_generators *Strong_gens, int verbose_level)
void print_latex(flag_orbits *Flag_orbits, std::ostream &ost, int f_print_stabilizer_gens)
void receive_trace_result(void *trace_result, int verbose_level)
stores the set of flag orbits; related to the class classification_step
Definition: classify.h:75
int find_node_by_po_so(int po, int so, int &idx, int verbose_level)
void(* func_latex_report_trace)(std::ostream &ost, void *trace_result, void *data, int verbose_level)
Definition: classify.h:85
void init(actions::action *A, actions::action *A2, int nb_primary_orbits_lower, int pt_representation_sz, int nb_flag_orbits, int upper_bound_for_number_of_traces, void(*func_to_free_received_trace)(void *trace_result, void *data, int verbose_level), void(*func_latex_report_trace)(std::ostream &ost, void *trace_result, void *data, int verbose_level), void *free_received_trace_data, int verbose_level)
Definition: flag_orbits.cpp:75
void read_file(std::ifstream &fp, actions::action *A, actions::action *A2, int verbose_level)
void print_latex(std::ostream &ost, const char *title, int f_print_stabilizer_gens)
void write_file(std::ofstream &fp, int verbose_level)
void(* func_to_free_received_trace)(void *trace_result, void *data, int verbose_level)
Definition: classify.h:84
to encode one group orbit, associated to the class classification_step
Definition: classify.h:168
void read_file(std::ifstream &fp, int verbose_level)
Definition: orbit_node.cpp:77
void init(classification_step *C, int orbit_index, groups::strong_generators *gens, long int *Rep, void *extra_data, int verbose_level)
Definition: orbit_node.cpp:41
void write_file(std::ofstream &fp, int verbose_level)
Definition: orbit_node.cpp:63
the orbiter library for the classification of combinatorial objects