11#ifndef ORBITER_SRC_LIB_FOUNDATIONS_IO_AND_OS_IO_AND_OS_H_
12#define ORBITER_SRC_LIB_FOUNDATIONS_IO_AND_OS_IO_AND_OS_H_
19namespace layer1_foundations {
20namespace orbiter_kernel_system {
66 int argc, std::string *argv,
88 const char *fname_out,
const char *EOF_marker,
int f_title_line,
90 std::vector<int> missing_idx,
93 std::ofstream &fp_out,
const char *EOF_marker,
int f_title_line,
95 std::vector<int> &missing_idx,
98 std::string &fname,
int orbit_at_level,
99 long int *&candidates,
int &nb_candidates,
int verbose_level);
101 int level,
int orbit_at_level,
int level_of_candidates_file,
103 void (*early_test_func_callback)(
long int *S,
int len,
104 long int *candidates,
int nb_candidates,
105 long int *good_candidates,
int &nb_good_candidates,
106 void *data,
int verbose_level),
107 void *early_test_func_callback_data,
108 long int *&candidates,
112 int level_of_candidates_file,
long int *starter,
115 int nb_cols, std::string &fname);
117 int *Inc,
int nb_rows,
int nb_cols,
118 int *&Solutions,
int &sol_length,
int &nb_sol,
122 int &nb_solutions,
int &solution_size,
128 int *&nb_solutions,
int *&case_nb,
int &nb_cases,
131 int &nb_solutions,
int *&Solutions,
int &solution_size,
134 int &nb_solutions,
int *&Solutions,
int solution_size,
137 std::vector<std::vector<int> > &Solutions,
int solution_size,
140 int *nb_solutions,
int *case_nb,
int nb_cases,
141 int **&Solutions,
int solution_size,
145 std::string &fname,
const char *label);
147 std::string &fname,
const char *label);
150 const char *label1,
const char *label2);
153 const char *label1,
const char *label2,
const char *label3);
155 std::string &fname,
const char **column_label);
157 std::string &fname,
const char **column_label);
163 double *M,
int m,
int n);
165 int *M,
int m,
int n,
const char **column_label);
167 long int *M,
int m,
int n,
const char **column_label);
169 int &m,
int &n,
int verbose_level);
171 int *&M,
int &m,
int &n,
int verbose_level);
173 long int *&M,
int &m,
int &n,
int verbose_level);
175 int &m,
int &n,
int verbose_level);
180 int *M,
int m,
int n);
183 int *&M,
int &m,
int &n);
185 int &nb_V, std::vector<std::vector<int> > &Edges,
int verbose_level);
186 void parse_sets(
int nb_cases,
char **data,
int f_casenumbers,
187 int *&Set_sizes,
long int **&Sets,
char **&Ago_ascii,
char **&Aut_ascii,
191 char **data,
long int **&sets);
192 void parse_line(
char *line,
int &len,
long int *&set,
193 char *ago_ascii,
char *aut_ascii);
197 char **&data,
int verbose_level);
199 char **&data,
long int **&sets,
int *&set_sizes,
int verbose_level);
201 int *Set_sizes,
long int **Sets,
202 char **Ago_ascii,
char **Aut_ascii,
207 int *&Set_sizes,
long int **&Sets,
char **&Ago_ascii,
char **&Aut_ascii,
211 long int *&the_set,
int &set_size,
int verbose_level);
213 long int *the_set,
int set_size,
int verbose_level);
215 long int *&the_set,
int &set_size,
int verbose_level);
217 long int *the_set,
int set_size,
int verbose_level);
219 long int *&the_set,
int &set_size,
int verbose_level);
221 long int *&the_set,
int &set_size,
int verbose_level);
223 long int *the_set,
int set_size,
int verbose_level);
225 long int *the_set,
int set_size,
int verbose_level);
227 int *&the_set,
int &set_size,
int verbose_level);
229 int *Inc,
int m,
int n,
int verbose_level);
231 std::string &inc_file_name,
int inc_file_idx,
int verbose_level);
233 int &m,
int &n,
int &nb_flags,
234 std::string &inc_file_name,
int verbose_level);
236 int &m,
int &n,
int &r,
237 std::string &inc_file_name,
int verbose_level);
239 char *inc_file_name,
int verbose_level);
250 int *&the_set,
int &set_size,
int verbose_level);
252 std::string &fname_ascii,
253 int *&Sets,
int &nb_sets,
int &set_size,
int verbose_level);
255 int *v,
int *b,
int *aij,
int verbose_level);
264 std::string &rows_text,
270 std::string &cols_text,
273 std::string &rows_text, std::string &cols_text,
276 std::string &csv_fname, std::string &col_label,
int verbose_level);
278 std::string &csv_fname,
int verbose_level);
280 std::vector<std::string> &csv_file_join_fname,
281 std::vector<std::string> &csv_file_join_identifier,
int verbose_level);
283 std::vector<std::string> &fname, std::string &fname_out,
int verbose_level);
285 int f_produce_latex_header,
286 int nb_lines_per_table,
289 void save_fibration(std::vector<std::vector<std::pair<int, int> > > &Fibration,
290 std::string &fname,
int verbose_level);
292 std::string &fname,
int verbose_level);
294 std::string &fname,
int verbose_level);
296 std::string &fname,
int verbose_level);
298 long int *data,
int nb_rows,
int data_sz,
int nb_cols,
int verbose_level);
326 void write_EOF(
int nb_sol,
int verbose_level);
344 std::ostream& ost,
const char *extras);
346 void head(std::ostream& ost,
int f_book,
int f_title,
347 const char *title,
const char *author,
348 int f_toc,
int f_landscape,
int f_12pt,
349 int f_enlarged_page,
int f_pagenumbers,
350 const char *extras_for_preamble);
351 void foot(std::ostream& ost);
358 int V,
int B,
int *Vi,
int *Bj,
360 int f_labelling_points, std::string *point_labels,
361 int f_labelling_blocks, std::string *block_labels,
365 int V,
int B,
int *Vi,
int *Bj,
370 int V,
int B,
int *Vi,
int *Bj,
378 long int *p,
int m,
int n);
382 int m,
int n,
int *row_labels,
int *col_labels,
int f_tex);
384 long int *p,
int m,
int n,
long int *row_labels,
long int *col_labels,
387 int *p,
int m,
int n,
int f_tex);
389 long int *p,
int m,
int n,
int f_tex);
391 int *p,
int m,
int n,
int m_offset,
int n_offset,
int f_tex);
393 long int *p,
int m,
int n,
int m_offset,
int n_offset,
int f_tex);
395 int *p,
int m,
int n,
int block_width);
397 int *p,
int m,
int n,
int m_offset,
int n_offset);
399 std::ostream &ost,
long int *p,
int m,
int n,
int m_offset,
int n_offset);
401 int *p,
int m,
int n,
int m_offset,
int n_offset);
403 std::ostream &ost,
long int *p,
int m,
int n,
404 int m_offset,
int n_offset);
407 int *v,
int len,
int width,
int f_tex);
409 long int *v,
int len,
int width,
int f_tex);
411 int *p,
int m,
int n,
412 int *row_labels,
int *col_labels,
413 int *row_part_first,
int *row_part_len,
int nb_row_parts,
414 int *col_part_first,
int *col_part_len,
int nb_col_parts,
415 void (*process_function_or_NULL)(
int *p,
int m,
int n,
416 int i,
int j,
int val, std::string &output,
void *data),
420 long int *p,
int m,
int n,
421 int *row_labels,
int *col_labels,
422 int *row_part_first,
int *row_part_len,
int nb_row_parts,
423 int *col_part_first,
int *col_part_len,
int nb_col_parts,
424 void (*process_function_or_NULL)(
long int *p,
int m,
int n,
425 int i,
int j,
int val, std::string &output,
void *data),
431 std::ostream &ost,
int *pts,
int nb_pts,
432 void (*point_label)(std::stringstream &sstr,
int pt,
void *data),
433 void *point_label_data);
439 int *v,
int len,
const char *mask_begin,
const char *mask_end);
441 long int *v,
int len,
442 const char *mask_begin,
443 const char *mask_end);
447 long int *v,
int len);
449 const char *p,
int max_len,
int line_skip);
451 std::ostream &ost,
int f_enter_math_mode,
452 long int *row_class_size,
int nb_row_classes,
453 long int *col_class_size,
int nb_col_classes,
454 long int *row_scheme);
456 std::ostream &ost,
int f_enter_math_mode,
457 long int *row_class_size,
int nb_row_classes,
458 long int *col_class_size,
int nb_col_classes,
459 long int *col_scheme);
478 int group_order,
int *Table,
int *gens,
int nb_gens,
481 std::string &fname_base,
482 int group_order,
int *Table,
int *gens,
int nb_gens,
483 int *&N_gens,
int &N_nb_gens,
int &N_go,
486 int degree,
int *&gens,
int &nb_gens,
int &go,
489 std::string &fname_base,
491 int *initial_vector,
int **gens,
int nb_gens,
495 std::string &fname_base,
497 int *initial_subspace,
int **gens,
int nb_gens,
528 void print(
int line);
529 void print_csv(std::ostream &ost,
int line);
540#define REGISTRY_SIZE 1000
541#define POINTER_TYPE_INVALID 0
542#define POINTER_TYPE_int 1
543#define POINTER_TYPE_pint 2
544#define POINTER_TYPE_lint 3
545#define POINTER_TYPE_plint 4
546#define POINTER_TYPE_ppint 5
547#define POINTER_TYPE_pplint 6
548#define POINTER_TYPE_char 7
549#define POINTER_TYPE_uchar 8
550#define POINTER_TYPE_pchar 9
551#define POINTER_TYPE_puchar 10
552#define POINTER_TYPE_PVOID 11
553#define POINTER_TYPE_OBJECT 12
554#define POINTER_TYPE_OBJECTS 13
588 void init(
int verbose_level);
590 void allocate(
int N,
int verbose_level);
599 int *
allocate_int(
long int n,
const char *file,
int line);
600 void free_int(
int *p,
const char *file,
int line);
602 void free_pint(
int **p,
const char *file,
int line);
603 long int *
allocate_lint(
long int n,
const char *file,
int line);
604 void free_lint(
long int *p,
const char *file,
int line);
605 long int **
allocate_plint(
long int n,
const char *file,
int line);
606 void free_plint(
long int **p,
const char *file,
int line);
608 void free_ppint(
int ***p,
const char *file,
int line);
610 void free_pplint(
long int ***p,
const char *file,
int line);
612 void free_char(
char *p,
const char *file,
int line);
616 void free_pchar(
char **p,
const char *file,
int line);
620 void free_pvoid(
void **p,
const char *file,
int line);
622 const char *extra_type_info,
const char *file,
int line);
625 const char *extra_type_info,
const char *file,
int line);
626 void free_OBJECT(
void *p,
const char *file,
int line);
627 int search(
void *p,
int &idx);
630 int object_type,
long int object_n,
int object_size_of,
631 const char *extra_type_info,
632 const char *source_file,
int source_line,
667 void init(
long int length,
char *initial_data,
int verbose_level);
668 void alloc(
long int length,
int verbose_level);
669 void append(
long int length,
char *d,
int verbose_level);
670 void realloc(
long int &new_length,
int verbose_level);
681 void read_file(
const char *fname,
int verbose_level);
682 void write_file(
const char *fname,
int verbose_level);
709 void load(std::string &fname,
int verbose_level);
787 std::string *argv,
int i0);
797 int *&v,
int &m,
int &n);
798 void find_symbols(std::vector<std::string> &Labels,
int *&Idx);
842 void init(std::string &str_label);
846 void *p,
int verbose_level);
848 void *p,
int verbose_level);
850 void *p,
int verbose_level);
852 void *p,
int verbose_level);
854 void *p,
int verbose_level);
856 void *p,
int verbose_level);
858 void *p,
int verbose_level);
860 void *p,
int verbose_level);
862 void *p,
int verbose_level);
865 void *p,
int verbose_level);
867 std::string &list_of_objects,
int verbose_level);
871 void *Gr,
int verbose_level);
873 void *P,
int verbose_level);
875 void *P,
int verbose_level);
877 void *P,
int verbose_level);
879 void *PL,
int verbose_level);
881 void *GC,
int verbose_level);
883 void *Dio,
int verbose_level);
885 void *DC,
int verbose_level);
887 void *DT,
int verbose_level);
889 void *LSW,
int verbose_level);
891 void *SB,
int verbose_level);
893 void *VB,
int verbose_level);
914 std::vector<orbiter_symbol_table_entry>
Table;
947 int &d,
int &h,
int &m,
int &s);
957 int &i,
int verbose_level);
for reading and writing of csv files
to create a vector of field elements from class vector_builder_description
to create a geometric object from a description using class geometric_object_description
classification of geometries
options for drawing an incidence structure
options for drawing an object of type layered_graph
rules to create text files
int read_arguments(int argc, std::string *argv, int verbose_level)
int f_line_numeric[MAX_LINES]
std::string final_lines[MAX_LINES]
int read_cases_column_of_fname
int read_cases_column_of_case
create_file_description()
std::string lines[MAX_LINES]
~create_file_description()
std::string read_cases_fname
a collection of functions related to file io
int count_number_of_lines_in_file(std::string &fname, int verbose_level)
void int_vec_array_write_csv(int nb_vecs, int **Vec, int len, std::string &fname, const char **column_label)
void parse_sets_and_check_sizes_easy(int len, int nb_cases, char **data, long int **&sets)
void read_set_from_file_int4(std::string &fname, long int *&the_set, int &set_size, int verbose_level)
void read_k_th_set_from_file(std::string &fname, int k, int *&the_set, int &set_size, int verbose_level)
void read_solutions_from_file_and_get_solution_size(std::string &fname, int &nb_solutions, int *&Solutions, int &solution_size, int verbose_level)
void count_number_of_solutions_in_file_and_get_solution_size(std::string &fname, int &nb_solutions, int &solution_size, int verbose_level)
void int_matrix_write_csv(std::string &fname, int *M, int m, int n)
int count_number_of_orbits_in_file(std::string &fname, int verbose_level)
void create_files_list_of_cases(data_structures::spreadsheet *S, create_file_description *Descr, int verbose_level)
void save_fibration(std::vector< std::vector< std::pair< int, int > > > &Fibration, std::string &fname, int verbose_level)
void int_vecs3_write_csv(int *v1, int *v2, int *v3, int len, std::string &fname, const char *label1, const char *label2, const char *label3)
void do_csv_file_select_rows(std::string &fname, std::string &rows_text, int verbose_level)
void do_csv_file_sort_each_row(std::string &csv_fname, int verbose_level)
void write_set_to_file_lint(std::string &fname, long int *the_set, int set_size, int verbose_level)
void int_matrix_read_csv_no_border(std::string &fname, int *&M, int &m, int &n, int verbose_level)
void save_cumulative_canonical_labeling(std::vector< std::vector< int > > &Cumulative_canonical_labeling, std::string &fname, int verbose_level)
void int_vec_write_csv(int *v, int len, std::string &fname, const char *label)
void lint_matrix_write_csv(std::string &fname, long int *M, int m, int n)
void int_matrix_write_text(std::string &fname, int *M, int m, int n)
void int_vecs_write_csv(int *v1, int *v2, int len, std::string &fname, const char *label1, const char *label2)
void do_csv_file_select_cols(std::string &fname, std::string &cols_text, int verbose_level)
int_4 fread_int4(FILE *fp)
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 int_matrix_read_csv(std::string &fname, int *&M, int &m, int &n, int verbose_level)
void read_incidence_by_row_ranks_file(std::vector< std::vector< int > > &Geos, int &m, int &n, int &r, std::string &inc_file_name, int verbose_level)
void concatenate_files_into(const char *fname_in_mask, int N, std::ofstream &fp_out, const char *EOF_marker, int f_title_line, int &cnt_total, std::vector< int > &missing_idx, int verbose_level)
int inc_file_get_number_of_geometries(char *inc_file_name, int verbose_level)
void count_number_of_solutions_in_file_by_case(std::string &fname, int *&nb_solutions, int *&case_nb, int &nb_cases, int verbose_level)
void copy_file_to_ostream(std::ostream &ost, const char *fname)
void vector_matrix_write_csv(std::string &fname, std::vector< std::vector< int > > &V)
void lint_matrix_write_csv_override_headers(std::string &fname, std::string *headers, long int *M, int m, int n)
void poset_classification_read_candidates_of_orbit(std::string &fname, int orbit_at_level, long int *&candidates, int &nb_candidates, int verbose_level)
void write_set_to_file_as_int8(std::string &fname, long int *the_set, int set_size, int verbose_level)
void read_column_and_parse(std::string &fname, std::string &col_label, data_structures::set_of_sets *&SoS, int verbose_level)
void double_matrix_write_csv(std::string &fname, double *M, int m, int n)
void do_csv_file_split_rows_modulo(std::string &fname, int split_modulo, int verbose_level)
void parse_sets(int nb_cases, char **data, int f_casenumbers, int *&Set_sizes, long int **&Sets, char **&Ago_ascii, char **&Aut_ascii, int *&Casenumbers, int verbose_level)
void read_set_from_file_lint(std::string &fname, long int *&the_set, int &set_size, int verbose_level)
long int file_size(std::string &fname)
void free_data_fancy(int nb_cases, int *Set_sizes, long int **Sets, char **Ago_ascii, char **Aut_ascii, int *Casenumbers)
void read_dimacs_graph_format(std::string &fname, int &nb_V, std::vector< std::vector< int > > &Edges, int verbose_level)
void int_matrix_write_csv_with_labels(std::string &fname, int *M, int m, int n, const char **column_label)
void int_matrix_write_cas_friendly(std::string &fname, int *M, int m, int n)
void do_csv_file_latex(std::string &fname, int f_produce_latex_header, int nb_lines_per_table, int verbose_level)
void lint_matrix_read_csv(std::string &fname, long int *&M, int &m, int &n, int verbose_level)
void fread_uchars(FILE *fp, uchar *p, int len)
void write_exact_cover_problem_to_file(int *Inc, int nb_rows, int nb_cols, std::string &fname)
void do_csv_file_concatenate(std::vector< std::string > &fname, std::string &fname_out, int verbose_level)
void concatenate_files(const char *fname_in_mask, int N, const char *fname_out, const char *EOF_marker, int f_title_line, int &cnt_total, std::vector< int > missing_idx, int verbose_level)
void read_solution_file(std::string &fname, int *Inc, int nb_rows, int nb_cols, int *&Solutions, int &sol_length, int &nb_sol, int verbose_level)
void read_incidence_file(std::vector< std::vector< int > > &Geos, int &m, int &n, int &nb_flags, std::string &inc_file_name, int verbose_level)
void lint_matrix_write_text(std::string &fname, long int *M, int m, int n)
void write_decomposition_stack(char *fname, int m, int n, int *v, int *b, int *aij, int verbose_level)
void do_csv_file_join(std::vector< std::string > &csv_file_join_fname, std::vector< std::string > &csv_file_join_identifier, int verbose_level)
void write_incidence_matrix_to_file(std::string &fname, int *Inc, int m, int n, int verbose_level)
void parse_line(char *line, int &len, long int *&set, char *ago_ascii, char *aut_ascii)
int try_to_read_file(std::string &fname, int &nb_cases, char **&data, int verbose_level)
void read_ascii_set_of_sets_constant_size(std::string &fname_ascii, int *&Sets, int &nb_sets, int &set_size, int verbose_level)
void read_solutions_from_file(std::string &fname, int &nb_solutions, int *&Solutions, int solution_size, int verbose_level)
void do_csv_file_select_rows_and_cols(std::string &fname, std::string &rows_text, std::string &cols_text, int verbose_level)
void lint_vec_write_csv(long int *v, int len, std::string &fname, const char *label)
void int_matrix_read_text(std::string &fname, int *&M, int &m, int &n)
void read_and_parse_data_file(std::string &fname, int &nb_cases, char **&data, long int **&sets, int *&set_sizes, int verbose_level)
void read_candidates_for_one_orbit_from_file(std::string &prefix, int level, int orbit_at_level, int level_of_candidates_file, long int *S, void(*early_test_func_callback)(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, void *data, int verbose_level), void *early_test_func_callback_data, long int *&candidates, int &nb_candidates, int verbose_level)
void fwrite_uchars(FILE *fp, uchar *p, int len)
void lint_matrix_write_csv_with_labels(std::string &fname, long int *M, int m, int n, const char **column_label)
void lint_vec_array_write_csv(int nb_vecs, long int **Vec, int len, std::string &fname, const char **column_label)
void save_cumulative_data(std::vector< std::vector< int > > &Cumulative_data, std::string &fname, int verbose_level)
void read_solutions_and_tally(std::string &fname, int sz, int verbose_level)
void delete_file(const char *fname)
int number_of_vertices_in_colored_graph(std::string &fname, int verbose_level)
void save_cumulative_ago(std::vector< long int > &Cumulative_Ago, std::string &fname, int verbose_level)
void count_number_of_solutions_in_file(std::string &fname, int &nb_solutions, int verbose_level)
void write_set_to_file_as_int4(std::string &fname, long int *the_set, int set_size, int verbose_level)
void double_matrix_read_csv(std::string &fname, double *&M, int &m, int &n, int verbose_level)
void read_numbers_from_file(std::string &fname, int *&the_set, int &set_size, int verbose_level)
void create_file(create_file_description *Descr, int verbose_level)
void write_characteristic_matrix(std::string &fname, long int *data, int nb_rows, int data_sz, int nb_cols, int verbose_level)
void do_csv_file_extract_column_to_txt(std::string &csv_fname, std::string &col_label, int verbose_level)
void create_files(create_file_description *Descr, int verbose_level)
void read_incidence_matrix_from_inc_file(int *&M, int &m, int &n, std::string &inc_file_name, int inc_file_idx, int verbose_level)
void read_solutions_from_file_size_is_known(std::string &fname, std::vector< std::vector< int > > &Solutions, int solution_size, int verbose_level)
void fwrite_int4(FILE *fp, int a)
void read_set_from_file(std::string &fname, long int *&the_set, int &set_size, int verbose_level)
void write_set_to_file(std::string &fname, long int *the_set, int set_size, int verbose_level)
int find_orbit_index_in_data_file(std::string &prefix, int level_of_candidates_file, long int *starter, int verbose_level)
void read_solutions_from_file_by_case(std::string &fname, int *nb_solutions, int *case_nb, int nb_cases, int **&Solutions, int solution_size, int verbose_level)
void fix_escape_characters(char *str)
void read_set_from_file_int8(std::string &fname, long int *&the_set, int &set_size, int verbose_level)
a wrapper class for an ofstream which allows to store extra data
void write_EOF(int nb_sol, int verbose_level)
void open(const char *fname, void *user_data, int verbose_level)
void write_line(int nb, int *data, int verbose_level)
interface to create latex output files
void print_lint_matrix_with_labels(std::ostream &ost, long int *p, int m, int n, long int *row_labels, long int *col_labels, int f_tex)
void head_easy(std::ostream &ost)
void print_integer_matrix_tex_block_by_block(std::ostream &ost, int *p, int m, int n, int block_width)
void print_row_tactical_decomposition_scheme_tex(std::ostream &ost, int f_enter_math_mode, long int *row_class_size, int nb_row_classes, long int *col_class_size, int nb_col_classes, long int *row_scheme)
void latexable_string(std::stringstream &str, const char *p, int max_len, int line_skip)
void lint_matrix_print_with_labels_and_partition(std::ostream &ost, long int *p, int m, int n, int *row_labels, int *col_labels, int *row_part_first, int *row_part_len, int nb_row_parts, int *col_part_first, int *col_part_len, int nb_col_parts, void(*process_function_or_NULL)(long int *p, int m, int n, int i, int j, int val, std::string &output, void *data), void *data, int f_tex)
void print_lint_matrix_with_standard_labels(std::ostream &ost, long int *p, int m, int n, int f_tex)
void print_column_tactical_decomposition_scheme_tex(std::ostream &ost, int f_enter_math_mode, long int *row_class_size, int nb_row_classes, long int *col_class_size, int nb_col_classes, long int *col_scheme)
void print_integer_matrix_with_standard_labels_and_offset_text(std::ostream &ost, int *p, int m, int n, int m_offset, int n_offset)
void print_lint_matrix_with_standard_labels_and_offset(std::ostream &ost, long int *p, int m, int n, int m_offset, int n_offset, int f_tex)
void incma_latex_with_labels(std::ostream &fp, int v, int b, int V, int B, int *Vi, int *Bj, int *row_labels_int, int *col_labels_int, int *incma, int verbose_level)
void lint_set_print_masked_tex(std::ostream &ost, long int *v, int len, const char *mask_begin, const char *mask_end)
void print_cycle_tex_with_special_point_labels(std::ostream &ost, int *pts, int nb_pts, void(*point_label)(std::stringstream &sstr, int pt, void *data), void *point_label_data)
void int_matrix_print_tex(std::ostream &ost, int *p, int m, int n)
void print_type_vector_tex(std::ostream &ost, int *v, int len)
void print_lint_matrix_with_standard_labels_and_offset_tex(std::ostream &ost, long int *p, int m, int n, int m_offset, int n_offset)
void incma_latex(std::ostream &fp, int v, int b, int V, int B, int *Vi, int *Bj, int *incma, int verbose_level)
void print_lint_matrix_tex(std::ostream &ost, long int *p, int m, int n)
void lint_set_print_tex_for_inline_text(std::ostream &ost, long int *v, int len)
void lint_vec_print_as_matrix(std::ostream &ost, long int *v, int len, int width, int f_tex)
void print_integer_matrix_tex(std::ostream &ost, int *p, int m, int n)
void print_01_matrix_tex(std::ostream &ost, int *p, int m, int n)
void head_easy_sideways(std::ostream &ost)
void int_matrix_print_with_labels_and_partition(std::ostream &ost, int *p, int m, int n, int *row_labels, int *col_labels, int *row_part_first, int *row_part_len, int nb_row_parts, int *col_part_first, int *col_part_len, int nb_col_parts, void(*process_function_or_NULL)(int *p, int m, int n, int i, int j, int val, std::string &output, void *data), void *data, int f_tex)
void print_big_integer_matrix_tex(std::ostream &ost, int *p, int m, int n)
void lint_set_print_tex_text_mode(std::ostream &ost, long int *v, int len)
void int_set_print_tex_for_inline_text(std::ostream &ost, int *v, int len)
void lint_set_print_tex(std::ostream &ost, long int *v, int len)
void int_set_print_tex(std::ostream &ost, int *v, int len)
void head(std::ostream &ost, int f_book, int f_title, const char *title, const char *author, int f_toc, int f_landscape, int f_12pt, int f_enlarged_page, int f_pagenumbers, const char *extras_for_preamble)
void print_integer_matrix_with_standard_labels(std::ostream &ost, int *p, int m, int n, int f_tex)
void print_integer_matrix_with_standard_labels_and_offset(std::ostream &ost, int *p, int m, int n, int m_offset, int n_offset, int f_tex)
void int_set_print_masked_tex(std::ostream &ost, int *v, int len, const char *mask_begin, const char *mask_end)
void head_easy_with_extras_in_the_praeamble(std::ostream &ost, const char *extras)
void print_integer_matrix_with_standard_labels_and_offset_tex(std::ostream &ost, int *p, int m, int n, int m_offset, int n_offset)
void incma_latex_with_text_labels(std::ostream &fp, graphics::draw_incidence_structure_description *Descr, int v, int b, int V, int B, int *Vi, int *Bj, int *incma, int f_labelling_points, std::string *point_labels, int f_labelling_blocks, std::string *block_labels, int verbose_level)
void print_longinteger_matrix_tex(std::ostream &ost, ring_theory::longinteger_object *p, int m, int n)
void print_lint_matrix_with_standard_labels_and_offset_text(std::ostream &ost, long int *p, int m, int n, int m_offset, int n_offset)
void lint_matrix_print_tex(std::ostream &ost, long int *p, int m, int n)
void foot(std::ostream &ost)
void print_integer_matrix_with_labels(std::ostream &ost, int *p, int m, int n, int *row_labels, int *col_labels, int f_tex)
void int_vec_print_as_matrix(std::ostream &ost, int *v, int len, int width, int f_tex)
interface to the computer algebra system MAGMA
void orbit_of_matrix_group_on_vector(std::string &fname_base, int d, int q, int *initial_vector, int **gens, int nb_gens, int &orbit_length, int verbose_level)
void read_permutation_group(std::string &fname, int degree, int *&gens, int &nb_gens, int &go, int verbose_level)
orbiter_session * Orbiter_session
void run_magma_file(std::string &fname, int verbose_level)
void write_permutation_group(std::string &fname_base, int group_order, int *Table, int *gens, int nb_gens, int verbose_level)
void normalizer_in_Sym_n(std::string &fname_base, int group_order, int *Table, int *gens, int nb_gens, int *&N_gens, int &N_nb_gens, int &N_go, int verbose_level)
void orbit_of_matrix_group_on_subspaces(std::string &fname_base, int d, int q, int k, int *initial_subspace, int **gens, int nb_gens, int &orbit_length, int verbose_level)
a class related to mem_object_registry
void set_type_from_string(char *str)
mem_object_registry_entry()
~mem_object_registry_entry()
void print_csv(std::ostream &ost, int line)
const char * extra_type_info
void print_type(std::ostream &ost)
maintains a registry of allocated memory
void add_to_registry(void *pointer, int object_type, long int object_n, int object_size_of, const char *extra_type_info, const char *source_file, int source_line, int verbose_level)
long int ** allocate_plint(long int n, const char *file, int line)
void free_pvoid(void **p, const char *file, int line)
int *** allocate_ppint(long int n, const char *file, int line)
void manual_dump_with_file_name(const char *fname)
uchar * allocate_uchar(long int n, const char *file, int line)
void init(int verbose_level)
void free_uchar(uchar *p, const char *file, int line)
int automatic_dump_interval
void free_char(char *p, const char *file, int line)
void ** allocate_pvoid(long int n, const char *file, int line)
void sort_by_location_and_get_frequency(int verbose_level)
void sort_by_type(int verbose_level)
long int * allocate_lint(long int n, const char *file, int line)
uchar ** allocate_puchar(long int n, const char *file, int line)
void accumulate_and_ignore_duplicates(int verbose_level)
void allocate(int N, int verbose_level)
char * allocate_char(long int n, const char *file, int line)
void free_lint(long int *p, const char *file, int line)
long int *** allocate_pplint(long int n, const char *file, int line)
mem_object_registry_entry * entries
void free_int(int *p, const char *file, int line)
void free_pplint(long int ***p, const char *file, int line)
void sort_by_size(int verbose_level)
void free_pchar(char **p, const char *file, int line)
char automatic_dump_fname_mask[1000]
void free_OBJECTS(void *p, const char *file, int line)
int * allocate_int(long int n, const char *file, int line)
void * allocate_OBJECTS(void *p, long int n, std::size_t size_of, const char *extra_type_info, const char *file, int line)
char ** allocate_pchar(long int n, const char *file, int line)
void sort_by_location(int verbose_level)
void set_automatic_dump(int automatic_dump_interval, const char *fname_mask, int verbose_level)
void free_plint(long int **p, const char *file, int line)
void free_ppint(int ***p, const char *file, int line)
int search(void *p, int &idx)
void delete_from_registry(void *pointer, int verbose_level)
void dump_to_csv_file(const char *fname)
void free_puchar(uchar **p, const char *file, int line)
void * allocate_OBJECT(void *p, std::size_t size_of, const char *extra_type_info, const char *file, int line)
void free_OBJECT(void *p, const char *file, int line)
int ** allocate_pint(long int n, const char *file, int line)
void free_pint(int **p, const char *file, int line)
for serialization of complex data types
void read_double(double *f)
void alloc(long int length, int verbose_level)
void write_file(const char *fname, int verbose_level)
void init(long int length, char *initial_data, int verbose_level)
void read_lint(long int *i)
void write_double(double f)
void write_string(const char *p)
int multiplicity_of_character(char c)
void read_string(char *&p)
void read_file(const char *fname, int verbose_level)
void append(long int length, char *d, int verbose_level)
void realloc(long int &new_length, int verbose_level)
void write_lint(long int i)
read output files from the poset classification
void load(std::string &fname, int verbose_level)
The orbiter session is responsible for the command line interface and the program execution.
void start_memory_debug()
long int nb_times_finite_field_created
void fork(int argc, std::string *argv, int verbose_level)
orbiter_kernel_system::orbiter_symbol_table * Orbiter_symbol_table
void get_vector_from_label(std::string &label, int *&v, int &sz, int verbose_level)
data_structures::vector_builder * get_object_of_type_vector(std::string &label)
void find_symbols(std::vector< std::string > &Labels, int *&Idx)
long int nb_times_projective_space_created
int read_arguments(int argc, std::string *argv, int i0)
int longinteger_f_print_scientific
symbol_table_object_type get_object_type(int idx)
void get_int_vector_from_label(std::string &label, int *&v, int &sz, int verbose_level)
void get_lint_vec(std::string &label, long int *&the_set, int &set_size, int verbose_level)
std::string fork_variable
std::string fork_logfile_mask
void get_lint_vector_from_label(std::string &label, long int *&v, int &sz, int verbose_level)
int recognize_keyword(int argc, std::string *argv, int i, int verbose_level)
void print_help(int argc, std::string *argv, int i, int verbose_level)
int f_override_polynomial
void * get_object(int idx)
int syntax_tree_node_index
void print_symbol_table()
graphics::layered_graph_draw_options * draw_options
int find_symbol(std::string &label)
void print_type(symbol_table_object_type t)
void add_symbol_table_entry(std::string &label, orbiter_symbol_table_entry *Symb, int verbose_level)
int memory_debug_verbose_level
long int nb_calls_to_densenauty
int f_draw_incidence_structure_description
graphics::draw_incidence_structure_description * Draw_incidence_structure_description
orbiter_kernel_system::mem_object_registry * global_mem_object_registry
data_structures::lint_vec * Lint_vec
data_structures::int_vec * Int_vec
std::string override_polynomial
void get_matrix_from_label(std::string &label, int *&v, int &m, int &n)
long int nb_times_action_created
symbol table to store data entries for the orbiter run-time system
void init_classification_of_cubic_surfaces_with_double_sixes(std::string &label, void *p, int verbose_level)
void init_packing_long_orbits(std::string &label, void *PL, int verbose_level)
enum symbol_table_object_type object_type
void init_set(std::string &label, void *SB, int verbose_level)
void init_projective_space(std::string &label, void *p, int verbose_level)
void init_graph(std::string &label, void *Gr, int verbose_level)
void init_geometric_object(std::string &label, geometry::geometric_object_create *COC, int verbose_level)
void init_diophant(std::string &label, void *Dio, int verbose_level)
void init_spread_table(std::string &label, void *P, int verbose_level)
void init(std::string &str_label)
orbiter_symbol_table_entry()
void init_collection(std::string &label, std::string &list_of_objects, int verbose_level)
void init_quartic_curve(std::string &label, void *p, int verbose_level)
void init_linear_group(std::string &label, void *p, int verbose_level)
void init_any_group(std::string &label, void *p, int verbose_level)
enum symbol_table_entry_type type
~orbiter_symbol_table_entry()
void init_large_set_was(std::string &label, void *LSW, int verbose_level)
void init_finite_field(std::string &label, field_theory::finite_field *F, int verbose_level)
void init_design(std::string &label, void *DC, int verbose_level)
void init_packing_was_choose_fixed_points(std::string &label, void *P, int verbose_level)
void init_cubic_surface(std::string &label, void *p, int verbose_level)
void init_combinatorial_objects(std::string &label, data_structures::data_input_stream *IS, int verbose_level)
void init_packing_was(std::string &label, void *P, int verbose_level)
void init_orthogonal_space(std::string &label, void *p, int verbose_level)
void init_vector(std::string &label, void *VB, int verbose_level)
void init_geometry_builder_object(std::string &label, geometry_builder::geometry_builder *GB, int verbose_level)
void init_modified_group(std::string &label, void *p, int verbose_level)
void init_formula(std::string &label, void *p, int verbose_level)
void init_permutation_group(std::string &label, void *p, int verbose_level)
void init_graph_classify(std::string &label, void *GC, int verbose_level)
void init_design_table(std::string &label, void *DT, int verbose_level)
symbol table to store data entries for the orbiter run-time system
void print_symbol_table()
int find_symbol(std::string &str)
std::vector< orbiter_symbol_table_entry > Table
symbol_table_object_type get_object_type(int idx)
void print_type(symbol_table_object_type t)
void * get_object(int idx)
void add_symbol_table_entry(std::string &str, orbiter_symbol_table_entry *Symb, int verbose_level)
interface to system functions
void decode_uchar(char *&p, uchar &a)
void code_int4(char *&p, int_4 i)
void seed_random_generator(int seed)
int random_integer(int p)
int os_seconds_past_1970()
void get_date(std::string &str)
void get_string_from_command_line(std::string &p, int argc, std::string *argv, int &i, int verbose_level)
int os_ticks_per_second()
void seed_random_generator_with_system_time()
void block_swap_chars(char *ptr, int size, int no)
int_4 decode_int4(char *&p)
void code_uchar(char *&p, uchar a)
void print_elapsed_time(std::ostream &ost, int d, int h, int m, int s)
void os_ticks_to_dhms(int ticks, int tps, int &d, int &h, int &m, int &s)
void time_check(std::ostream &ost, int t0)
void time_check_delta(std::ostream &ost, int dt)
to temporarily override a double variable with a new value
override_double(double *p, double value)
to prepare files using a unified file naming scheme
void do_the_work(int verbose_level)
std::string input_mask[1000]
int parse_arguments(int argc, std::string *argv, int verbose_level)
a class to represent arbitrary precision integers
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
the orbiter library for the classification of combinatorial objects