19namespace layer4_classification {
42 std::string &fname_base_out,
46 int substructure_size,
49 int f_v = (verbose_level >= 1);
53 cout <<
"substructure_classifier::classify_substructures, substructure_size=" <<
substructure_size << endl;
54 cout <<
"substructure_classifier::classify_substructures, fname_base_out=" <<
fname_base_out << endl;
55 cout <<
"substructure_classifier::classify_substructures, action A=";
58 cout <<
"substructure_classifier::classify_substructures, action A2=";
61 cout <<
"substructure_classifier::classify_substructures generators:" << endl;
80 cout <<
"substructure_classifier::classify_substructures control=" << endl;
90 cout <<
"substructure_classifier::classify_substructures "
91 "before Poset->orbits_on_k_sets_compute" << endl;
98 cout <<
"substructure_classifier::classify_substructures "
99 "after Poset->orbits_on_k_sets_compute" << endl;
123 cout << j <<
" : " << go << endl;
129 cout <<
"substructure_classifier::classify_substructures done" << endl;
141 int intermediate_subset_size,
142 std::string &fname_mask,
int nb, std::string &column_label,
143 std::string &fname_out,
146 int f_v = (verbose_level >= 1);
150 cout <<
"substructure_classifier::set_stabilizer_in_any_space" << endl;
158 cout <<
"substructure_classifier::set_stabilizer_in_any_space "
159 "before SubC->classify_substructures" << endl;
166 intermediate_subset_size, verbose_level - 5);
169 cout <<
"substructure_classifier::set_stabilizer_in_any_space "
170 "after SubC->classify_substructures" << endl;
171 cout <<
"substructure_classifier::set_stabilizer_in_any_space "
172 "We found " <<
nb_orbits <<
" orbits at level " << intermediate_subset_size <<
":" << endl;
179 int nb_objects_to_test;
183 nb_objects_to_test = 0;
186 for (cnt = 0; cnt < nb; cnt++) {
191 sprintf(str, fname_mask.c_str(), cnt);
198 nb_objects_to_test += S.
nb_rows - 1;
200 cout <<
"substructure_classifier::set_stabilizer_in_any_space "
201 "file " << cnt <<
" / " << nb <<
" has "
202 << S.
nb_rows - 1 <<
" objects" << endl;
208 cout <<
"substructure_classifier::set_stabilizer_in_any_space "
209 "nb_objects_to_test = " << nb_objects_to_test << endl;
217 for (cnt = 0; cnt < nb; cnt++) {
222 sprintf(str, fname_mask.c_str(), cnt);
230 cout <<
"substructure_classifier::set_stabilizer_in_any_space S.nb_rows = " << S.
nb_rows << endl;
231 cout <<
"substructure_classifier::set_stabilizer_in_any_space S.nb_cols = " << S.
nb_cols << endl;
239 for (row = 0; row < S.
nb_rows - 1; row++, counter++) {
245 long int *canonical_pts;
248 cout <<
"#############################################################################" << endl;
249 cout <<
"cnt = " << cnt <<
" / " << nb <<
" row = " << row <<
" / " << S.
nb_rows - 1 << endl;
254 if (S.
tokens[t] == NULL) {
255 cout <<
"substructure_classifier::set_stabilizer_in_any_space token[t] == NULL" << endl;
257 pts_txt.assign(S.
tokens[t]);
269 cout <<
"row = " << row;
280 sprintf(str,
"_cnt%d", counter);
281 fname.assign(fname_out);
286 cout <<
"substructure_classifier::set_stabilizer_in_any_space "
287 "before set_stabilizer_of_set" << endl;
297 cout <<
"substructure_classifier::set_stabilizer_in_any_space "
298 "after set_stabilizer_of_set" << endl;
310 cout <<
"substructure_classifier::set_stabilizer_in_any_space done" << endl;
317 std::string &fname_out,
318 int cnt,
int nb,
int row,
321 long int *canonical_pts,
324 int f_v = (verbose_level >= 1);
328 cout <<
"substructure_classifier::set_stabilizer_of_set" << endl;
336 cout <<
"substructure_classifier::set_stabilizer_of_set before SubSt->init" << endl;
345 cout <<
"substructure_classifier::set_stabilizer_of_set after SubSt->init" << endl;
348 cout <<
"substructure_classifier::set_stabilizer_of_set" << endl;
349 cout <<
"stabilizer generators are:" << endl;
356 int *transporter_to_canonical_form;
360 cout <<
"substructure_classifier::set_stabilizer before handle_orbit" << endl;
368 transporter_to_canonical_form,
369 Gens_stabilizer_original_set,
373 cout <<
"substructure_classifier::set_stabilizer after handle_orbit" << endl;
374 cout <<
"canonical point set: ";
379 cout <<
"_{" << go <<
"}" << endl;
381 cout <<
"transporter to canonical form:" << endl;
383 cout <<
"Stabilizer of the original set:" << endl;
392 cout <<
"substructure_classifier::set_stabilizer before init_generators_for_the_conjugate_group_avGa" << endl;
395 Gens_stabilizer_original_set, transporter_to_canonical_form,
398 cout <<
"substructure_classifier::set_stabilizer after init_generators_for_the_conjugate_group_avGa" << endl;
402 cout <<
"substructure_classifier::set_stabilizer after handle_orbit" << endl;
403 cout <<
"canonical point set: ";
408 cout <<
"_{" << go <<
"}" << endl;
410 cout <<
"transporter to canonical form:" << endl;
412 cout <<
"Stabilizer of the canonical form:" << endl;
419 FREE_int(transporter_to_canonical_form);
424 cout <<
"substructure_classifier::set_stabilizer_of_set done" << endl;
431 long int *canonical_pts,
432 int *transporter_to_canonical_form,
436 int f_v = (verbose_level >= 1);
441 cout <<
"substructure_classifier::handle_orbit calling compute_stabilizer_function" << endl;
449 cout <<
"substructure_classifier::handle_orbit before CS->init" << endl;
459 cout <<
"substructure_classifier::handle_orbit after CS->init" << endl;
470 cout <<
"substructure_classifier::handle_orbit done with compute_stabilizer" << endl;
482 cout <<
"substructure_classifier::handle_orbit done" << endl;
for reading and writing of csv files
void read_spreadsheet(std::string &fname, int verbose_level)
int find_column(std::string &column_label)
a class to represent arbitrary precision integers
a permutation group in a fixed action.
void element_print(void *elt, std::ostream &ost)
void element_move(void *a, void *b, int verbose_level)
a strong generating set for a permutation group with respect to a fixed action
void print_generators_tex()
void init_from_sims(groups::sims *S, int verbose_level)
void init_generators_for_the_conjugate_group_avGa(strong_generators *SG, int *Elt_a, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
to compute the set-stabilizer
int backtrack_nodes_first_time
void init(substructure_stats_and_selection *SubSt, long int *canonical_pts, int verbose_level)
int backtrack_nodes_total_in_loop
to control the behavior of the poset classification algorithm
int nb_orbits_at_level(int level)
void get_stabilizer_generators(groups::strong_generators *&gens, int level, int orbit_at_level, int verbose_level)
a poset with a group action on it
void init_subset_lattice(actions::action *A, actions::action *A2, groups::strong_generators *Strong_gens, int verbose_level)
poset_classification * orbits_on_k_sets_compute(poset_classification_control *Control, int k, int verbose_level)
void set_stabilizer_in_any_space(actions::action *A, actions::action *A2, groups::strong_generators *Strong_gens, int intermediate_subset_size, std::string &fname_mask, int nb, std::string &column_label, std::string &fname_out, int verbose_level)
void set_stabilizer_of_set(std::string &fname_out, int cnt, int nb, int row, long int *pts, int nb_pts, long int *canonical_pts, int verbose_level)
~substructure_classifier()
void classify_substructures(std::string &fname_base_out, actions::action *A, actions::action *A2, groups::strong_generators *gens, int substructure_size, int verbose_level)
poset_classification::poset_classification * PC
poset_classification::poset_classification_control * Control
substructure_classifier()
poset_classification::poset_with_group_action * Poset
void handle_orbit(substructure_stats_and_selection *SubSt, long int *canonical_pts, int *transporter_to_canonical_form, groups::strong_generators *&Gens_stabilizer_original_set, int verbose_level)
std::string fname_base_out
analyzing the substructures of a given set
void init(std::string &fname_case_out, substructure_classifier *SubC, long int *Pts, int nb_pts, int verbose_level)
substructure_classifier * SubC
groups::strong_generators * gens
#define Lint_vec_scan(A, B, C)
#define Lint_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects