14namespace layer3_group_actions {
15namespace data_structures_groups {
50 int f_v = (verbose_level >= 1);
55 cout <<
"orbit_transversal::init_from_schreier" << endl;
61 for (orbit_idx = 0; orbit_idx <
nb_orbits; orbit_idx++) {
75 cout <<
"orbit_transversal::init_from_schreier done" << endl;
83 int f_v = (verbose_level >= 1);
86 cout <<
"orbit_transversal::read_from_file fname = " << fname << endl;
97 int nb_cases, nb_cases_mod;
102 cout <<
"orbit_transversal::read_from_file "
103 "before read_and_parse_data_file_fancy" << endl;
108 Set_sizes, Sets, Ago_ascii, Aut_ascii,
116 cout <<
"orbit_transversal::read_from_file "
118 <<
" orbit representatives" << endl;
124 nb_cases_mod = (nb_cases / 100) + 1;
126 for (i = 0; i < nb_cases; i++) {
128 if (f_v && ((i + 1) % nb_cases_mod) == 0) {
129 cout <<
"orbit_transversal::read_from_file processing "
130 "case " << i <<
" / " <<
nb_orbits <<
" : "
131 << 100. * (double) i / (
double) nb_cases
155 Ago_ascii, Aut_ascii,
159 cout <<
"orbit_transversal::read_from_file done" << endl;
165 int case_nr,
int verbose_level)
167 int f_v = (verbose_level >= 1);
170 cout <<
"orbit_transversal::read_from_file_one_case_only "
171 "fname = " << fname <<
" case_nr = " << case_nr << endl;
187 cout <<
"orbit_transversal::read_from_file_one_case_only "
188 "before read_and_parse_data_file_fancy" << endl;
193 Set_sizes, Sets, Ago_ascii, Aut_ascii,
201 cout <<
"orbit_transversal::read_from_file_one_case_only "
203 <<
" orbit representatives" << endl;
233 Ago_ascii, Aut_ascii,
237 cout <<
"orbit_transversal::read_from_file_one_case_only done" << endl;
244 int f_v = (verbose_level >= 1);
248 cout <<
"orbit_transversal::get_ago_distribution" << endl;
251 cout <<
"orbit_transversal::get_ago_distribution "
262 cout <<
"orbit_transversal::get_ago_distribution done" << endl;
275 for (i = C->
nb_types - 1; i >= 0; i--) {
280 ost <<
"There are " << l <<
" orbits with a stabilizer of order " << a <<
"\\\\" << endl;
289 void (*callback_print_function)(
290 stringstream &ost,
void *data,
void *callback_data),
293 void (*callback_print_function2)(
294 stringstream &ost,
void *data,
void *callback_data),
295 void *callback_data2,
299 int nb_rows_per_page = 40, nb_tables;
301 f <<
"The " <<
nb_orbits <<
" orbits are :\\\\" << endl;
303 nb_tables = (
nb_orbits + nb_rows_per_page - 1) / nb_rows_per_page;
305 for (I = 0; I < nb_tables; I++) {
307 f <<
"\\begin{array}{r|rr";
308 if (f_has_callback) {
311 if (f_has_callback2) {
315 f <<
"&&&\\\\" << endl;
316 f <<
"\\hline" << endl;
317 for (row = 0; row < nb_rows_per_page; row++) {
318 i = I * nb_rows_per_page + row;
327 if (f_has_callback) {
330 (*callback_print_function)(ost,
332 string s = ost.str();
335 if (f_has_callback2) {
338 (*callback_print_function2)(ost,
340 string s = ost.str();
348 f <<
"\\end{array}" << endl;
355 std::string &label_of_structure, std::ostream &ost,
358 int f_v = (verbose_level >= 1);
359 int f_vv = (verbose_level >= 2);
365 cout <<
"orbit_transversal::export_data_in_source_code_inside_tex" << endl;
368 ost <<
"\\section{The " << label_of_structure
369 <<
" in Numeric Form}" << endl << endl;
372 cout <<
"orbit_transversal::export_data_in_source_code_inside_tex "
373 "nb_orbits == 0" << endl;
379 if (
Reps[h].sz != size) {
380 cout <<
"the data has different sizes" << endl;
383 for (i = 0; i < size; i++) {
385 if (i <
Reps[h].sz - 1) {
389 ost <<
"\\\\" << endl;
391 ost <<
"\\begin{verbatim}" << endl << endl;
392 ost <<
"int " << prefix <<
"_size = " << size <<
";" << endl;
393 ost <<
"int " << prefix <<
"_nb_reps = " <<
nb_orbits <<
";" << endl;
394 ost <<
"int " << prefix <<
"_reps[] = {" << endl;
397 for (i = 0; i < size; i++) {
404 ost <<
"const char *" << prefix <<
"_stab_order[] = {" << endl;
413 ost <<
"\"," << endl;
418 ost <<
"\"," << endl;
424 int *stab_gens_first;
431 ost <<
"int " << prefix <<
"_stab_gens[] = {" << endl;
434 stab_gens_first[h] = fst;
440 cout <<
"isomorph_report_data_in_source_code_inside_"
441 "tex_with_selection before extract_strong_"
442 "generators_in_order generator " << j
447 Reps[h].Strong_gens->gens->ith(j), ost);
452 ost <<
"int " << prefix <<
"_stab_gens_fst[] = { ";
454 ost << stab_gens_first[h];
460 ost <<
"int " << prefix <<
"_stab_gens_len[] = { ";
462 ost << stab_gens_len[h];
468 ost <<
"int " << prefix <<
"_make_element_size = "
471 ost <<
"\\end{verbatim}" << endl << endl;
475 cout <<
"orbit_transversal::export_data_in_source_code_inside_tex" << endl;
a statistical analysis of data consisting of single integers
void init_lint(long int *data, int data_length, int f_second, int verbose_level)
a collection of functions related to file io
void read_and_parse_data_file_fancy(std::string &fname, int f_casenumbers, int &nb_cases, int *&Set_sizes, long int **&Sets, char **&Ago_ascii, char **&Aut_ascii, int *&Casenumbers, int verbose_level)
void free_data_fancy(int nb_cases, int *Set_sizes, long int **Sets, char **Ago_ascii, char **Aut_ascii, int *Casenumbers)
a class to represent arbitrary precision integers
std::ostream & print_not_scientific(std::ostream &ost)
a permutation group in a fixed action.
void element_print_for_make_element(void *elt, std::ostream &ost)
void read_from_file_one_case_only(actions::action *A, actions::action *A2, std::string &fname, int case_nr, int verbose_level)
set_and_stabilizer * Reps
void read_from_file(actions::action *A, actions::action *A2, std::string &fname, int verbose_level)
void export_data_in_source_code_inside_tex(std::string &prefix, std::string &label_of_structure, std::ostream &ost, int verbose_level)
void report_ago_distribution(std::ostream &ost)
void print_table_latex(std::ostream &f, int f_has_callback, void(*callback_print_function)(std::stringstream &ost, void *data, void *callback_data), void *callback_data, int f_has_callback2, void(*callback_print_function2)(std::stringstream &ost, void *data, void *callback_data), void *callback_data2, int verbose_level)
data_structures::tally * get_ago_distribution(long int *&ago, int verbose_level)
void init_from_schreier(groups::schreier *Sch, actions::action *default_action, ring_theory::longinteger_object &full_group_order, int verbose_level)
a set and its known set stabilizer
groups::strong_generators * Strong_gens
long int group_order_as_lint()
void init_everything(actions::action *A, actions::action *A2, long int *Set, int set_sz, groups::strong_generators *gens, int verbose_level)
Schreier trees for orbits of groups on points.
void get_orbit_rep_to(actions::action *default_action, ring_theory::longinteger_object &full_group_order, int orbit_idx, data_structures_groups::set_and_stabilizer *Rep, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
a strong generating set for a permutation group with respect to a fixed action
void init_from_ascii_coding(actions::action *A, char *ascii_coding, int verbose_level)
data_structures_groups::vector_ge * gens
void group_order(ring_theory::longinteger_object &go)
#define Lint_vec_copy(A, B, C)
#define Lint_vec_print(A, B, C)
#define NEW_OBJECTS(type, n)
the orbiter library for the classification of combinatorial objects