Orbiter 2022
Combinatorial Objects
orbiter_kernel_system.h
Go to the documentation of this file.
1// orbiter_kernel_system.h
2//
3// Anton Betten
4//
5// moved here from galois.h: July 27, 2018
6// started as orbiter: October 23, 2002
7// 2nd version started: December 7, 2003
8// galois started: August 12, 2005
9
10
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_
13
14
15
16
17
18namespace orbiter {
19namespace layer1_foundations {
20namespace orbiter_kernel_system {
21
22
23
24// #############################################################################
25// create_file_description.cpp
26// #############################################################################
27
28
29#define MAX_LINES 100
30
32
33
35public:
37 std::string file_mask;
38 int f_N;
39 int N;
41 std::string lines[MAX_LINES];
44 std::string final_lines[MAX_LINES];
46 std::string command;
51 std::string repeat_mask;
55 std::string read_cases_fname;
61 std::string tasks_line;
62
66 int argc, std::string *argv,
67 int verbose_level);
68 void print();
69
70};
71
72
73// #############################################################################
74// file_io.cpp
75// #############################################################################
76
78
79
80
81
82class file_io {
83public:
84 file_io();
85 ~file_io();
86
87 void concatenate_files(const char *fname_in_mask, int N,
88 const char *fname_out, const char *EOF_marker, int f_title_line,
89 int &cnt_total,
90 std::vector<int> missing_idx,
91 int verbose_level);
92 void concatenate_files_into(const char *fname_in_mask, int N,
93 std::ofstream &fp_out, const char *EOF_marker, int f_title_line,
94 int &cnt_total,
95 std::vector<int> &missing_idx,
96 int verbose_level);
98 std::string &fname, int orbit_at_level,
99 long int *&candidates, int &nb_candidates, int verbose_level);
100 void read_candidates_for_one_orbit_from_file(std::string &prefix,
101 int level, int orbit_at_level, int level_of_candidates_file,
102 long int *S,
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,
109 int &nb_candidates,
110 int verbose_level);
111 int find_orbit_index_in_data_file(std::string &prefix,
112 int level_of_candidates_file, long int *starter,
113 int verbose_level);
114 void write_exact_cover_problem_to_file(int *Inc, int nb_rows,
115 int nb_cols, std::string &fname);
116 void read_solution_file(std::string &fname,
117 int *Inc, int nb_rows, int nb_cols,
118 int *&Solutions, int &sol_length, int &nb_sol,
119 int verbose_level);
121 std::string &fname,
122 int &nb_solutions, int &solution_size,
123 int verbose_level);
124 void count_number_of_solutions_in_file(std::string &fname,
125 int &nb_solutions,
126 int verbose_level);
127 void count_number_of_solutions_in_file_by_case(std::string &fname,
128 int *&nb_solutions, int *&case_nb, int &nb_cases,
129 int verbose_level);
131 int &nb_solutions, int *&Solutions, int &solution_size,
132 int verbose_level);
133 void read_solutions_from_file(std::string &fname,
134 int &nb_solutions, int *&Solutions, int solution_size,
135 int verbose_level);
136 void read_solutions_from_file_size_is_known(std::string &fname,
137 std::vector<std::vector<int> > &Solutions, int solution_size,
138 int verbose_level);
139 void read_solutions_from_file_by_case(std::string &fname,
140 int *nb_solutions, int *case_nb, int nb_cases,
141 int **&Solutions, int solution_size,
142 int verbose_level);
143 void copy_file_to_ostream(std::ostream &ost, const char *fname);
144 void int_vec_write_csv(int *v, int len,
145 std::string &fname, const char *label);
146 void lint_vec_write_csv(long int *v, int len,
147 std::string &fname, const char *label);
148 void int_vecs_write_csv(int *v1, int *v2, int len,
149 std::string &fname,
150 const char *label1, const char *label2);
151 void int_vecs3_write_csv(int *v1, int *v2, int *v3, int len,
152 std::string &fname,
153 const char *label1, const char *label2, const char *label3);
154 void int_vec_array_write_csv(int nb_vecs, int **Vec, int len,
155 std::string &fname, const char **column_label);
156 void lint_vec_array_write_csv(int nb_vecs, long int **Vec, int len,
157 std::string &fname, const char **column_label);
158 void int_matrix_write_csv(std::string &fname, int *M, int m, int n);
159 void lint_matrix_write_csv(std::string &fname, long int *M, int m, int n);
160 void lint_matrix_write_csv_override_headers(std::string &fname, std::string *headers, long int *M, int m, int n);
161 void vector_matrix_write_csv(std::string &fname, std::vector<std::vector<int> > &V);
162 void double_matrix_write_csv(std::string &fname,
163 double *M, int m, int n);
164 void int_matrix_write_csv_with_labels(std::string &fname,
165 int *M, int m, int n, const char **column_label);
166 void lint_matrix_write_csv_with_labels(std::string &fname,
167 long int *M, int m, int n, const char **column_label);
168 void int_matrix_read_csv(std::string &fname, int *&M,
169 int &m, int &n, int verbose_level);
170 void int_matrix_read_csv_no_border(std::string &fname,
171 int *&M, int &m, int &n, int verbose_level);
172 void lint_matrix_read_csv(std::string &fname,
173 long int *&M, int &m, int &n, int verbose_level);
174 void double_matrix_read_csv(std::string &fname, double *&M,
175 int &m, int &n, int verbose_level);
176 void read_column_and_parse(std::string &fname, std::string &col_label,
177 data_structures::set_of_sets *&SoS, int verbose_level);
178 void int_matrix_write_cas_friendly(std::string &fname, int *M, int m, int n);
179 void int_matrix_write_text(std::string &fname,
180 int *M, int m, int n);
181 void lint_matrix_write_text(std::string &fname, long int *M, int m, int n);
182 void int_matrix_read_text(std::string &fname,
183 int *&M, int &m, int &n);
184 void read_dimacs_graph_format(std::string &fname,
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,
188 int *&Casenumbers,
189 int verbose_level);
190 void parse_sets_and_check_sizes_easy(int len, int nb_cases,
191 char **data, long int **&sets);
192 void parse_line(char *line, int &len, long int *&set,
193 char *ago_ascii, char *aut_ascii);
194 int count_number_of_orbits_in_file(std::string &fname, int verbose_level);
195 int count_number_of_lines_in_file(std::string &fname, int verbose_level);
196 int try_to_read_file(std::string &fname, int &nb_cases,
197 char **&data, int verbose_level);
198 void read_and_parse_data_file(std::string &fname, int &nb_cases,
199 char **&data, long int **&sets, int *&set_sizes, int verbose_level);
200 void free_data_fancy(int nb_cases,
201 int *Set_sizes, long int **Sets,
202 char **Ago_ascii, char **Aut_ascii,
203 int *Casenumbers);
204 void read_and_parse_data_file_fancy(std::string &fname,
205 int f_casenumbers,
206 int &nb_cases,
207 int *&Set_sizes, long int **&Sets, char **&Ago_ascii, char **&Aut_ascii,
208 int *&Casenumbers,
209 int verbose_level);
210 void read_set_from_file(std::string &fname,
211 long int *&the_set, int &set_size, int verbose_level);
212 void write_set_to_file(std::string &fname,
213 long int *the_set, int set_size, int verbose_level);
214 void read_set_from_file_lint(std::string &fname,
215 long int *&the_set, int &set_size, int verbose_level);
216 void write_set_to_file_lint(std::string &fname,
217 long int *the_set, int set_size, int verbose_level);
218 void read_set_from_file_int4(std::string &fname,
219 long int *&the_set, int &set_size, int verbose_level);
220 void read_set_from_file_int8(std::string &fname,
221 long int *&the_set, int &set_size, int verbose_level);
222 void write_set_to_file_as_int4(std::string &fname,
223 long int *the_set, int set_size, int verbose_level);
224 void write_set_to_file_as_int8(std::string &fname,
225 long int *the_set, int set_size, int verbose_level);
226 void read_k_th_set_from_file(std::string &fname, int k,
227 int *&the_set, int &set_size, int verbose_level);
228 void write_incidence_matrix_to_file(std::string &fname,
229 int *Inc, int m, int n, int verbose_level);
230 void read_incidence_matrix_from_inc_file(int *&M, int &m, int &n,
231 std::string &inc_file_name, int inc_file_idx, int verbose_level);
232 void read_incidence_file(std::vector<std::vector<int> > &Geos,
233 int &m, int &n, int &nb_flags,
234 std::string &inc_file_name, int verbose_level);
235 void read_incidence_by_row_ranks_file(std::vector<std::vector<int> > &Geos,
236 int &m, int &n, int &r,
237 std::string &inc_file_name, int verbose_level);
239 char *inc_file_name, int verbose_level);
240 long int file_size(std::string &fname);
241 long int file_size(const char *name);
242 void delete_file(const char *fname);
243
244 void fwrite_int4(FILE *fp, int a);
245 int_4 fread_int4(FILE *fp);
246 void fwrite_uchars(FILE *fp, uchar *p, int len);
247 void fread_uchars(FILE *fp, uchar *p, int len);
248
249 void read_numbers_from_file(std::string &fname,
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);
254 void write_decomposition_stack(char *fname, int m, int n,
255 int *v, int *b, int *aij, int verbose_level);
256 void create_file(create_file_description *Descr, int verbose_level);
257 void fix_escape_characters(char *str);
259 int verbose_level);
261 create_file_description *Descr, int verbose_level);
262 int number_of_vertices_in_colored_graph(std::string &fname, int verbose_level);
263 void do_csv_file_select_rows(std::string &fname,
264 std::string &rows_text,
265 int verbose_level);
266 void do_csv_file_split_rows_modulo(std::string &fname,
267 int split_modulo,
268 int verbose_level);
269 void do_csv_file_select_cols(std::string &fname,
270 std::string &cols_text,
271 int verbose_level);
272 void do_csv_file_select_rows_and_cols(std::string &fname,
273 std::string &rows_text, std::string &cols_text,
274 int verbose_level);
276 std::string &csv_fname, std::string &col_label, int verbose_level);
278 std::string &csv_fname, int verbose_level);
279 void do_csv_file_join(
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);
284 void do_csv_file_latex(std::string &fname,
285 int f_produce_latex_header,
286 int nb_lines_per_table,
287 int verbose_level);
288 void read_solutions_and_tally(std::string &fname, int sz, int verbose_level);
289 void save_fibration(std::vector<std::vector<std::pair<int, int> > > &Fibration,
290 std::string &fname, int verbose_level);
291 void save_cumulative_canonical_labeling(std::vector<std::vector<int> > &Cumulative_canonical_labeling,
292 std::string &fname, int verbose_level);
293 void save_cumulative_ago(std::vector<long int> &Cumulative_Ago,
294 std::string &fname, int verbose_level);
295 void save_cumulative_data(std::vector<std::vector<int> > &Cumulative_data,
296 std::string &fname, int verbose_level);
297 void write_characteristic_matrix(std::string &fname,
298 long int *data, int nb_rows, int data_sz, int nb_cols, int verbose_level);
299
300};
301
302
303// #############################################################################
304// file_output.cpp
305// #############################################################################
306
307
309
311public:
312 char fname[1000];
314 std::ofstream *fp;
316
317 file_output();
318 ~file_output();
319 void null();
320 void freeself();
321 void open(const char *fname, void *user_data,
322 int verbose_level);
323 void close();
324 void write_line(int nb, int *data,
325 int verbose_level);
326 void write_EOF(int nb_sol, int verbose_level);
327};
328
329// #############################################################################
330// latex_interface.cpp
331// #############################################################################
332
333
335
336
337
339public:
342 void head_easy(std::ostream& ost);
344 std::ostream& ost, const char *extras);
345 void head_easy_sideways(std::ostream& ost);
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);
352
353 // two functions from DISCRETA1:
354
355 void incma_latex_with_text_labels(std::ostream &fp,
357 int v, int b,
358 int V, int B, int *Vi, int *Bj,
359 int *incma,
360 int f_labelling_points, std::string *point_labels,
361 int f_labelling_blocks, std::string *block_labels,
362 int verbose_level);
363 void incma_latex(std::ostream &fp,
364 int v, int b,
365 int V, int B, int *Vi, int *Bj,
366 int *incma,
367 int verbose_level);
368 void incma_latex_with_labels(std::ostream &fp,
369 int v, int b,
370 int V, int B, int *Vi, int *Bj,
371 int *row_labels_int,
372 int *col_labels_int,
373 int *incma,
374 int verbose_level);
375 void print_01_matrix_tex(std::ostream &ost, int *p, int m, int n);
376 void print_integer_matrix_tex(std::ostream &ost, int *p, int m, int n);
377 void print_lint_matrix_tex(std::ostream &ost,
378 long int *p, int m, int n);
379 void print_longinteger_matrix_tex(std::ostream &ost,
380 ring_theory::longinteger_object *p, int m, int n);
381 void print_integer_matrix_with_labels(std::ostream &ost, int *p,
382 int m, int n, int *row_labels, int *col_labels, int f_tex);
383 void print_lint_matrix_with_labels(std::ostream &ost,
384 long int *p, int m, int n, long int *row_labels, long int *col_labels,
385 int f_tex);
386 void print_integer_matrix_with_standard_labels(std::ostream &ost,
387 int *p, int m, int n, int f_tex);
388 void print_lint_matrix_with_standard_labels(std::ostream &ost,
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);
394 void print_integer_matrix_tex_block_by_block(std::ostream &ost,
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);
405 void print_big_integer_matrix_tex(std::ostream &ost, int *p, int m, int n);
406 void int_vec_print_as_matrix(std::ostream &ost,
407 int *v, int len, int width, int f_tex);
408 void lint_vec_print_as_matrix(std::ostream &ost,
409 long int *v, int len, int width, int f_tex);
410 void int_matrix_print_with_labels_and_partition(std::ostream &ost,
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),
417 void *data,
418 int f_tex);
419 void lint_matrix_print_with_labels_and_partition(std::ostream &ost,
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),
426 void *data,
427 int f_tex);
428 void int_matrix_print_tex(std::ostream &ost, int *p, int m, int n);
429 void lint_matrix_print_tex(std::ostream &ost, long int *p, int m, int n);
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);
434 void int_set_print_tex(std::ostream &ost, int *v, int len);
435 void lint_set_print_tex(std::ostream &ost, long int *v, int len);
436 void lint_set_print_tex_text_mode(std::ostream &ost, long int *v, int len);
437 void print_type_vector_tex(std::ostream &ost, int *v, int len);
438 void int_set_print_masked_tex(std::ostream &ost,
439 int *v, int len, const char *mask_begin, const char *mask_end);
440 void lint_set_print_masked_tex(std::ostream &ost,
441 long int *v, int len,
442 const char *mask_begin,
443 const char *mask_end);
444 void int_set_print_tex_for_inline_text(std::ostream &ost,
445 int *v, int len);
446 void lint_set_print_tex_for_inline_text(std::ostream &ost,
447 long int *v, int len);
448 void latexable_string(std::stringstream &str,
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);
460
461};
462
463// #############################################################################
464// magma_interface.cpp
465// #############################################################################
466
468
470
471public:
472
474
477 void write_permutation_group(std::string &fname_base,
478 int group_order, int *Table, int *gens, int nb_gens,
479 int verbose_level);
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,
484 int verbose_level);
485 void read_permutation_group(std::string &fname,
486 int degree, int *&gens, int &nb_gens, int &go,
487 int verbose_level);
489 std::string &fname_base,
490 int d, int q,
491 int *initial_vector, int **gens, int nb_gens,
492 int &orbit_length,
493 int verbose_level);
495 std::string &fname_base,
496 int d, int q, int k,
497 int *initial_subspace, int **gens, int nb_gens,
498 int &orbit_length,
499 int verbose_level);
500 void run_magma_file(std::string &fname, int verbose_level);
501};
502
503// #############################################################################
504// mem_object_registry_entry.cpp
505// #############################################################################
506
508
509
511public:
513 void *pointer;
515 long int object_n;
517 // needed for objects of type class
518 const char *extra_type_info;
519 const char *source_file;
521
524 void null();
525 void set_type_from_string(char *str);
526 void print_type(std::ostream &ost);
527 int size_of();
528 void print(int line);
529 void print_csv(std::ostream &ost, int line);
530};
531
532
533// #############################################################################
534// mem_object_registry.cpp:
535// #############################################################################
536
537
538
539
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
555
556
557
559
560
561
563public:
567
571 // entries are sorted by
572 // the value of the pointer
573
575 // total number of allocations
577 // total number of deletions
579 // increments with every allocate and every delete
580
582 // do not complain about duplicate entries
584 // do not remove entries when deleting memory
585
588 void init(int verbose_level);
589 void accumulate_and_ignore_duplicates(int verbose_level);
590 void allocate(int N, int verbose_level);
592 int automatic_dump_interval, const char *fname_mask,
593 int verbose_level);
594 void automatic_dump();
595 void manual_dump();
596 void manual_dump_with_file_name(const char *fname);
597 void dump();
598 void dump_to_csv_file(const char *fname);
599 int *allocate_int(long int n, const char *file, int line);
600 void free_int(int *p, const char *file, int line);
601 int **allocate_pint(long int n, 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);
607 int ***allocate_ppint(long int n, const char *file, int line);
608 void free_ppint(int ***p, const char *file, int line);
609 long int ***allocate_pplint(long int n, const char *file, int line);
610 void free_pplint(long int ***p, const char *file, int line);
611 char *allocate_char(long int n, const char *file, int line);
612 void free_char(char *p, const char *file, int line);
613 uchar *allocate_uchar(long int n, const char *file, int line);
614 void free_uchar(uchar *p, const char *file, int line);
615 char **allocate_pchar(long int n, const char *file, int line);
616 void free_pchar(char **p, const char *file, int line);
617 uchar **allocate_puchar(long int n, const char *file, int line);
618 void free_puchar(uchar **p, const char *file, int line);
619 void **allocate_pvoid(long int n, const char *file, int line);
620 void free_pvoid(void **p, const char *file, int line);
621 void *allocate_OBJECTS(void *p, long int n, std::size_t size_of,
622 const char *extra_type_info, const char *file, int line);
623 void free_OBJECTS(void *p, const char *file, int line);
624 void *allocate_OBJECT(void *p, std::size_t size_of,
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);
628 void insert_at(int idx);
629 void add_to_registry(void *pointer,
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,
633 int verbose_level);
634 void delete_from_registry(void *pointer, int verbose_level);
635 void sort_by_size(int verbose_level);
636 void sort_by_location_and_get_frequency(int verbose_level);
637 void sort_by_type(int verbose_level);
638 void sort_by_location(int verbose_level);
639};
640
641
642
643// #############################################################################
644// memory_object.cpp
645// #############################################################################
646
648
649
650
651
653public:
656 void null();
657 void freeself();
658
659 char *data;
660 long int alloc_length;
661 // maintained by alloc()
662 long int used_length;
663 long int cur_pointer;
664
665
666 char & s_i(int i) { return data[i]; };
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);
671 void write_char(char c);
672 void read_char(char *c);
673 void write_string(const char *p);
674 void read_string(char *&p);
675 void write_double(double f);
676 void read_double(double *f);
677 void write_lint(long int i);
678 void read_lint(long int *i);
679 void write_int(int i);
680 void read_int(int *i);
681 void read_file(const char *fname, int verbose_level);
682 void write_file(const char *fname, int verbose_level);
683 int multiplicity_of_character(char c);
684};
685
686// #############################################################################
687// orbiter_data_file.cpp
688// #############################################################################
689
690
691
693
694
695
697public:
699 long int **sets;
701 char **Ago_ascii;
702 char **Aut_ascii;
704
707 void null();
708 void freeself();
709 void load(std::string &fname, int verbose_level);
710};
711
712
713// #############################################################################
714// orbiter_session.cpp
715// #############################################################################
716
717
720
721
723
724
726
727public:
728
730
731 int t0;
732
735
736
739
741
744
747
750
752 std::string orbiter_path;
753
755 std::string magma_path;
756
759 std::string fork_variable;
760 std::string fork_logfile_mask;
764
766
771
774
776
779
782 void print_help(int argc,
783 std::string *argv, int i, int verbose_level);
784 int recognize_keyword(int argc,
785 std::string *argv, int i, int verbose_level);
786 int read_arguments(int argc,
787 std::string *argv, int i0);
788 void fork(int argc, std::string *argv, int verbose_level);
789
790 void *get_object(int idx);
792 int find_symbol(std::string &label);
793 void get_vector_from_label(std::string &label, int *&v, int &sz, int verbose_level);
794 void get_int_vector_from_label(std::string &label, int *&v, int &sz, int verbose_level);
795 void get_lint_vector_from_label(std::string &label, long int *&v, int &sz, int verbose_level);
796 void get_matrix_from_label(std::string &label,
797 int *&v, int &m, int &n);
798 void find_symbols(std::vector<std::string> &Labels, int *&Idx);
799 void print_symbol_table();
800 void add_symbol_table_entry(std::string &label,
802 void get_lint_vec(std::string &label,
803 long int *&the_set, int &set_size, int verbose_level);
806 void start_memory_debug();
807 void stop_memory_debug();
808
809};
810
811
812// #############################################################################
813// orbiter_symbol_table_entry.cpp
814// #############################################################################
815
816
822};
823
824
825
827
828
830public:
831 std::string label;
834 int *vec;
836 std::string str;
837 void *ptr;
838
841 void freeself();
842 void init(std::string &str_label);
843 void init_finite_field(std::string &label,
844 field_theory::finite_field *F, int verbose_level);
845 void init_any_group(std::string &label,
846 void *p, int verbose_level);
847 void init_linear_group(std::string &label,
848 void *p, int verbose_level);
849 void init_permutation_group(std::string &label,
850 void *p, int verbose_level);
851 void init_modified_group(std::string &label,
852 void *p, int verbose_level);
853 void init_projective_space(std::string &label,
854 void *p, int verbose_level);
855 void init_orthogonal_space(std::string &label,
856 void *p, int verbose_level);
857 void init_formula(std::string &label,
858 void *p, int verbose_level);
859 void init_cubic_surface(std::string &label,
860 void *p, int verbose_level);
861 void init_quartic_curve(std::string &label,
862 void *p, int verbose_level);
864 std::string &label,
865 void *p, int verbose_level);
866 void init_collection(std::string &label,
867 std::string &list_of_objects, int verbose_level);
868 void init_geometric_object(std::string &label,
869 geometry::geometric_object_create *COC, int verbose_level);
870 void init_graph(std::string &label,
871 void *Gr, int verbose_level);
872 void init_spread_table(std::string &label,
873 void *P, int verbose_level);
874 void init_packing_was(std::string &label,
875 void *P, int verbose_level);
877 void *P, int verbose_level);
878 void init_packing_long_orbits(std::string &label,
879 void *PL, int verbose_level);
880 void init_graph_classify(std::string &label,
881 void *GC, int verbose_level);
882 void init_diophant(std::string &label,
883 void *Dio, int verbose_level);
884 void init_design(std::string &label,
885 void *DC, int verbose_level);
886 void init_design_table(std::string &label,
887 void *DT, int verbose_level);
888 void init_large_set_was(std::string &label,
889 void *LSW, int verbose_level);
890 void init_set(std::string &label,
891 void *SB, int verbose_level);
892 void init_vector(std::string &label,
893 void *VB, int verbose_level);
894 void init_combinatorial_objects(std::string &label,
895 data_structures::data_input_stream *IS, int verbose_level);
896 void init_geometry_builder_object(std::string &label,
897 geometry_builder::geometry_builder *GB, int verbose_level);
898 void print();
899};
900
901
902// #############################################################################
903// orbiter_symbol_table.cpp
904// #############################################################################
905
906
907
908
910
911
913public:
914 std::vector<orbiter_symbol_table_entry> Table;
915
918 int find_symbol(std::string &str);
919 void add_symbol_table_entry(std::string &str,
920 orbiter_symbol_table_entry *Symb, int verbose_level);
921 void print_symbol_table();
922 void *get_object(int idx);
925
926};
927
928
929
930
931// #############################################################################
932// os_interface.cpp
933// #############################################################################
934
935
937
939public:
940
941 void runtime(long *l);
942 int os_memory_usage();
943 int os_ticks();
944 int os_ticks_system();
946 void os_ticks_to_dhms(int ticks, int tps,
947 int &d, int &h, int &m, int &s);
948 void time_check_delta(std::ostream &ost, int dt);
949 void print_elapsed_time(std::ostream &ost, int d, int h, int m, int s);
950 void time_check(std::ostream &ost, int t0);
951 int delta_time(int t0);
953 void seed_random_generator(int seed);
954 int random_integer(int p);
956 void get_string_from_command_line(std::string &p, int argc, std::string *argv,
957 int &i, int verbose_level);
958 void test_swap();
959 void block_swap_chars(char *ptr, int size, int no);
960 void code_int4(char *&p, int_4 i);
961 int_4 decode_int4(char *&p);
962 void code_uchar(char *&p, uchar a);
963 void decode_uchar(char *&p, uchar &a);
964 void get_date(std::string &str);
965 void test_typedefs();
966
967};
968
969
970// #############################################################################
971// override_double.cpp
972// #############################################################################
973
974
976
978public:
979 double *p;
981 double new_value;
982
983 override_double(double *p, double value);
985};
986
987
988// #############################################################################
989// prepare_frames.cpp
990// #############################################################################
991
992
994
996public:
997
999 int input_first[1000];
1000 int input_len[1000];
1001 std::string input_mask[1000];
1002 int f_o;
1003 std::string output_mask;
1007 int step;
1008
1011 int parse_arguments(int argc, std::string *argv, int verbose_level);
1012 void print();
1013 void print_item(int i);
1014 void do_the_work(int verbose_level);
1015};
1016
1017
1018
1019
1020}}}
1021
1022
1023
1024
1025#endif /* ORBITER_SRC_LIB_FOUNDATIONS_IO_AND_OS_IO_AND_OS_H_ */
1026
1027
1028
1029
input data for classification of geometric objects from the command line
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
Definition: geometry.h:568
options for drawing an object of type layered_graph
Definition: graphics.h:457
int count_number_of_lines_in_file(std::string &fname, int verbose_level)
Definition: file_io.cpp:1995
void int_vec_array_write_csv(int nb_vecs, int **Vec, int len, std::string &fname, const char **column_label)
Definition: file_io.cpp:1240
void parse_sets_and_check_sizes_easy(int len, int nb_cases, char **data, long int **&sets)
Definition: file_io.cpp:2230
void read_set_from_file_int4(std::string &fname, long int *&the_set, int &set_size, int verbose_level)
Definition: file_io.cpp:2544
void read_k_th_set_from_file(std::string &fname, int k, int *&the_set, int &set_size, int verbose_level)
Definition: file_io.cpp:2722
void read_solutions_from_file_and_get_solution_size(std::string &fname, int &nb_solutions, int *&Solutions, int &solution_size, int verbose_level)
Definition: file_io.cpp:831
void count_number_of_solutions_in_file_and_get_solution_size(std::string &fname, int &nb_solutions, int &solution_size, int verbose_level)
Definition: file_io.cpp:586
void int_matrix_write_csv(std::string &fname, int *M, int m, int n)
Definition: file_io.cpp:1300
int count_number_of_orbits_in_file(std::string &fname, int verbose_level)
Definition: file_io.cpp:1918
void create_files_list_of_cases(data_structures::spreadsheet *S, create_file_description *Descr, int verbose_level)
Definition: file_io.cpp:3664
void save_fibration(std::vector< std::vector< std::pair< int, int > > > &Fibration, std::string &fname, int verbose_level)
Definition: file_io.cpp:4447
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)
Definition: file_io.cpp:1223
void do_csv_file_select_rows(std::string &fname, std::string &rows_text, int verbose_level)
Definition: file_io.cpp:3832
void do_csv_file_sort_each_row(std::string &csv_fname, int verbose_level)
Definition: file_io.cpp:4129
void write_set_to_file_lint(std::string &fname, long int *the_set, int set_size, int verbose_level)
Definition: file_io.cpp:2513
void int_matrix_read_csv_no_border(std::string &fname, int *&M, int &m, int &n, int verbose_level)
Definition: file_io.cpp:1522
void save_cumulative_canonical_labeling(std::vector< std::vector< int > > &Cumulative_canonical_labeling, std::string &fname, int verbose_level)
Definition: file_io.cpp:4520
void int_vec_write_csv(int *v, int len, std::string &fname, const char *label)
Definition: file_io.cpp:1175
void lint_matrix_write_csv(std::string &fname, long int *M, int m, int n)
Definition: file_io.cpp:1323
void int_matrix_write_text(std::string &fname, int *M, int m, int n)
Definition: file_io.cpp:1717
void int_vecs_write_csv(int *v1, int *v2, int len, std::string &fname, const char *label1, const char *label2)
Definition: file_io.cpp:1207
void do_csv_file_select_cols(std::string &fname, std::string &cols_text, int verbose_level)
Definition: file_io.cpp:3932
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)
Definition: file_io.cpp:2304
void int_matrix_read_csv(std::string &fname, int *&M, int &m, int &n, int verbose_level)
Definition: file_io.cpp:1477
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)
Definition: file_io.cpp:2988
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)
Definition: file_io.cpp:113
int inc_file_get_number_of_geometries(char *inc_file_name, int verbose_level)
Definition: file_io.cpp:3082
void count_number_of_solutions_in_file_by_case(std::string &fname, int *&nb_solutions, int *&case_nb, int &nb_cases, int verbose_level)
Definition: file_io.cpp:731
void copy_file_to_ostream(std::ostream &ost, const char *fname)
Definition: file_io.cpp:1140
void vector_matrix_write_csv(std::string &fname, std::vector< std::vector< int > > &V)
Definition: file_io.cpp:1369
void lint_matrix_write_csv_override_headers(std::string &fname, std::string *headers, long int *M, int m, int n)
Definition: file_io.cpp:1346
void poset_classification_read_candidates_of_orbit(std::string &fname, int orbit_at_level, long int *&candidates, int &nb_candidates, int verbose_level)
Definition: file_io.cpp:191
void write_set_to_file_as_int8(std::string &fname, long int *the_set, int set_size, int verbose_level)
Definition: file_io.cpp:2676
void read_column_and_parse(std::string &fname, std::string &col_label, data_structures::set_of_sets *&SoS, int verbose_level)
Definition: file_io.cpp:1633
void double_matrix_write_csv(std::string &fname, double *M, int m, int n)
Definition: file_io.cpp:1405
void do_csv_file_split_rows_modulo(std::string &fname, int split_modulo, int verbose_level)
Definition: file_io.cpp:3881
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)
Definition: file_io.cpp:1825
void read_set_from_file_lint(std::string &fname, long int *&the_set, int &set_size, int verbose_level)
Definition: file_io.cpp:2465
void free_data_fancy(int nb_cases, int *Set_sizes, long int **Sets, char **Ago_ascii, char **Aut_ascii, int *Casenumbers)
Definition: file_io.cpp:2270
void read_dimacs_graph_format(std::string &fname, int &nb_V, std::vector< std::vector< int > > &Edges, int verbose_level)
Definition: file_io.cpp:1773
void int_matrix_write_csv_with_labels(std::string &fname, int *M, int m, int n, const char **column_label)
Definition: file_io.cpp:1429
void int_matrix_write_cas_friendly(std::string &fname, int *M, int m, int n)
Definition: file_io.cpp:1692
void do_csv_file_latex(std::string &fname, int f_produce_latex_header, int nb_lines_per_table, int verbose_level)
Definition: file_io.cpp:4318
void lint_matrix_read_csv(std::string &fname, long int *&M, int &m, int &n, int verbose_level)
Definition: file_io.cpp:1558
void write_exact_cover_problem_to_file(int *Inc, int nb_rows, int nb_cols, std::string &fname)
Definition: file_io.cpp:437
void do_csv_file_concatenate(std::vector< std::string > &fname, std::string &fname_out, int verbose_level)
Definition: file_io.cpp:4263
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)
Definition: file_io.cpp:38
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)
Definition: file_io.cpp:467
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)
Definition: file_io.cpp:2900
void lint_matrix_write_text(std::string &fname, long int *M, int m, int n)
Definition: file_io.cpp:1734
void write_decomposition_stack(char *fname, int m, int n, int *v, int *b, int *aij, int verbose_level)
Definition: file_io.cpp:3378
void do_csv_file_join(std::vector< std::string > &csv_file_join_fname, std::vector< std::string > &csv_file_join_identifier, int verbose_level)
Definition: file_io.cpp:4162
void write_incidence_matrix_to_file(std::string &fname, int *Inc, int m, int n, int verbose_level)
Definition: file_io.cpp:2764
void parse_line(char *line, int &len, long int *&set, char *ago_ascii, char *aut_ascii)
Definition: file_io.cpp:1893
int try_to_read_file(std::string &fname, int &nb_cases, char **&data, int verbose_level)
Definition: file_io.cpp:2037
void read_ascii_set_of_sets_constant_size(std::string &fname_ascii, int *&Sets, int &nb_sets, int &set_size, int verbose_level)
Definition: file_io.cpp:3290
void read_solutions_from_file(std::string &fname, int &nb_solutions, int *&Solutions, int solution_size, int verbose_level)
Definition: file_io.cpp:907
void do_csv_file_select_rows_and_cols(std::string &fname, std::string &rows_text, std::string &cols_text, int verbose_level)
Definition: file_io.cpp:4005
void lint_vec_write_csv(long int *v, int len, std::string &fname, const char *label)
Definition: file_io.cpp:1191
void int_matrix_read_text(std::string &fname, int *&M, int &m, int &n)
Definition: file_io.cpp:1751
void read_and_parse_data_file(std::string &fname, int &nb_cases, char **&data, long int **&sets, int *&set_sizes, int verbose_level)
Definition: file_io.cpp:2167
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)
Definition: file_io.cpp:254
void lint_matrix_write_csv_with_labels(std::string &fname, long int *M, int m, int n, const char **column_label)
Definition: file_io.cpp:1453
void lint_vec_array_write_csv(int nb_vecs, long int **Vec, int len, std::string &fname, const char **column_label)
Definition: file_io.cpp:1270
void save_cumulative_data(std::vector< std::vector< int > > &Cumulative_data, std::string &fname, int verbose_level)
Definition: file_io.cpp:4605
void read_solutions_and_tally(std::string &fname, int sz, int verbose_level)
Definition: file_io.cpp:4397
int number_of_vertices_in_colored_graph(std::string &fname, int verbose_level)
Definition: file_io.cpp:3823
void save_cumulative_ago(std::vector< long int > &Cumulative_Ago, std::string &fname, int verbose_level)
Definition: file_io.cpp:4561
void count_number_of_solutions_in_file(std::string &fname, int &nb_solutions, int verbose_level)
Definition: file_io.cpp:671
void write_set_to_file_as_int4(std::string &fname, long int *the_set, int set_size, int verbose_level)
Definition: file_io.cpp:2629
void double_matrix_read_csv(std::string &fname, double *&M, int &m, int &n, int verbose_level)
Definition: file_io.cpp:1595
void read_numbers_from_file(std::string &fname, int *&the_set, int &set_size, int verbose_level)
Definition: file_io.cpp:3241
void create_file(create_file_description *Descr, int verbose_level)
Definition: file_io.cpp:3417
void write_characteristic_matrix(std::string &fname, long int *data, int nb_rows, int data_sz, int nb_cols, int verbose_level)
Definition: file_io.cpp:4644
void do_csv_file_extract_column_to_txt(std::string &csv_fname, std::string &col_label, int verbose_level)
Definition: file_io.cpp:4066
void create_files(create_file_description *Descr, int verbose_level)
Definition: file_io.cpp:3575
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)
Definition: file_io.cpp:2802
void read_solutions_from_file_size_is_known(std::string &fname, std::vector< std::vector< int > > &Solutions, int solution_size, int verbose_level)
Definition: file_io.cpp:981
void read_set_from_file(std::string &fname, long int *&the_set, int &set_size, int verbose_level)
Definition: file_io.cpp:2374
void write_set_to_file(std::string &fname, long int *the_set, int set_size, int verbose_level)
Definition: file_io.cpp:2434
int find_orbit_index_in_data_file(std::string &prefix, int level_of_candidates_file, long int *starter, int verbose_level)
Definition: file_io.cpp:345
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)
Definition: file_io.cpp:1037
void read_set_from_file_int8(std::string &fname, long int *&the_set, int &set_size, int verbose_level)
Definition: file_io.cpp:2586
a wrapper class for an ofstream which allows to store extra data
void open(const char *fname, void *user_data, int verbose_level)
Definition: file_output.cpp:42
void write_line(int nb, int *data, int verbose_level)
Definition: file_output.cpp:72
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 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_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 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 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 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)
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)
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)
const char * source_file
void print(int line)
int object_size_of
void * pointer
mem_object_registry_entry()
int size_of()
int time_stamp
void null()
int object_type
~mem_object_registry_entry()
long int object_n
void print_csv(std::ostream &ost, int line)
int source_line
const char * extra_type_info
void print_type(std::ostream &ost)
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)
long int * allocate_lint(long int n, const char *file, int line)
long int *** allocate_pplint(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)
void set_automatic_dump(int automatic_dump_interval, const char *fname_mask, int verbose_level)
void * allocate_OBJECT(void *p, std::size_t size_of, const char *extra_type_info, const char *file, int line)
void init(long int length, char *initial_data, int verbose_level)
void append(long int length, char *d, int verbose_level)
void realloc(long int &new_length, int verbose_level)
The orbiter session is responsible for the command line interface and the program execution.
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)
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)
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)
void add_symbol_table_entry(std::string &label, orbiter_symbol_table_entry *Symb, int verbose_level)
graphics::draw_incidence_structure_description * Draw_incidence_structure_description
orbiter_kernel_system::mem_object_registry * global_mem_object_registry
void get_matrix_from_label(std::string &label, int *&v, int &m, int &n)
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)
int * vec
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 freeself()
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)
int vec_len
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)
std::string label
void print()
std::string str
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 * ptr
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 add_symbol_table_entry(std::string &str, orbiter_symbol_table_entry *Symb, int verbose_level)
void get_string_from_command_line(std::string &p, int argc, std::string *argv, int &i, int verbose_level)
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)
to temporarily override a double variable with a new value
to prepare files using a unified file naming scheme
int parse_arguments(int argc, std::string *argv, int verbose_level)
a class to represent arbitrary precision integers
Definition: ring_theory.h:366
unsigned char uchar
Definition: foundations.h:204
int int_4
Definition: foundations.h:181
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
the orbiter library for the classification of combinatorial objects
#define MAX_LINES