11#ifndef ORBITER_SRC_LIB_FOUNDATIONS_DATA_STRUCTURES_DATA_STRUCTURES_H_
12#define ORBITER_SRC_LIB_FOUNDATIONS_DATA_STRUCTURES_DATA_STRUCTURES_H_
17namespace layer1_foundations {
18namespace data_structures {
45 int nb_rows,
int nb_cols,
int nb_needed,
46 int f_has_Rhs,
int *Rhs,
47 long int *&Solutions,
int &nb_sol,
long int &nb_backtrack,
int &dt,
70 void init(
int m,
int n,
int verbose_level);
75 int *perms,
unsigned int *PG_ranks,
int verbose_level);
78 int s_ij(
int i,
int j);
79 void m_ij(
int i,
int j,
int a);
96 long int allocated_length;
107 void m_i(
long int i,
int a);
110 void save(std::ofstream &fp);
111 void load(std::ifstream &fp);
175 int search(
uchar *data,
int &idx,
int verbose_level);
177 void *extra_data,
int &f_found,
int &idx,
int verbose_level);
180 void *extra_data,
int idx,
int verbose_level);
186 void (*encode_function)(
void *extra_data,
187 long int *&encoding,
int &encoding_sz,
void *global_data),
188 void (*get_group_order_or_NULL)(
void *extra_data,
211 std::vector<bitvector *>
B;
213 std::vector<long int>
Ago;
232 int &f_accept,
int verbose_level);
234 int &f_found,
int &idx,
272 void read(std::string &
fname,
int f_casenumbers,
int verbose_level);
273 void read_candidates(std::string &candidates_fname,
int verbose_level);
307 std::string &a, std::string &b,
int q);
310 int N_points,
int b,
int k,
int partition_class_size);
312 int v,
int b,
int f);
315 int v,
int b,
int r);
317 int v,
int b,
int f);
319 int v,
int b,
int r);
321 int nb_cases, std::string &cases_fname);
340 std::vector<data_input_stream_description_element>
Input;
425 void init(
int n,
int verbose_level);
429 void swap(
int pos,
int a);
444 void save(std::string &fname,
int verbose_level);
469 int &
s_ij(
int i,
int j);
489 void add(
int *v1,
int *v2,
int *w,
int len);
490 void add3(
int *v1,
int *v2,
int *v3,
int *w,
int len);
491 void apply(
int *from,
int *through,
int *to,
int len);
492 void apply_lint(
int *from,
long int *through,
long int *to,
int len);
494 int *subset,
int sz,
int &value);
500 void zero(
int *v,
long int len);
501 int is_zero(
int *v,
long int len);
502 void mone(
int *v,
long int len);
503 void copy(
int *from,
int *to,
long int len);
504 void copy_to_lint(
int *from,
long int *to,
long int len);
505 void swap(
int *v1,
int *v2,
long int len);
511 void complement(
int *v,
int *w,
int n,
int k);
513 void init5(
int *v,
int a0,
int a1,
int a2,
int a3,
int a4);
516 void copy(
int len,
int *from,
int *to);
519 void vec_print(std::vector<std::vector<int> > &p);
520 void vec_print(std::vector<std::vector<int> > &p,
int w);
524 int len_v,
int *&val,
int *&mult,
int &len);
525 void print(std::ostream &ost, std::vector<int> &v);
526 void print(std::ostream &ost,
int *v,
int len);
527 void print_str(std::stringstream &ost,
int *v,
int len);
529 void print_as_table(std::ostream &ost,
int *v,
int len,
int width);
530 void print_fully(std::ostream &ost, std::vector<int> &v);
531 void print_fully(std::ostream &ost,
int *v,
int len);
532 void print_dense(std::ostream &ost,
int *v,
int len);
533 void print_Cpp(std::ostream &ost,
int *v,
int len);
534 void print_GAP(std::ostream &ost,
int *v,
int len);
537 int *v,
int len,
int f_backwards);
538 void scan(std::string &s,
int *&v,
int &len);
539 void scan(
const char *s,
int *&v,
int &len);
543 void print(
int *v,
int len);
545 int *p,
int m,
int n);
547 int *p,
int m,
int n,
int dim_n,
int w);
549 int *p,
int m,
int n);
551 int k,
int *A,
int *B,
int *C,
int *D);
553 int k,
int n,
int pivot);
562 int *val,
int *mult,
int len);
563 void set_print(std::ostream &ost,
int *v,
int len);
565 int hash(
int *v,
int len,
int bit_length);
567 void transpose(
int *M,
int m,
int n,
int *Mt);
596 long int &
s_i(
int i);
598 void print(std::ostream &ost);
600 int search(
int a,
int &idx);
631 void apply(
long int *from,
long int *through,
long int *to,
int len);
634 void zero(
long int *v,
long int len);
635 void mone(
long int *v,
long int len);
636 void copy(
long int *from,
long int *to,
long int len);
637 void copy_to_int(
long int *from,
int *to,
long int len);
638 void complement(
long int *v,
long int *w,
int n,
int k);
639 long int minimum(
long int *v,
int len);
640 long int maximum(
long int *v,
int len);
642 long int *p,
int m,
int n,
int dim_n,
int w);
644 void set_print(std::ostream &ost,
long int *v,
int len);
645 void print(std::ostream &ost,
long int *v,
int len);
646 void print(std::ostream &ost, std::vector<long int> &v);
647 void print_as_table(std::ostream &ost,
long int *v,
int len,
int width);
649 void print_fully(std::ostream &ost,
long int *v,
int len);
650 void print_fully(std::ostream &ost, std::vector<long int> &v);
654 void scan(std::string &s,
long int *&v,
int &len);
655 void scan(
const char *s,
long int *&v,
int &len);
732 void (*
elt_print)(
void *p,
void *data, std::ostream &ost);
739 void (*
elt_print)(
void *p,
void *data, std::ostream &ost),
824 std::ostream&
print(std::ostream& ost);
828 void get_cell(
int i,
int *&cell,
int &cell_sz,
int verbose_level);
829 void get_cell_lint(
int i,
long int *&cell,
int &cell_sz,
int verbose_level);
833 std::string &fname,
int verbose_level);
835 std::string &fname,
int verbose_level);
840 int f_front,
int verbose_level);
842 int f_front,
int verbose_level);
844 int f_front,
int verbose_level);
845 void split_cell(
int *set,
int set_size,
int verbose_level);
853 int *&row_classes,
int *&row_class_inv,
855 int *&col_classes,
int *&col_class_inv,
859 int *row_classes,
int nb_row_classes,
860 int *col_classes,
int nb_col_classes,
861 int *row_perm,
int *row_perm_inv,
862 int *col_perm,
int *col_perm_inv);
865 int *col_classes,
int &nb_col_classes,
869 int *V,
int nb_V,
int *B,
int nb_B,
874 int level,
int verbose_level);
878 int *row_classes,
int nb_row_classes,
879 int *col_classes,
int nb_col_classes);
881 int *row_classes,
int nb_row_classes,
882 int *col_classes,
int nb_col_classes,
883 int *scheme,
int marker1,
int marker2);
885 int *row_classes,
int nb_row_classes,
886 int *col_classes,
int nb_col_classes,
889 std::ostream &ost,
int f_enter_math_mode,
890 int *row_classes,
int nb_row_classes,
891 int *col_classes,
int nb_col_classes,
892 int *row_scheme,
int *col_scheme,
int f_print_subscripts);
894 int *row_classes,
int nb_row_classes,
895 int *col_classes,
int nb_col_classes,
896 int *row_scheme,
int *col_scheme,
int f_print_subscripts);
898 std::ostream &ost,
int f_enter_math_mode,
899 int *row_classes,
int nb_row_classes,
900 int *col_classes,
int nb_col_classes,
901 int *row_scheme,
int f_print_subscripts);
903 std::ostream &ost,
int f_enter_math_mode,
904 int *row_classes,
int nb_row_classes,
905 int *col_classes,
int nb_col_classes,
906 int *col_scheme,
int f_print_subscripts);
908 std::ostream &ost,
int f_enter_math_mode,
909 int *row_classes,
int nb_row_classes,
910 int *col_classes,
int nb_col_classes,
911 int f_print_subscripts);
918 int length,
int radix,
int verbose_level);
920 int *C,
int length,
int radix,
int mask,
int verbose_level);
921 void swap_ij(
int *perm,
int *perm_inv,
int i,
int j);
924 int *orbit_first,
int *orbit_len,
int *orbit,
966 int argc, std::string *argv,
1020 int nb_sets,
int verbose_level);
1022 int nb_sets,
long int **Pts,
int *Sz,
int verbose_level);
1024 int nb_sets,
int *Sz,
int verbose_level);
1026 long int *set,
int sz,
int verbose_level);
1055 int nb_sets,
int verbose_level);
1059 long int **Pts,
long int *Sz,
int verbose_level);
1061 int nb_sets,
long int **Pts,
int *Sz,
int verbose_level);
1063 int nb_sets,
long int *Sz,
int verbose_level);
1065 int nb_sets,
int *Sz,
int verbose_level);
1067 int nb_sets,
int constant_size,
int verbose_level);
1069 std::string &fname,
int verbose_level);
1071 std::string &fname,
int verbose_level);
1073 std::string &fname,
int verbose_level);
1074 void init_set(
int idx_of_set,
int *set,
int sz,
1079 long int &
element(
int i,
int j);
1091 int *&Idx,
int verbose_level);
1093 int *&intersection_type,
int &highest_intersection_number,
1105 int is_member(
int i,
int a,
int verbose_level);
1115 int f_make_heading,
int verbose_level);
1122 void compute_orbits(
int &nb_orbits,
int *&orbit,
int *&orbit_inv,
1123 int *&orbit_first,
int *&orbit_len,
1125 void *compute_image_data,
int elt_idx,
int gen_idx,
1126 int &idx_of_image,
int verbose_level),
1127 void *compute_image_data,
1133 int (*evaluate_function)(
int a,
int i,
int j,
void *evaluate_data,
int verbose_level),
1134 void *evaluate_data,
1156 long int *v,
int len,
long int *A,
int A_sz,
long int *Idx);
1159 long int *v,
int len,
long int *A,
int A_sz,
long int *Idx);
1168 long int *v1,
int len1,
long int *v2,
int len2);
1171 int *v2,
int len2,
int &idx1,
int &idx2);
1173 long int *v2,
int len2,
int &idx1,
int &idx2);
1175 int &used_length,
int &alloc_length,
int a,
int verbose_level);
1177 int &used_length,
int &alloc_length,
int a,
int verbose_level);
1179 int &used_length,
int &alloc_length,
long int a,
1188 int *subset,
int *rearranged_set,
int verbose_level);
1190 long int *set,
int *subset,
long int *rearranged_set,
1193 long int *set,
long int *subset,
long int *rearranged_set,
1198 int *&v3,
int &len3);
1200 long int *v2,
int len2,
long int *&v3,
int &len3);
1202 int *v2,
int len2,
int *v3,
int &len3);
1204 long int *v2,
int len2,
long int *v3,
int &len3);
1206 int *perm_inv,
int f_increasingly);
1209 int left,
int right);
1211 int (*compare_func)(
long int a,
long int b),
int left,
int right);
1217 int (*compare_func)(
void *a,
void *b,
void *data),
void *data);
1219 int (*compare_func)(
void *a,
void *b,
void *data),
void *data);
1220 int vec_search(
void **v,
int (*compare_func)(
void *a,
void *b,
void *data),
1221 void *data_for_compare,
1222 int len,
void *a,
int &idx,
int verbose_level);
1224 int (*compare_func)(
void *vec,
void *a,
int b,
void *data_for_compare),
1225 void *data_for_compare,
1226 int len,
void *a,
int &idx,
int verbose_level);
1235 int &idx,
int verbose_level);
1241 long int a,
int &idx,
int verbose_level);
1251 int *&val,
int *&mult,
int &nb_values);
1253 int *&sorting_perm,
int *&sorting_perm_inv,
1254 int &nb_types,
int *&type_first,
int *&type_len);
1256 int *the_vec,
int *the_vec_sorted,
1257 int *sorting_perm,
int *sorting_perm_inv,
1258 int &nb_types,
int *type_first,
int *type_len);
1260 int &nb_types,
int *type_first,
int *type_len);
1263 int f_backwards,
int *the_vec_sorted,
1264 int nb_types,
int *type_first,
int *type_len);
1266 int f_backwards,
int *the_vec_sorted,
1267 int nb_types,
int *type_first,
int *type_len);
1269 int *the_vec_sorted,
1270 int nb_types,
int *type_first,
int *type_len);
1272 int *the_vec_sorted,
1273 int nb_types,
int *type_first,
int *type_len);
1275 int f_backwards,
int *the_vec_sorted,
1276 int nb_types,
int *type_first,
int *type_len);
1277 void Heapsort(
void *v,
int len,
int entry_size_in_chars,
1278 int (*compare_func)(
void *v1,
void *v2));
1280 int (*compare_func)(
void *data,
int i,
int j,
void *extra_data),
1281 void (*swap_func)(
void *data,
int i,
int j,
void *extra_data),
1284 int (*compare_func)(
void *data,
1285 int i,
int j,
void *extra_data),
1286 void (*swap_func)(
void *data,
1287 int i,
int j,
void *extra_data),
1289 int search_general(
void *data,
int len,
void *search_object,
int &idx,
1290 int (*compare_func)(
void *data,
int i,
void *search_object,
1292 void *extra_data,
int verbose_level);
1306 int (*compare_func)(
void *v1,
void *v2));
1308 int (*compare_func)(
void *data,
int i,
int j,
void *extra_data),
1309 void (*swap_func)(
void *data,
int i,
int j,
void *extra_data),
1312 int (*compare_func)(
void *data,
int i,
int j,
void *extra_data),
1313 void (*swap_func)(
void *data,
int i,
int j,
void *extra_data),
1319 long int *v,
long int *w,
int start,
int end);
1321 int (*compare_func)(
void *v1,
void *v2));
1323 int (*compare_func)(
void *data,
int i,
int j,
void *extra_data),
1324 void (*swap_func)(
void *data,
int i,
int j,
void *extra_data),
1327 int (*compare_func)(
void *data,
int i,
int j,
void *extra_data),
1328 void (*swap_func)(
void *data,
int i,
int j,
void *extra_data),
1332 void Heapsort_swap(
void *v,
int i,
int j,
int entry_size_in_chars);
1334 int *&pts,
int &nb_pts);
1339 int n,
int *pts,
int *prev,
int f_use_pts_inv,
int *pts_inv,
1340 int *&depth,
int *&ancestor,
int verbose_level);
1342 int n,
int *pts,
int *prev,
int f_use_pts_inv,
int *pts_inv,
1343 int *depth,
int *ancestor,
int pos);
1345 int n,
int *pts,
int *prev,
int f_use_pts_inv,
int *pts_inv,
1346 std::string &fname_base,
1350 int compare_sets(
int *set1,
int *set2,
int sz1,
int sz2);
1353 void d_partition(
double *v,
int left,
int right,
int *middle);
1363 int *class_first,
int *class_len,
int &nb_classes);
1398 int col_idx,
const char *text);
1400 int col_idx, std::string &text);
1402 int col_idx,
long int val);
1404 const char *heading);
1406 const char *heading);
1408 long int *data,
const char *heading);
1410 const char *heading);
1412 void save(std::string &fname,
int verbose_level);
1414 void print_table(std::ostream &ost,
int f_enclose_in_parentheses);
1416 int f_enclose_in_parentheses);
1418 int *f_column_select,
1419 int f_enclose_in_parentheses,
1420 int nb_lines_per_table);
1424 int f_enclose_in_parentheses, std::ostream &ost);
1427 int f_enclose_in_parentheses,
1428 int *Col_selection,
int nb_cols_selected, std::ostream &ost);
1442 void remove_rows(
const char *drop_column,
const char *drop_label,
1449 void get_string(std::string &str,
int i,
int j);
1450 long int get_int(
int i,
int j);
1484 int *&perm,
int °ree,
int verbose_level);
1486 int *&perm,
int °ree,
int verbose_level);
1487 void chop_string(
const char *str,
int &argc,
char **&argv);
1510 int stringcmp(std::string &str,
const char *p);
1511 int strtoi(std::string &str);
1512 int str2int(std::string &str);
1514 double strtof(std::string &str);
1566 void print(
int f_backwards);
1573 void print_file(std::ostream &ost,
int f_backwards);
1580 int *the_vec_sorted,
1586 int multiplicity,
int verbose_level);
1588 long int *&Pts,
int &nb_pts,
int multiplicity,
int verbose_level);
1595 long int *&Pts,
int &nb_pts,
int value,
int verbose_level);
1652 int &idx, uint32_t &h,
int verbose_level);
1656 int *&transversal,
int *&frequency,
int &
nb_types,
int verbose_level);
1710 int argc, std::string *argv,
1775 int rank(
int *data);
1776 void unrank(
int rk,
int *data);
catch all class for algorithms
uint32_t SuperFastHash(const char *data, int len)
int hashing(int hash0, int a)
int hashing_fixed_width(int hash0, int a, int bit_length)
void uchar_print_bitwise(std::ostream &ost, uchar u)
void int_swap(int &x, int &y)
uint32_t root_of_tree_uint32_t(uint32_t *S, uint32_t i)
void uchar_move(uchar *p, uchar *q, int len)
void print_pointer_hex(std::ostream &ost, void *p)
void print_repeated_character(std::ostream &ost, char c, int n)
void print_hex_digit(std::ostream &ost, int digit)
void solve_diophant(int *Inc, int nb_rows, int nb_cols, int nb_needed, int f_has_Rhs, int *Rhs, long int *&Solutions, int &nb_sol, long int &nb_backtrack, int &dt, int f_DLX, int verbose_level)
matrices over GF(2) stored as bitvectors
void m_ij(int i, int j, int a)
void init(int m, int n, int verbose_level)
void unrank_PG_elements_in_columns_consecutively(field_theory::finite_field *F, long int start_value, int verbose_level)
void mult_int_matrix_from_the_left(int *A, int Am, int An, bitmatrix *Out, int verbose_level)
void rank_PG_elements_in_columns(field_theory::finite_field *F, int *perms, unsigned int *PG_ranks, int verbose_level)
compact storage of 0/1-data as bitvectors
void save(std::ofstream &fp)
void load(std::ifstream &fp)
void m_i(long int i, int a)
long int get_allocated_length()
void allocate(long int length)
classification of 0/1 matrices using canonical forms
int compare_at(uchar *data, int idx)
void add_at_idx(uchar *data, void *extra_data, int idx, int verbose_level)
void search_and_add_if_new(uchar *data, void *extra_data, int &f_found, int &idx, int verbose_level)
void finalize(int verbose_level)
void init(int N, int rep_len, int verbose_level)
void save(std::string &prefix, void(*encode_function)(void *extra_data, long int *&encoding, int &encoding_sz, void *global_data), void(*get_group_order_or_NULL)(void *extra_data, ring_theory::longinteger_object &go, void *global_data), void *global_data, int verbose_level)
int search(uchar *data, int &idx, int verbose_level)
to read data files from the poset classification algorithm
void read_candidates(std::string &candidates_fname, int verbose_level)
void read(std::string &fname, int f_casenumbers, int verbose_level)
a catch-all container class for everything related to data structures
int int_vec_hash_after_sorting(int *data, int len)
int bitvector_s_i(uchar *bitvec, long int i)
uint32_t int_vec_hash(int *data, int len)
int lint_vec_hash_after_sorting(long int *data, int len)
uint32_t lint_vec_hash(long int *data, int len)
~data_structures_global()
void bitvector_set_bit(uchar *bitvec, long int i)
void bitvector_m_ii(uchar *bitvec, long int i, int a)
uint32_t char_vec_hash(char *data, int len)
subset of size k of a set of size n
int compare_lexicographically(fancy_set *second_set)
void subtract_set(fancy_set *set_to_subtract)
void copy_to(fancy_set *to)
void init_with_set(int n, int k, int *subset, int verbose_level)
void save(std::string &fname, int verbose_level)
int is_subset(fancy_set *set2)
void swap(int pos, int a)
void delete_element(int elt)
void intersect_with(int *elts, int nb)
void init(int n, int verbose_level)
void add_elements(int *elts, int nb)
void add_element(int elt)
int is_equal(fancy_set *set2)
void complement(fancy_set *compl_set)
void select_subset(int *elts, int nb)
void delete_elements(int *elts, int nb)
void allocate(int m, int n)
void allocate_and_init(int m, int n, int *Mtx)
void take_away(int *v, int &len, int *take_away, int nb_take_away)
void init5(int *v, int a0, int a1, int a2, int a3, int a4)
int first_difference(int *p, int *q, int len)
void print_dense(std::ostream &ost, int *v, int len)
void add3(int *v1, int *v2, int *v3, int *w, int len)
void print_classified(int *v, int len)
void complement(int *v, int n, int k)
void matrix_make_block_matrix_2x2(int *Mtx, int k, int *A, int *B, int *C, int *D)
void zero(int *v, long int len)
void apply(int *from, int *through, int *to, int len)
void print_classified_str(std::stringstream &sstr, int *v, int len, int f_backwards)
void delete_element_assume_sorted(int *v, int &len, int a)
void matrix_print_bitwise(int *p, int m, int n)
int count_number_of_nonzero_entries(int *v, int len)
void distribution_print(std::ostream &ost, int *val, int *mult, int len)
void print_integer_matrix_in_C_source(std::ostream &ost, int *p, int m, int n)
void add(int *v1, int *v2, int *w, int len)
int matrix_max_log_of_entries(int *p, int m, int n)
int minimum(int *v, int len)
int find_first_nonzero_entry(int *v, int len)
void mone(int *v, long int len)
int is_constant_on_subset(int *v, int *subset, int sz, int &value)
void print_integer_matrix(std::ostream &ost, int *p, int m, int n)
void matrix_print_tight(int *p, int m, int n)
void matrix_print_ost(std::ostream &ost, int *p, int m, int n)
void print_integer_matrix_width(std::ostream &ost, int *p, int m, int n, int dim_n, int w)
void create_string_with_quotes(std::string &str, int *v, int len)
void print_fully(std::ostream &ost, std::vector< int > &v)
int vec_max_log_of_entries(std::vector< std::vector< int > > &p)
void transpose(int *M, int m, int n, int *Mt)
void set_print(std::ostream &ost, int *v, int len)
void distribution(int *v, int len_v, int *&val, int *&mult, int &len)
void matrix_delete_column_in_place(int *Mtx, int k, int n, int pivot)
void matrix_print(int *p, int m, int n)
void print_to_str_naked(char *str, int *data, int len)
void distribution_compute_and_print(std::ostream &ost, int *v, int v_len)
void vec_print(std::vector< std::vector< int > > &p)
void print_to_str(char *str, int *data, int len)
void print_Cpp(std::ostream &ost, int *v, int len)
void copy(int *from, int *to, long int len)
void print_str(std::stringstream &ost, int *v, int len)
void scan_from_stream(std::istream &is, int *&v, int &len)
void integer_vec_print(std::ostream &ost, int *v, int len)
int maximum(int *v, int len)
void copy_to_lint(int *from, long int *to, long int len)
void print_str_naked(std::stringstream &ost, int *v, int len)
void print(std::ostream &ost, std::vector< int > &v)
int is_zero(int *v, long int len)
void apply_lint(int *from, long int *through, long int *to, int len)
void print_as_table(std::ostream &ost, int *v, int len, int width)
int hash(int *v, int len, int bit_length)
void swap(int *v1, int *v2, long int len)
void print_GAP(std::ostream &ost, int *v, int len)
void scan(std::string &s, int *&v, int &len)
void sort_and_remove_duplicates()
void write_to_csv_file(std::string &fname, const char *label)
void write_to_ascii_file(std::string &fname)
void init_permutation_from_string(const char *s)
int search(int a, int &idx)
void allocate_and_init_int(int len, int *V)
void print(std::ostream &ost)
void read_ascii_file(std::string &fname)
void insert_at(int a, int idx)
void insert_if_not_yet_there(int a)
void read_binary_file_int4(std::string &fname)
void allocate_and_init(int len, long int *V)
void write_to_binary_file_int4(std::string &fname)
void copy_to_int(long int *from, int *to, long int len)
void matrix_print_width(std::ostream &ost, long int *p, int m, int n, int dim_n, int w)
void print_to_str(char *str, long int *data, int len)
void complement(long int *v, long int *w, int n, int k)
void scan(std::string &s, long int *&v, int &len)
void apply(long int *from, long int *through, long int *to, int len)
void print_bare_fully(std::ostream &ost, long int *v, int len)
void zero(long int *v, long int len)
long int maximum(long int *v, int len)
void mone(long int *v, long int len)
void set_print(long int *v, int len)
void take_away(long int *v, int &len, long int *take_away, int nb_take_away)
long int minimum(long int *v, int len)
int matrix_max_log_of_entries(long int *p, int m, int n)
void print_as_table(std::ostream &ost, long int *v, int len, int width)
void copy(long int *from, long int *to, long int len)
void scan_from_stream(std::istream &is, long int *&v, int &len)
void create_string_with_quotes(std::string &str, long int *v, int len)
void print_to_str_naked(char *str, long int *data, int len)
void print(std::ostream &ost, long int *v, int len)
void matrix_print(long int *p, int m, int n)
void print_fully(std::ostream &ost, long int *v, int len)
output data created by a run of nauty
long int nb_firstpathnode
void allocate(int N, int verbose_level)
long int nb_firstterminal
ring_theory::longinteger_object * Ago
int belong_to_the_same_orbit(int a, int b, int verbose_level)
bulk storage of group elements in compressed form
void dispose(long int hdl)
uchar * s_i_and_deallocate(long int i)
void print_storage_used()
long int store(uchar *elt)
long int page_ptr_allocated
void(* elt_print)(void *p, void *data, std::ostream &ost)
uchar ** allocation_tables
void init(int entry_size, int page_length_log, int verbose_level)
long int allocation_table_length
void add_elt_print_function(void(*elt_print)(void *p, void *data, std::ostream &ost), void *elt_print_data)
uchar * s_i_and_allocate(long int i)
void check_allocation_table()
uchar * s_i_and_allocation_bit(long int i, int &f_allocated)
long int page_ptr_oversize
data structure for set partitions following Jeffrey Leon
void subset_continguous(int from, int len)
void get_row_and_col_classes(int *row_classes, int &nb_row_classes, int *col_classes, int &nb_col_classes, int verbose_level)
void print_column_refinement_info(int ht0, int *data, int depth)
void get_column_classes(set_of_sets *&Sos, int verbose_level)
int nb_partition_classes(int from, int len)
void print_decomposition_tex(std::ostream &ost, int *row_classes, int nb_row_classes, int *col_classes, int nb_col_classes)
int smallest_non_discrete_cell()
void split_cell(int verbose_level)
void allocate_and_get_decomposition(int *&row_classes, int *&row_class_inv, int &nb_row_classes, int *&col_classes, int *&col_class_inv, int &nb_col_classes, int verbose_level)
void split_multiple_cells(int *set, int set_size, int f_front, int verbose_level)
void print_tactical_decomposition_scheme_tex_internal(std::ostream &ost, int f_enter_math_mode, int *row_classes, int nb_row_classes, int *col_classes, int nb_col_classes, int *row_scheme, int *col_scheme, int f_print_subscripts)
void get_cell(int i, int *&cell, int &cell_sz, int verbose_level)
void get_row_and_col_permutation(int *row_classes, int nb_row_classes, int *col_classes, int nb_col_classes, int *row_perm, int *row_perm_inv, int *col_perm, int *col_perm_inv)
int parent_at_height(int h, int cell)
int is_descendant_of(int cell, int ancestor_cell, int verbose_level)
int biggest_non_discrete_cell_rows_preferred()
int smallest_non_discrete_cell_rows_preferred()
void print_classes_points_and_lines(std::ostream &ost)
void split_cell_front_or_back(int *set, int set_size, int f_front, int verbose_level)
void split_line_cell_front_or_back(int *set, int set_size, int f_front, int verbose_level)
std::ostream & print(std::ostream &ost)
void print_row_tactical_decomposition_scheme_tex(std::ostream &ost, int f_enter_math_mode, int *row_classes, int nb_row_classes, int *col_classes, int nb_col_classes, int *row_scheme, int f_print_subscripts)
void print_tactical_decomposition_scheme_tex(std::ostream &ost, int *row_classes, int nb_row_classes, int *col_classes, int nb_col_classes, int *row_scheme, int *col_scheme, int f_print_subscripts)
void print_class(std::ostream &ost, int idx)
void get_cell_lint(int i, long int *&cell, int &cell_sz, int verbose_level)
void print_non_tactical_decomposition_scheme_tex(std::ostream &ost, int f_enter_math_mode, int *row_classes, int nb_row_classes, int *col_classes, int nb_col_classes, int f_print_subscripts)
void radix_sort(int left, int right, int *C, int length, int radix, int verbose_level)
void reverse_cell(int cell)
void reduce_height(int ht0)
int is_subset_of_cell(int *set, int size, int &cell_idx)
void split_by_orbit_partition(int nb_orbits, int *orbit_first, int *orbit_len, int *orbit, int offset, int verbose_level)
void print_class_point_or_line(std::ostream &ost, int idx)
void print_row_refinement_info(int ht0, int *data, int depth)
void radix_sort_bits(int left, int right, int *C, int length, int radix, int mask, int verbose_level)
void print_column_tactical_decomposition_scheme_tex(std::ostream &ost, int f_enter_math_mode, int *row_classes, int nb_row_classes, int *col_classes, int nb_col_classes, int *col_scheme, int f_print_subscripts)
int hash_column_refinement_info(int ht0, int *data, int depth, int hash0)
void write_cell_to_file(int i, std::string &fname, int verbose_level)
void swap_ij(int *perm, int *perm_inv, int i, int j)
int hash_row_refinement_info(int ht0, int *data, int depth, int hash0)
void allocate_with_two_classes(int n, int v, int b, int verbose_level)
int cellSizeAtLevel(int cell, int level)
void get_row_classes(set_of_sets *&Sos, int verbose_level)
void initial_matrix_decomposition(int nbrows, int nbcols, int *V, int nb_V, int *B, int nb_B, int verbose_level)
void print_classes(std::ostream &ost)
int is_descendant_of_at_level(int cell, int ancestor_cell, int level, int verbose_level)
void refine_arbitrary_set_lint(int size, long int *set, int verbose_level)
void print_cell_latex(std::ostream &ost, int i)
void print_classes_tex(std::ostream &ost)
void write_cell_to_file_points_or_lines(int i, std::string &fname, int verbose_level)
void print_decomposition_scheme_tex(std::ostream &ost, int *row_classes, int nb_row_classes, int *col_classes, int nb_col_classes, int *scheme)
int biggest_non_discrete_cell()
void isolate_point(int pt)
void refine_arbitrary_set(int size, int *set, int verbose_level)
void print_decomposition_scheme(std::ostream &ost, int *row_classes, int nb_row_classes, int *col_classes, int nb_col_classes, int *scheme, int marker1, int marker2)
void allocate(int n, int verbose_level)
void print_class_tex(std::ostream &ost, int idx)
to define a set of integers for class set_builder
int f_clone_with_affine_function
int index_set_loop_increment
int clone_with_affine_function_a
set_builder_description()
int read_arguments(int argc, std::string *argv, int verbose_level)
set_builder_description * Descr
int clone_with_affine_function_b
~set_builder_description()
int index_set_loop_upper_bound
to create a set of integers from class set_builder_description
long int process_transformations(long int x)
void init(set_builder_description *Descr, int verbose_level)
set_builder_description * Descr
long int clone_with_affine_function(long int x)
set of sets with entries over long int
void init(long int underlying_set_size, int nb_sets, long int **Pts, int *Sz, int verbose_level)
void init_simple(long int underlying_set_size, int nb_sets, int verbose_level)
long int underlying_set_size
void init_basic(long int underlying_set_size, int nb_sets, int *Sz, int verbose_level)
void init_set(int idx_of_set, long int *set, int sz, int verbose_level)
void init_decomposition(geometry::decomposition *&D, int verbose_level)
void evaluate_function_and_store(data_structures::set_of_sets *&Function_values, int(*evaluate_function)(int a, int i, int j, void *evaluate_data, int verbose_level), void *evaluate_data, int verbose_level)
void init_from_file(int &underlying_set_size, std::string &fname, int verbose_level)
void sort_all(int verbose_level)
long int & element(int i, int j)
void init_from_csv_file(int underlying_set_size, std::string &fname, int verbose_level)
int has_constant_size_property()
int find_smallest_class()
void add_element(int i, long int a)
void print_table_latex_simple(std::ostream &ost)
void save_constant_size_csv(std::string &fname, int verbose_level)
void sort_big(int verbose_level)
void compute_orbits(int &nb_orbits, int *&orbit, int *&orbit_inv, int *&orbit_first, int *&orbit_len, void(*compute_image_function)(set_of_sets *S, void *compute_image_data, int elt_idx, int gen_idx, int &idx_of_image, int verbose_level), void *compute_image_data, int nb_gens, int verbose_level)
void init_basic_with_Sz_in_int(int underlying_set_size, int nb_sets, int *Sz, int verbose_level)
void compute_and_print_tdo_col_scheme(std::ostream &file, int verbose_level)
void init_set(int idx_of_set, int *set, int sz, int verbose_level)
void init_basic_constant_size(int underlying_set_size, int nb_sets, int constant_size, int verbose_level)
int is_member(int i, int a, int verbose_level)
void print_table_tex(std::ostream &ost)
void init_cycle_structure(int *perm, int n, int verbose_level)
void compute_and_print_tdo_row_scheme(std::ostream &file, int verbose_level)
void compute_incidence_matrix(int *&Inc, int &m, int &n, int verbose_level)
void init_with_Sz_in_int(int underlying_set_size, int nb_sets, long int **Pts, int *Sz, int verbose_level)
void intersection_matrix(int *&intersection_type, int &highest_intersection_number, int *&intersection_matrix, int &nb_big_sets, int verbose_level)
void get_eckardt_points(int *&E, int &nb_E, int verbose_level)
int find_common_element_in_two_sets(int idx1, int idx2, int &common_elt)
void init(int underlying_set_size, int nb_sets, long int **Pts, long int *Sz, int verbose_level)
void extract_largest_sets(set_of_sets &S, int *&Idx, int verbose_level)
void print_table_latex_simple_with_selection(std::ostream &ost, int *Selection, int nb_sel)
void init_from_adjacency_matrix(int n, int *Adj, int verbose_level)
void compute_tdo_decomposition(geometry::decomposition &D, int verbose_level)
void remove_sets_of_given_size(int k, set_of_sets &S, int *&Idx, int verbose_level)
void dualize(set_of_sets *&S, int verbose_level)
void save_csv(std::string &fname, int f_make_heading, int verbose_level)
void pairwise_intersection_matrix(int *&M, int verbose_level)
int number_of_eckardt_points(int verbose_level)
void all_triple_intersections(set_of_sets *&Intersections, int verbose_level)
void init_from_orbiter_file(int underlying_set_size, std::string &fname, int verbose_level)
void init_basic(int underlying_set_size, int nb_sets, long int *Sz, int verbose_level)
void all_pairwise_intersections(set_of_sets *&Intersections, int verbose_level)
void init_simple(int underlying_set_size, int nb_sets, int verbose_level)
a collection of functions related to sorted vectors
int int_vec_search_first_occurence(int *v, int len, int a, int &idx, int verbose_level)
void int_vec_values_and_multiplicities(int *v, int l, int *&val, int *&mult, int &nb_values)
int int_vec_compare_stride(int *p, int *q, int len, int stride)
void heapsort_make_heap(int *v, int len)
void lint_vec_search_vec_linear(long int *v, int len, long int *A, int A_sz, long int *Idx)
void lint_vec_quicksort_increasingly(long int *v, int len)
int int_vec_search(int *v, int len, int a, int &idx)
void heapsort_sift_down_with_log(int *v, int *w, int start, int end)
void int_vec_sort_and_remove_duplicates(int *v, int &len)
void Heapsort_general_sift_down_with_log(void *data, int *w, int start, int end, int(*compare_func)(void *data, int i, int j, void *extra_data), void(*swap_func)(void *data, int i, int j, void *extra_data), void *extra_data)
int int_vec_is_zero(int *v, int len)
int lint_vec_search_linear(long int *v, int len, long int a, int &idx)
void int_vec_heapsort(int *v, int len)
void lint_vec_intersect_sorted_vectors(long int *v1, int len1, long int *v2, int len2, long int *v3, int &len3)
void heapsort_sift_down(int *v, int start, int end)
void lint_heapsort_make_heap(long int *v, int len)
int vec_search_general(void *vec, int(*compare_func)(void *vec, void *a, int b, void *data_for_compare), void *data_for_compare, int len, void *a, int &idx, int verbose_level)
void int_vec_intersect(int *v1, int len1, int *v2, int len2, int *&v3, int &len3)
int vector_lint_search(std::vector< long int > &v, long int a, int &idx, int verbose_level)
void int_vec_sorting_permutation(int *v, int len, int *perm, int *perm_inv, int f_increasingly)
int int_vec_is_sorted(int *v, int len)
int test_if_sets_are_disjoint_assuming_sorted_lint(long int *set1, long int *set2, int sz1, int sz2)
void sorted_vec_get_first_and_length(int *v, int len, int *class_first, int *class_len, int &nb_classes)
int integer_vec_compare(int *p, int *q, int len)
int test_if_set_with_return_value_lint(long int *set, int set_size)
void Heapsort_general_make_heap(void *data, int len, int(*compare_func)(void *data, int i, int j, void *extra_data), void(*swap_func)(void *data, int i, int j, void *extra_data), void *extra_data)
int schreier_vector_determine_depth_recursion(int n, int *pts, int *prev, int f_use_pts_inv, int *pts_inv, int *depth, int *ancestor, int pos)
int test_if_sets_are_disjoint(long int *set1, int sz1, long int *set2, int sz2)
int int_vec_sort_and_test_if_contained(int *v1, int len1, int *v2, int len2)
void int_vec_print_classified(std::ostream &ost, int *vec, int len)
void Heapsort_sift_down(void *v, int start, int end, int entry_size_in_chars, int(*compare_func)(void *v1, void *v2))
int lint_vec_compare(long int *p, long int *q, int len)
void int_vec_search_vec(int *v, int len, int *A, int A_sz, int *Idx)
void int_vec_swap_points(int *list, int *list_inv, int idx1, int idx2)
int lint_vecs_find_common_element(long int *v1, int len1, long int *v2, int len2, int &idx1, int &idx2)
int lint_vec_sort_and_test_if_contained(long int *v1, int len1, long int *v2, int len2)
void int_vec_heapsort_with_log(int *v, int *w, int len)
void rearrange_subset_lint(int n, int k, long int *set, int *subset, long int *rearranged_set, int verbose_level)
int int_vecs_find_common_element(int *v1, int len1, int *v2, int len2, int &idx1, int &idx2)
void int_vec_classify(int length, int *the_vec, int *&the_vec_sorted, int *&sorting_perm, int *&sorting_perm_inv, int &nb_types, int *&type_first, int *&type_len)
void Heapsort_general_sift_down(void *data, int start, int end, int(*compare_func)(void *data, int i, int j, void *extra_data), void(*swap_func)(void *data, int i, int j, void *extra_data), void *extra_data)
void int_vec_quicksort_increasingly(int *v, int len)
void int_vec_print_types_naked_tex_we_are_in_math_mode(std::ostream &ost, int f_backwards, int *the_vec_sorted, int nb_types, int *type_first, int *type_len)
void Heapsort_general(void *data, int len, int(*compare_func)(void *data, int i, int j, void *extra_data), void(*swap_func)(void *data, int i, int j, void *extra_data), void *extra_data)
int int_vecs_are_disjoint(int *v1, int len1, int *v2, int len2)
int test_if_set_with_return_value(int *set, int set_size)
void int_vec_classify_and_print(std::ostream &ost, int *v, int l)
void d_quicksort_array(int len, double *v)
int uchar_vec_compare(uchar *p, uchar *q, int len)
void int_vec_print_types_naked_stringstream(std::stringstream &sstr, int f_backwards, int *the_vec_sorted, int nb_types, int *type_first, int *type_len)
void heapsort_make_heap_with_log(int *v, int *w, int len)
void int_vec_classify_with_arrays(int length, int *the_vec, int *the_vec_sorted, int *sorting_perm, int *sorting_perm_inv, int &nb_types, int *type_first, int *type_len)
void int_vec_bubblesort_increasing(int len, int *p)
void int_vec_quicksort(int *v, int(*compare_func)(int a, int b), int left, int right)
void int_vec_print_types(std::ostream &ost, int f_backwards, int *the_vec_sorted, int nb_types, int *type_first, int *type_len)
void lint_vec_heapsort_with_log(long int *v, long int *w, int len)
void d_quicksort(double *v, int left, int right)
void Heapsort_general_with_log(void *data, int *w, int len, int(*compare_func)(void *data, int i, int j, void *extra_data), void(*swap_func)(void *data, int i, int j, void *extra_data), void *extra_data)
int int_vec_is_subset_of(int *set, int sz, int *big_set, int big_set_sz)
void d_partition(double *v, int left, int right, int *middle)
int int_vec_search_linear(int *v, int len, int a, int &idx)
void Heapsort(void *v, int len, int entry_size_in_chars, int(*compare_func)(void *v1, void *v2))
void heapsort_swap(int *v, int i, int j)
int longinteger_vec_search(ring_theory::longinteger_object *v, int len, ring_theory::longinteger_object &a, int &idx)
int int_vec_search_and_remove_if_found(int *v, int &len, int a)
void quicksort_array(int len, void **v, int(*compare_func)(void *a, void *b, void *data), void *data)
void int_vec_append_and_reallocate_if_necessary(int *&vec, int &used_length, int &alloc_length, int a, int verbose_level)
void lint_vec_sort_and_remove_duplicates(long int *v, int &len)
void Heapsort_general_make_heap_with_log(void *data, int *w, int len, int(*compare_func)(void *data, int i, int j, void *extra_data), void(*swap_func)(void *data, int i, int j, void *extra_data), void *extra_data)
void int_vec_search_vec_linear(int *v, int len, int *A, int A_sz, int *Idx)
void vec_intersect(long int *v1, int len1, long int *v2, int len2, long int *&v3, int &len3)
void rearrange_subset_lint_all(int n, int k, long int *set, long int *subset, long int *rearranged_set, int verbose_level)
void int_vec_multiplicities(int *v, int l, int *&w, int &w_len)
void lint_vec_quicksort(long int *v, int(*compare_func)(long int a, long int b), int left, int right)
void schreier_vector_compute_depth_and_ancestor(int n, int *pts, int *prev, int f_use_pts_inv, int *pts_inv, int *&depth, int *&ancestor, int verbose_level)
void quicksort_array_with_perm(int len, void **v, int *perm, int(*compare_func)(void *a, void *b, void *data), void *data)
void int_vec_values(int *v, int l, int *&w, int &w_len)
int vec_search(void **v, int(*compare_func)(void *a, void *b, void *data), void *data_for_compare, int len, void *a, int &idx, int verbose_level)
void lint_heapsort_swap(long int *v, int i, int j)
void test_if_set(int *set, int set_size)
void lint_vec_search_vec(long int *v, int len, long int *A, int A_sz, long int *Idx)
int lint_vec_search(long int *v, int len, long int a, int &idx, int verbose_level)
void find_points_by_multiplicity(int *data, int data_sz, int multiplicity, int *&pts, int &nb_pts)
void Heapsort_swap(void *v, int i, int j, int entry_size_in_chars)
int test_if_sets_are_equal(int *set1, int *set2, int set_size)
void lint_vec_quicksort_decreasingly(long int *v, int len)
int search_general(void *data, int len, void *search_object, int &idx, int(*compare_func)(void *data, int i, void *search_object, void *extra_data), void *extra_data, int verbose_level)
int test_if_sets_are_disjoint_assuming_sorted(int *set1, int *set2, int sz1, int sz2)
void lint_heapsort_sift_down(long int *v, int start, int end)
int int_vec_search_and_insert_if_necessary(int *v, int &len, int a)
int test_if_sets_are_disjoint_not_assuming_sorted(long int *v, long int *w, int len)
void rearrange_subset(int n, int k, int *set, int *subset, int *rearranged_set, int verbose_level)
void int_vec_quicksort_decreasingly(int *v, int len)
int int_vec_compare(int *p, int *q, int len)
void int_vec_intersect_sorted_vectors(int *v1, int len1, int *v2, int len2, int *v3, int &len3)
void lint_vec_heapsort(long int *v, int len)
void int_vec_print_types_naked_tex(std::ostream &ost, int f_backwards, int *the_vec_sorted, int nb_types, int *type_first, int *type_len)
void lint_heapsort_make_heap_with_log(long int *v, long int *w, int len)
void schreier_vector_tree(int n, int *pts, int *prev, int f_use_pts_inv, int *pts_inv, std::string &fname_base, graphics::layered_graph_draw_options *LG_Draw_options, graph_theory::layered_graph *&LG, int verbose_level)
int compare_sets_lint(long int *set1, long int *set2, int sz1, int sz2)
void int_vec_insert_and_reallocate_if_necessary(int *&vec, int &used_length, int &alloc_length, int a, int verbose_level)
void lint_vec_append_and_reallocate_if_necessary(long int *&vec, int &used_length, int &alloc_length, long int a, int verbose_level)
int compare_sets(int *set1, int *set2, int sz1, int sz2)
void lint_heapsort_sift_down_with_log(long int *v, long int *w, int start, int end)
int lint_vec_is_subset_of(int *set, int sz, long int *big_set, int big_set_sz, int verbose_level)
void int_vec_print_types_naked(std::ostream &ost, int f_backwards, int *the_vec_sorted, int nb_types, int *type_first, int *type_len)
void int_vec_sorted_collect_types(int length, int *the_vec_sorted, int &nb_types, int *type_first, int *type_len)
void Heapsort_make_heap(void *v, int len, int entry_size_in_chars, int(*compare_func)(void *v1, void *v2))
for reading and writing of csv files
void print_table_row_detailed(int row, std::ostream &ost)
void read_spreadsheet(std::string &fname, int verbose_level)
void fill_column_with_text(int col_idx, const char **text, const char *heading)
void print_table_with_row_selection(int *f_selected, std::ostream &ost)
void init_int_matrix(int nb_rows, int nb_cols, int *A)
void join_with(spreadsheet *S2, int by1, int by2, int verbose_level)
void get_value_double_or_NA(int i, int j, double &val, int &f_NA)
void fill_column_with_row_index(int col_idx, const char *heading)
void print_table_row_latex(int row, int *f_column_select, int f_enclose_in_parentheses, std::ostream &ost)
void add_token(const char *label)
void print_table_sorted(std::ostream &ost, const char *sort_by)
void reallocate_table_add_row()
void patch_with(spreadsheet *S2, char *join_by)
double get_double(int i, int j)
void remove_quotes(int verbose_level)
void tokenize(std::string &fname, char **&tokens, int &nb_tokens, int verbose_level)
void remove_rows(const char *drop_column, const char *drop_label, int verbose_level)
void fill_column_with_lint(int col_idx, long int *data, const char *heading)
void set_entry_lint(int row_idx, int col_idx, long int val)
void find_rows(int verbose_level)
void print_table_row(int row, int f_enclose_in_parentheses, std::ostream &ost)
void add_column_with_text(const char *label, char **Value)
void remove_rows_where_field_is_empty(const char *drop_column, int verbose_level)
void save(std::string &fname, int verbose_level)
void print_table_latex(std::ostream &ost, int *f_column_select, int f_enclose_in_parentheses, int nb_lines_per_table)
void init_empty_table(int nb_rows, int nb_cols)
void print_table_latex_all_columns(std::ostream &ost, int f_enclose_in_parentheses)
void print_table_row_with_column_selection(int row, int f_enclose_in_parentheses, int *Col_selection, int nb_cols_selected, std::ostream &ost)
long int get_int(int i, int j)
void add_column_with_constant_value(const char *label, char *value)
int find_column(std::string &column_label)
void init_set_of_sets(set_of_sets *S, int f_make_heading)
void fill_column_with_int(int col_idx, int *data, const char *heading)
void fill_entry_with_text(int row_idx, int col_idx, const char *text)
void get_string(std::string &str, int i, int j)
void print_table(std::ostream &ost, int f_enclose_in_parentheses)
int find_by_column(const char *join_by)
void add_column_with_int(const char *label, int *Value)
a statistical analysis of data consisting of vectors of ints
int * Frequency_in_lex_order
int hash_and_find(int *data, int &idx, uint32_t &h, int verbose_level)
void get_transversal(int *&transversal, int *&frequency, int &nb_types, int verbose_level)
void print_classes_bigger_than_one(int verbose_level)
void save_classes_individually(std::string &fname, int verbose_level)
std::multimap< uint32_t, int > Hashing
void init(int *data, int data_length, int data_set_sz, int verbose_level)
a statistical analysis of data consisting of single integers
void print_file_tex(std::ostream &ost, int f_backwards)
void sort_and_classify_second()
void init(int *data, int data_length, int f_second, int verbose_level)
data_structures::set_of_sets * get_set_partition_and_types(int *&types, int &nb_types, int verbose_level)
int * second_sorting_perm
void print_no_lf(int f_backwards)
int determine_class_by_value(int value)
void save_classes_individually(std::string &fname)
void print_file_tex_we_are_in_math_mode(std::ostream &ost, int f_backwards)
void print(int f_backwards)
void init_lint(long int *data, int data_length, int f_second, int verbose_level)
int get_value_of_class(int class_idx)
void get_data_by_multiplicity_as_lint(long int *&Pts, int &nb_pts, int multiplicity, int verbose_level)
void print_file(std::ostream &ost, int f_backwards)
void print_naked_tex(std::ostream &ost, int f_backwards)
void print_tex_no_lf(int f_backwards)
void print_first_tex(int f_backwards)
void print_first(int f_backwards)
void print_array_tex(std::ostream &ost, int f_backwards)
void print_types_naked_tex(std::ostream &ost, int f_backwards, int *the_vec_sorted, int nb_types, int *type_first, int *type_len)
void print_second_tex(int f_backwards)
void get_data_by_multiplicity(int *&Pts, int &nb_pts, int multiplicity, int verbose_level)
void print_naked_stringstream(std::stringstream &sstr, int f_backwards)
double average_of_non_zero_values()
void print_naked(int f_backwards)
void print_second(int f_backwards)
void get_class_by_value(int *&Pts, int &nb_pts, int value, int verbose_level)
int * second_sorting_perm_inv
void get_class_by_value_lint(long int *&Pts, int &nb_pts, int value, int verbose_level)
to define a vector of field elements
~vector_builder_description()
std::vector< std::string > concatenate_list
vector_builder_description()
int read_arguments(int argc, std::string *argv, int verbose_level)
to create a vector of field elements from class vector_builder_description
field_theory::finite_field * F
vector_builder_description * Descr
void init(vector_builder_description *Descr, field_theory::finite_field *F, int verbose_level)
void compute_tables(int verbose_level)
void unrank(int rk, int *data)
void allocate(int data_size, int N, int bit_length)
decomposition of an incidence matrix
a data structure to store layered graphs or Hasse diagrams
options for drawing an object of type layered_graph
a class to represent arbitrary precision integers
int string_tools_compare_strings(void *a, void *b, void *data)
the orbiter library for the classification of combinatorial objects