10#ifndef ORBITER_SRC_LIB_DISCRETA_DISCRETA_H_
11#define ORBITER_SRC_LIB_DISCRETA_DISCRETA_H_
32namespace layer2_discreta {
40#define SAVE_ASCII_USE_COMPRESS
47#define NOT_EXISTING_FUNCTION(s) cout << "The function " << s << " does not exist in this class\n";
174class discreta_matrix;
216 class number_partition;
226 class design_parameter_source;
227 class design_parameter;
283int sqrt_mod(
int a,
int p,
int verbose_level);
285void html_head(std::ostream& ost,
char *title_long,
char *title_short);
287void sieve(
Vector &primes,
int factorbase,
int verbose_level);
305void tuple2_rank(
int rank,
int &i,
int &j,
int n,
int f_injective);
310void midpoint_of_2(
int *Px,
int *Py,
int i1,
int i2,
int idx);
311void midpoint_of_5(
int *Px,
int *Py,
int i1,
int i2,
int i3,
int i4,
int i5,
int idx);
312void ratio_int(
int *Px,
int *Py,
int idx_from,
int idx_to,
int idx_result,
double r);
330int Gauss_int(
int *A,
int f_special,
int f_complete,
int *base_cols,
331 int f_P,
int *P,
int m,
int n,
int Pn,
332 int q,
int *add_table,
int *mult_table,
333 int *negate_table,
int *inv_table,
int verbose_level);
434 void *
operator new(size_t,
void *p) {
return p; }
450 virtual std::ostream&
print(std::ostream&);
454 std::ostream&
println(std::ostream&);
533 virtual void m_one();
535 virtual void homo_z(
int z);
569 void pack(
memory & M,
int verbose_level,
int debug_depth);
570 void unpack(
memory & M,
int verbose_level,
int debug_depth);
594 std::ostream&
print(std::ostream& ost);
602 void init(
int length,
char *d);
603 void alloc(
int length);
604 void append(
int length,
char *d);
610 void read_file(
char *fname,
int verbose_level);
611 void write_file(
char *fname,
int verbose_level);
636 void *
operator new(size_t,
void *p) {
return p; }
645 std::ostream&
print(std::ostream&);
651 void init(
const char *p);
652 void append(
const char *p);
676 void *
operator new(size_t,
void *p) {
return p; }
684 std::ostream&
print(std::ostream&);
712 void rand(
int low,
int high);
716#define LONGINTEGER_PRINT_DOTS
717#define LONGINTEGER_DIGITS_FOR_DOT 6
736 void *
operator new(size_t,
void *p) {
return p; }
744 std::ostream&
print(std::ostream&);
750 void allocate(
int sign,
const char *p);
806 void *
operator new(size_t,
void *p) {
return p; }
814 std::ostream&
Print(std::ostream&);
815 std::ostream&
print(std::ostream&);
907 void q_adic(
int n,
int q);
954 int f_generator_labels,
Vector &generator_labels);
957 std::ostream &ost,
Vector &generator_labels);
962void merge(Vector &v1, Vector &v2, Vector &v3);
964 Vector &v2, Vector &v2_fellow,
965 Vector &v3, Vector &v3_fellow);
967 Vector &val1, Vector &val2, Vector &val3);
984 void *
operator new(size_t,
void *p) {
return p; }
990 std::ostream&
print(std::ostream&);
993 void sscan(
const char *s,
int verbose_level);
994 void scan(std::istream & is,
int verbose_level);
1024 void Add4Cycle(
int i0,
int i1,
int i2,
int i3);
1025 void Add5Cycle(
int i0,
int i1,
int i2,
int i3,
int i4);
1036 int signum(
int verbose_level);
1037 int is_even(
int verbose_level);
1046void signum_map(discreta_base & x, discreta_base &d);
1074 void *
operator new(size_t,
void *p) {
return p; }
1083 std::ostream&
print(std::ostream&);
1120 int Gauss(
int f_special,
int f_complete,
1164 void binomial(
int n_min,
int n_max,
int k_min,
int k_max);
1165 void stirling_second(
int n_min,
int n_max,
int k_min,
int k_max,
int f_ordered);
1166 void stirling_first(
int n_min,
int n_max,
int k_min,
int k_max,
int f_signless);
1167 void binomial(
int n_min,
int n_max,
int k_min,
int k_max,
int f_inverse);
1183 int f_row_decomp,
Vector &row_decomp,
1184 int f_col_decomp,
Vector &col_decomp);
1186 int f_row_decomp,
Vector &row_decomp,
1187 int f_col_decomp,
Vector &col_decomp,
1188 int f_labelling_points,
Vector &point_labels,
1189 int f_labelling_blocks,
Vector &block_labels);
1191 int width,
int width_10,
1192 int f_outline_thin,
const char *unit_length,
1193 const char *thick_lines,
const char *thin_lines,
const char *geo_line_width,
1194 int f_row_decomp,
Vector &row_decomp,
1195 int f_col_decomp,
Vector &col_decomp,
1196 int f_labelling_points,
Vector &point_labels,
1197 int f_labelling_blocks,
Vector &block_labels);
1217 void PG_point_unrank(
int i0,
int j0,
int di,
int dj,
int length,
int a);
1218 void PG_point_rank(
int i0,
int j0,
int di,
int dj,
int length,
int &a);
1220 void AG_point_rank(
int i0,
int j0,
int di,
int dj,
int length,
int &a);
1221 void AG_point_unrank(
int i0,
int j0,
int di,
int dj,
int length,
int a);
1244 void *
operator new(size_t,
void *p) {
return p; }
1250 std::ostream&
print(std::ostream&);
1276 void Singer(
int p,
int f,
int verbose_level);
1290 void Phi(
int n,
int f_v);
1293 void charpoly(
int q,
int size,
int *mtx,
int verbose_level);
1302#define PARTITION_TYPE_VECTOR 0
1303#define PARTITION_TYPE_EXPONENT 1
1320 void *
operator new(size_t,
void *p) {
return p; }
1326 std::ostream&
print(std::ostream&);
1450 void *
operator new(size_t,
void *p) {
return p; }
1456 std::ostream&
print(std::ostream&);
1490#define BTREEMAXKEYLEN 24
1514#define DB_POS_FILESIZE 4
1516#define DB_FILE_TYPE_STANDARD 1
1517#define DB_FILE_TYPE_COMPACT 2
1533 void *
operator new(size_t,
void *p) {
return p; }
1539 std::ostream&
print(std::ostream&);
1555 void create(
int verbose_level);
1556 void open(
int verbose_level);
1557 void close(
int verbose_level);
1561 void user2total(
int user,
int &total,
int &pad);
1566 uint_4 &datref,
int verbose_level);
1572 int id,
Vector& the_object,
int verbose_level);
1574 int id,
Vector& the_object,
int verbose_level);
1577 Vector& the_object,
int verbose_level);
1578 void ith(
int i,
int btree_idx,
1585 char *out_path,
int verbose_level);
1587 int imin,
int imax,
Vector &datrefs,
1590 int imin0,
int imax0,
1591 int btree_idx1,
int imin1,
int imax1,
1592 Vector &datrefs,
int verbose_level);
1599 int size,
uint_4 *datref,
int verbose_level);
1601 int size,
uint_4 *datref,
int verbose_level);
1603 int size,
uint_4 *datref,
int verbose_level);
1611 void file_read(
void *p,
int size,
int nb);
1615#define BTREEHALFPAGESIZE 128
1616#define BTREEMAXPAGESIZE (2 * BTREEHALFPAGESIZE)
1618#define BTREE_PAGE_LENGTH_LOG 7
1680 void *
operator new(size_t,
void *p) {
return p; }
1686 std::ostream&
print(std::ostream&);
1705 void key_print(
char *the_key, std::ostream& ost);
1707 void create(
int verbose_level);
1708 void open(
int verbose_level);
1709 void close(
int verbose_level);
1719 int& pos,
int verbose_level);
1721 int& first,
int &len,
int verbose_level);
1724 int& first,
int &len,
1729 int& first,
int &len,
1735 int& first,
int &len,
1740 int i1,
int i2,
int i3,
int verbose_level);
1750 int len,
Vector& datrefs);
1752 int search(
void *pSearchKey,
1753 DATATYPE *pData,
int *idx,
int key_depth,
1757 Buffer *Buf,
int *idx,
int key_depth,
1760 void *pSearchKey,
DATATYPE *pSearchData,
1761 int *cur,
int *x,
int key_depth,
1764 int length(
int verbose_level);
1774 void Update(
int Node,
int *Rise,
1776 int *RisenNeighbourChilds,
1780 int *RisenNeighbourChilds,
1784 void Delete(
int Node,
int& Underflow,
int verbose_level);
1786 int& Underflow,
Buffer *DKBF,
int x,
1789 int Node,
int Path,
int& Underflow,
1793 void print_range(
int first,
int len, std::ostream& ost);
1806#define MAX_FSTREAM_TABLE 1000
1858 void init(
int verbose_level);
1861 int search(
int len,
int btree_idx,
int btree_x,
int &idx);
1895 void *
operator new(size_t,
void *p) {
return p; }
1901 std::ostream&
print(std::ostream&);
1923void design_lambda_ijs(
int t,
int v,
int k, discreta_base& lambda,
int s,
int i,
int j, discreta_base & lambda_ijs);
1924void design_lambda_ij(
int t,
int v,
int k, discreta_base& lambda,
int i,
int j, discreta_base & lambda_ij);
1928void print_clan_tex(discreta_base &t, discreta_base &v, discreta_base &k,
int delta_lambda, discreta_base &m_max);
1930int is_ancestor(
int t,
int v,
int k,
int delta_lambda);
1931int calc_redinv(
int t,
int v,
int k,
int delta_lambda,
int &c,
int &T,
int &V,
int &K,
int &Delta_lambda);
1932int calc_derinv(
int t,
int v,
int k,
int delta_lambda,
int &c,
int &T,
int &V,
int &K,
int &Delta_lambda);
1933int calc_resinv(
int t,
int v,
int k,
int delta_lambda,
int &c,
int &T,
int &V,
int &K,
int &Delta_lambda);
1942 int btree_idx_tvkl,
int t,
int first,
int len);
1944 int btree_idx_tvkl,
int t,
int v,
int first,
int len);
1966 void *
operator new(size_t,
void *p) {
return p; }
1972 std::ostream&
print(std::ostream&);
1999 int& t_new,
int& v_new,
int& k_new,
discreta_base& lambda_new);
2001 int& t_new,
int& v_new,
int& k_new,
discreta_base& lambda_new);
bulk storage of group elements in compressed form
DISCRETA vector class for vectors of DISCRETA objects.
void first_word(int n, int q)
Vector & append(discreta_base &x)
void apply_permutation_to_elements(permutation &p)
void PG_element_unrank_modified(int a)
int vector_of_vectors_overall_length()
void mult_scalar(discreta_base &a)
void extract_subvector(Vector &v, int first, int len)
void mult_to(discreta_base &x, discreta_base &y)
int n_choose_k_next(int n, int k)
void q_adic(int n, int q)
void scalar_product(Vector &w, discreta_base &a)
void PG_element_unrank(int a)
Vector & get_and_delete_element(int i, discreta_base &x)
void first_lehmercode(int n)
void vector_of_vectors_replace(Vector &v)
int is_subset_of(Vector &w)
void print_word_nicely_with_generator_labels(std::ostream &ost, Vector &generator_labels)
int compare_with(discreta_base &a)
int next_regular_word(int q)
void n_choose_k_first(int n, int k)
std::ostream & Print(std::ostream &)
Vector & append_integer(int a)
void apply_permutation(permutation &p)
std::ostream & print_intvec(std::ostream &ost)
void conjugate(discreta_base &a)
void first_divisor(Vector &exponents)
void append_vector(Vector &v)
void lehmercode2perm(permutation &p)
int next_non_trivial_divisor(Vector &exponents)
void AG_element_rank(int &a)
void concatenation(Vector &v1, Vector &v2)
std::ostream & print_unformatted(std::ostream &ost)
void first_regular_word(int n, int q)
discreta_base & s_i(int i)
void hadamard_product(Vector &w)
void intersect(Vector &b, Vector &c)
void add_to(discreta_base &x, discreta_base &y)
void m_l_x(int l, discreta_base &x)
Vector & operator=(const discreta_base &x)
Vector & delete_element(int i)
void get_first_and_remove(discreta_base &x)
void sum_of_all_entries(discreta_base &x)
void vector_of_vectors_lengths(Vector &lengths)
discreta_base & operator[](int i)
void write_mem(memory &m, int debug_depth)
void PG_element_rank_modified(int &a)
Vector & sort_with_logging(permutation &p)
void sort_with_fellow(Vector &fellow)
void print_word_nicely(std::ostream &ost, int f_generator_labels, Vector &generator_labels)
void read_mem(memory &m, int debug_depth)
void content_multiplicities_only(Vector &c, Vector &mult)
void content(Vector &c, Vector &where)
bool insert_sorted(discreta_base &x)
Vector & insert_element(int i, discreta_base &x)
void PG_element_normalize()
void get_element_orders(Vector &vec_of_orders)
void multiply_out(Vector &primes, discreta_base &x)
int next_divisor(Vector &exponents)
bool search(discreta_base &x, int *idx)
void print_word_nicely2(std::ostream &ost)
void AG_element_unrank(int a)
void conjugate_with_inverse(discreta_base &a)
std::ostream & print(std::ostream &)
void copyobject_to(discreta_base &x)
void PG_element_rank(int &a)
DISCRETA class for databases.
bt_key & operator=(const discreta_base &x)
void init_string(int output_size, int field1, int field2)
void init_int2_vec(int field1, int field2, int vec_fst, int vec_len)
void copyobject_to(discreta_base &x)
void init_int2(int field1, int field2)
enum bt_key_kind & type()
void init(enum bt_key_kind type, int output_size, int field1, int field2)
void init_int4_vec(int field1, int field2, int vec_fst, int vec_len)
std::ostream & print(std::ostream &)
void init_int4(int field1, int field2)
DISCRETA class for a database.
void file_read(PageTyp *page, const char *message)
void page_print(Buffer *BF, std::ostream &ost)
void search_interval_int4_int4(int l0, int u0, int l1, int u1, int &first, int &len, int verbose_level)
void Update(int Node, int *Rise, ItemTyp *RisenItem, int *RisenNeighbourChilds, int f_v)
void add_key_int4(int field1, int field2)
void init(const char *file_name, int f_duplicatekeys, int btree_idx)
int search(void *pSearchKey, DATATYPE *pData, int *idx, int key_depth, int verbose_level)
btree & operator=(const discreta_base &x)
int search_int4_int4(int data1, int data2, int &idx, int verbose_level)
int search_datref_of_unique_int4(int i, int verbose_level)
void print_all(std::ostream &ost)
void open(int verbose_level)
int search_datref_of_unique_int4_if_there(int i, int verbose_level)
void file_write(PageTyp *page, const char *message)
void ReadInfo(int verbose_level)
void print_page(int x, std::ostream &ost)
void add_key_string(int output_size, int field1, int field2)
int page_i_th(int l, Buffer *buffer, int *cur, int *i, int verbose_level)
void search_interval_int4_int4_int4(int l0, int u0, int l1, int u1, int l2, int u2, int &first, int &len, int verbose_level)
void key_print(char *the_key, std::ostream &ost)
int length(int verbose_level)
int SearchPage(Buffer *buffer, void *pSearchKey, DATATYPE *pSearchData, int *cur, int *x, int key_depth, int verbose_level)
void item_print(ItemTyp *item, int i, std::ostream &ost)
void create(int verbose_level)
void close(int verbose_level)
void SavePage(Buffer *BF, int verbose_level)
void add_key_int2(int field1, int field2)
void search_interval_int4_int4_int4_int4(int l0, int u0, int l1, int u1, int l2, int u2, int l3, int u3, int &first, int &len, int verbose_level)
void Compensate(int Precedent, int Node, int Path, int &Underflow, int verbose_level)
void Split(Buffer *BF, ItemTyp *Item, int x, int *RisenNeighbourChilds, int verbose_level)
void delete_ith(int idx, int verbose_level)
void Delete(int Node, int &Underflow, int verbose_level)
void insert_key(KEYTYPE *pKey, DATATYPE *pData, int verbose_level)
int search_unique_int4_int4_int4_int4(int i0, int i1, int i2, int i3, int verbose_level)
std::ostream & print(std::ostream &)
void get_datrefs(int first, int len, Vector &datrefs)
void copyobject_to(discreta_base &x)
int search_string(discreta_base &key_op, int &pos, int verbose_level)
void key_fill_in(char *the_key, Vector &the_object)
void ith(int l, KEYTYPE *key, DATATYPE *data, int verbose_level)
void FindGreatest(int Node1, int &Underflow, Buffer *DKBF, int x, int verbose_level)
void LoadPage(Buffer *BF, int x, int verbose_level)
void file_seek(int page_no)
int AllocateRec(int verbose_level)
void search_interval_int4(int i_min, int i_max, int &first, int &len, int verbose_level)
void WriteInfo(int verbose_level)
int SearchBtree(int page, void *pSearchKey, DATATYPE *pData, Buffer *Buf, int *idx, int key_depth, int verbose_level)
void print_range(int first, int len, std::ostream &ost)
int search_unique_int4(int i, int verbose_level)
DISCRETA class for a database.
void copyobject_to(discreta_base &x)
btree & btree_access_i(int i)
void print_by_btree_with_datref(int btree_idx, std::ostream &ost)
void add_data_DB_standard(void *d, int size, uint_4 *datref, int verbose_level)
void get_object_by_unique_int4(int btree_idx, int id, Vector &the_object, int verbose_level)
void free_data_DB(uint_4 datref, int size, int verbose_level)
void init_with_file_type(const char *filename, int objectkind, int f_compress, int file_type)
void print_by_btree(int btree_idx, std::ostream &ost)
void ith(int i, int btree_idx, KEYTYPE *key_type, DATATYPE *data_type, int verbose_level)
void search_int4_2dimensional(int btree_idx0, int imin0, int imax0, int btree_idx1, int imin1, int imax1, Vector &datrefs, int verbose_level)
void search_int4(int btree_idx, int imin, int imax, Vector &datrefs, int verbose_level)
int get_size_from_datref(uint_4 datref, int verbose_level)
void close(int verbose_level)
void add_object_return_datref(Vector &the_object, uint_4 &datref, int verbose_level)
int get_highest_int4(int btree_idx)
database & operator=(const discreta_base &x)
std::ostream & print(std::ostream &)
void add_object(Vector &the_object, int verbose_level)
void open(int verbose_level)
void create(int verbose_level)
void print_subset(Vector &datrefs, std::ostream &ost)
void delete_object(Vector &the_object, uint_4 datref, int verbose_level)
void add_data_DB_compact(void *d, int size, uint_4 *datref, int verbose_level)
void file_create(int verbose_level)
void extract_subset(Vector &datrefs, char *out_path, int verbose_level)
void get_object(uint_4 datref, Vector &the_object, int verbose_level)
void ith_object(int i, int btree_idx, Vector &the_object, int verbose_level)
void file_open(int verbose_level)
void file_close(int verbose_level)
int get_object_by_unique_int4_if_there(int btree_idx, int id, Vector &the_object, int verbose_level)
void add_data_DB(void *d, int size, uint_4 *datref, int verbose_level)
void search_int4_multi_dimensional(Vector &btree_idx, Vector &i_min, Vector &i_max, Vector &datrefs, int verbose_level)
void file_write(void *p, int size, int nb)
void file_read(void *p, int size, int nb)
void user2total(int user, int &total, int &pad)
void init(const char *filename, int objectkind, int f_compress)
void file_seek(int offset)
DISCRETA class for the design parameters database.
hollerith & references_i(int i)
~design_parameter_source()
void text012(hollerith &s0, hollerith &s1, hollerith &s2)
void freeself_design_parameter_source()
void print2(design_parameter &p, std::ostream &ost)
std::ostream & print(std::ostream &)
void copyobject_to(discreta_base &x)
void text2(design_parameter &p, hollerith &h)
void text012_extended(design_parameter &p, hollerith &s0, hollerith &s1, hollerith &s2)
void settype_design_parameter_source()
design_parameter_source & operator=(const discreta_base &x)
design_parameter_source()
DISCRETA class for design parameters.
void copyobject_to(discreta_base &x)
void lambda_of_supplementary(discreta_base &lambda_supplementary)
void supplementary_reduced_t(design_parameter &p)
void settype_design_parameter()
void init_database(database &D, char *path)
int trung_complementary(design_parameter &p)
void reduced_t(design_parameter &p)
void text_parameter(hollerith &h)
design_parameter_source & source_i(int i)
void supplementary_derived(design_parameter &p)
void residual(design_parameter &p)
int trung_left_partner(int &t1, int &v1, int &k1, discreta_base &lambda1, int &t_new, int &v_new, int &k_new, discreta_base &lambda_new)
int derived_inverse(design_parameter &p)
int trung_right_partner(int &t1, int &v1, int &k1, discreta_base &lambda1, int &t_new, int &v_new, int &k_new, discreta_base &lambda_new)
void derived(design_parameter &p)
design_parameter & operator=(const discreta_base &x)
void complementary(design_parameter &p)
void supplementary_residual(design_parameter &p)
int is_selfsupplementary()
void freeself_design_parameter()
void supplementary(design_parameter &p)
int increased_t(design_parameter &p)
void ancestor(design_parameter &p, Vector &path, int f_v, int f_vv)
int alltop(design_parameter &p)
std::ostream & print(std::ostream &)
int residual_inverse(design_parameter &p)
DISCRETA base class. All DISCRETA classes are derived from this class.
design_parameter_source & as_design_parameter_source()
void integral_division_exact(discreta_base &x, discreta_base &q)
longinteger & as_longinteger()
integer & change_to_integer()
virtual void normalize(discreta_base &p)
discreta_base & divide_by(discreta_base &x)
virtual void integral_division(discreta_base &x, discreta_base &q, discreta_base &r, int verbose_level)
int invert_mod(discreta_base &p)
void add_apply(discreta_base &x)
discreta_matrix & change_to_matrix()
std::ostream & printobjectkind(std::ostream &)
int neq(discreta_base &a)
void integral_division_by_integer_exact_apply(int x)
virtual std::ostream & print(std::ostream &)
void integral_division_by_integer_exact(int x, discreta_base &q)
virtual int compare_with_euclidean(discreta_base &a)
int is_divisor(discreta_base &y)
discreta_matrix & as_matrix()
permutation & change_to_permutation()
void add(discreta_base &x, discreta_base &y)
virtual kind s_virtual_kind()
discreta_base & i_power_j(int i, int j)
database & change_to_database()
void save_ascii(std::ostream &f)
number_partition & change_to_number_partition()
void integral_division_by_integer(int x, discreta_base &q, discreta_base &r)
void pack(memory &M, int verbose_level, int debug_depth)
discreta_base & factorial(int z)
discreta_base & power_longinteger_mod(longinteger &l, discreta_base &p)
virtual void negate_to(discreta_base &x)
void save_file(const char *fname)
virtual void add_to(discreta_base &x, discreta_base &y)
void mult(discreta_base &x, discreta_base &y)
virtual int compare_with(discreta_base &a)
virtual void mult_to(discreta_base &x, discreta_base &y)
discreta_base & power_int_mod(int l, discreta_base &p)
void add_mod(discreta_base &x, discreta_base &y, discreta_base &p)
void freeself_discreta_base()
unipoly & change_to_unipoly()
hollerith & as_hollerith()
design_parameter_source & change_to_design_parameter_source()
void unpack(memory &M, int verbose_level, int debug_depth)
longinteger & change_to_longinteger()
void read_memory(memory &m, int debug_depth)
void swap(discreta_base &a)
discreta_base & operator+=(discreta_base &y)
discreta_base & divide_by_exact(discreta_base &x)
std::ostream & println(std::ostream &)
number_partition & as_number_partition()
void modulo(discreta_base &p)
discreta_base & operator=(const discreta_base &x)
memory & change_to_memory()
design_parameter & change_to_design_parameter()
void copyobject(discreta_base &x)
void mult_mod(discreta_base &x, discreta_base &y, discreta_base &p)
void load_file(const char *fname)
discreta_base & conjugate(discreta_base &x, discreta_base &y)
void print_to_hollerith(hollerith &h)
discreta_base & power_int(int l)
virtual int invert_to(discreta_base &x)
permutation & as_permutation()
design_parameter & as_design_parameter()
hollerith & change_to_hollerith()
btree & change_to_btree()
void write_memory(memory &m, int debug_depth)
bt_key & change_to_bt_key()
void mult_apply(discreta_base &x)
discreta_base & power_longinteger(longinteger &l)
virtual void homo_z(int z)
int order_mod(discreta_base &p)
Vector & change_to_vector()
virtual void copyobject_to(discreta_base &x)
std::ostream & printobjectkindln(std::ostream &)
discreta_base & operator*=(discreta_base &y)
void load_ascii(std::istream &f)
void extended_gcd(discreta_base &n, discreta_base &u, discreta_base &v, discreta_base &g, int verbose_level)
discreta_base & commutator(discreta_base &x, discreta_base &y)
void freeself_kind(kind k)
discreta_matrix & transpose()
void PG_line_rank(int &a, int f_v)
void to_vector_of_rows(Vector &v)
void vector_mult_to(Vector &x, discreta_base &y)
void save_as_inc_file(char *fname)
void binomial(int n_min, int n_max, int k_min, int k_max)
void from_vector_of_columns(Vector &v)
void evaluate_at(discreta_base &x)
int smith_eliminate_column(discreta_matrix &P, discreta_matrix &Pv, int i, int verbose_level)
void weight_enumerator_brute_force(domain *dom, Vector &v)
void incma_print_ascii(std::ostream &ost, int f_tex, int f_row_decomp, Vector &row_decomp, int f_col_decomp, Vector &col_decomp)
void print_decomposed(std::ostream &ost, Vector &row_decomp, Vector &col_decomp)
void KX_module_join(Vector &v1, unipoly &mue1, Vector &v2, unipoly &mue2, Vector &v3, unipoly &mue3, int verbose_level)
void PG_point_unrank(int i0, int j0, int di, int dj, int length, int a)
void from_vector_of_rows(Vector &v)
void negate_to(discreta_base &x)
void KX_module_order_ideal(int i, unipoly &mue, int verbose_level)
void read_mem(memory &M, int debug_depth)
void det(discreta_base &d, int f_v, int f_vv)
void multiply_2by2_from_right(int i, int j, discreta_base &aii, discreta_base &aij, discreta_base &aji, discreta_base &ajj, int verbose_level)
void calc_hash_key(int key_len, hollerith &hash_key, int f_v)
void companion_matrix(unipoly &m, int verbose_level)
int proj_order_mod(integer &P)
void PG_point_normalize(int i0, int j0, int di, int dj, int length)
int smith_eliminate_row(discreta_matrix &Q, discreta_matrix &Qv, int i, int verbose_level)
void stirling_first(int n_min, int n_max, int k_min, int k_max, int f_signless)
discreta_matrix & m_mn(int m, int n)
void apply_row_col_perm(permutation &p)
void KX_module_apply(unipoly &p, Vector &v)
void power_mod(int r, integer &P, discreta_matrix &C)
void smith_normal_form(discreta_matrix &P, discreta_matrix &Pv, discreta_matrix &Q, discreta_matrix &Qv, int verbose_level)
int & s_iji(int i, int j)
void PG_line_unrank(int a)
discreta_matrix & m_mn_n(int m, int n)
void Berlekamp(unipoly &m, int p, int verbose_level)
void mult_to(discreta_base &x, discreta_base &y)
void multiply_2by2_from_left(int i, int j, discreta_base &aii, discreta_base &aij, discreta_base &aji, discreta_base &ajj, int verbose_level)
discreta_matrix & operator=(const discreta_base &x)
int Acover2nl(Vector &nl)
void PG_element_normalize()
discreta_base & s_ij(int i, int j)
int compare_with(discreta_base &a)
void elements_to_unipoly()
void AG_point_rank(int i0, int j0, int di, int dj, int length, int &a)
void incma_print_latex(std::ostream &f, int f_row_decomp, Vector &row_decomp, int f_col_decomp, Vector &col_decomp, int f_labelling_points, Vector &point_labels, int f_labelling_blocks, Vector &block_labels)
void PG_k_q_design(domain *dom, int k, int f_v, int f_vv)
void apply_perms(int f_row_perm, permutation &row_perm, int f_col_perm, permutation &col_perm)
void AG_point_unrank(int i0, int j0, int di, int dj, int length, int a)
void add_to(discreta_base &x, discreta_base &y)
void incma_print_ascii_permuted_and_decomposed(std::ostream &ost, int f_tex, Vector &decomp, permutation &p)
void Simplex_code_generator_matrix(domain *dom, int k, int f_v)
void to_vector_of_columns(Vector &v)
void matrix_mult_to(discreta_matrix &x, discreta_base &y)
void m_iji(int i, int j, int a)
void calc_theX(int &nb_X, int *&theX)
void apply_col_row_perm(permutation &p)
int get_kernel(Vector &base_cols, discreta_matrix &kernel)
int Gauss(int f_special, int f_complete, Vector &base_cols, int f_P, discreta_matrix &P, int verbose_level)
void MacWilliamsTransform(int n, int q, int f_v)
void write_mem(memory &m, int debug_depth)
void stirling_second(int n_min, int n_max, int k_min, int k_max, int f_ordered)
discreta_matrix & realloc(int m, int n)
void AG_rep(domain *dom, permutation &p, int f_action_from_right)
void X_times_id_minus_self()
std::ostream & print(std::ostream &)
void copyobject_to(discreta_base &x)
void KX_cyclic_module_generator(Vector &v, unipoly &mue, int verbose_level)
void KX_module_minpol(unipoly &p, unipoly &m, unipoly &mue, int verbose_level)
void save_as_inc(std::ofstream &f)
void PG_design_point_vs_hyperplane(domain *dom, int k, int f_v)
void multiply_vector_from_left(Vector &x, Vector &y)
void determinant(discreta_base &d, int verbose_level)
int invert_to(discreta_base &x)
void PG_rep(domain *dom, permutation &p, int f_action_from_right, int f_modified)
void incma_print_latex2(std::ostream &f, int width, int width_10, int f_outline_thin, const char *unit_length, const char *thick_lines, const char *thin_lines, const char *geo_line_width, int f_row_decomp, Vector &row_decomp, int f_col_decomp, Vector &col_decomp, int f_labelling_points, Vector &point_labels, int f_labelling_blocks, Vector &block_labels)
matrix_access operator[](int i)
void det_modify_input_matrix(discreta_base &d, int f_v, int f_vv)
void Frobenius(unipoly &m, int p, int verbose_level)
void PG_point_rank(int i0, int j0, int di, int dj, int length, int &a)
DISCRETA class for influencing arithmetic operations.
layer1_foundations::field_theory::finite_field * get_F()
int is_Orbiter_finite_field_domain()
std::ostream & print(std::ostream &)
void read_mem(memory &m, int debug_depth)
void chop_off_extension_if_present(char *ext)
void freeself_hollerith()
int compare_with(discreta_base &a)
void get_extension_if_present(char *ext)
void copyobject_to(discreta_base &x)
void write_mem(memory &m, int debug_depth)
hollerith & operator=(const discreta_base &x)
void append(const char *p)
void add_to(discreta_base &x, discreta_base &y)
std::ostream & print(std::ostream &)
int invert_to(discreta_base &x)
void rand(int low, int high)
void negate_to(discreta_base &x)
void copyobject_to(discreta_base &x)
void normalize(discreta_base &p)
integer & operator=(const discreta_base &x)
int compare_with_euclidean(discreta_base &a)
int compare_with(discreta_base &a)
void integral_division(discreta_base &x, discreta_base &q, discreta_base &r, int verbose_level)
void mult_to(discreta_base &x, discreta_base &y)
DISCRETA class for integers of arbitrary magnitude.
void negate_to(discreta_base &x)
void divide_out_int(int d)
int compare_with(discreta_base &b)
std::ostream & print(std::ostream &)
int retract_to_integer_if_possible(integer &x)
void allocate_empty(int len)
void integral_division(discreta_base &x, discreta_base &q, discreta_base &r, int verbose_level)
longinteger & operator=(const discreta_base &x)
void freeself_longinteger()
int compare_with_unsigned(longinteger &b)
void allocate_internal(int sign, int len, const char *p)
void mult_to(discreta_base &x, discreta_base &y)
int invert_to(discreta_base &x)
int compare_with_euclidean(discreta_base &b)
void copyobject_to(discreta_base &x)
void add_to(discreta_base &x, discreta_base &y)
void settype_longinteger()
void square_root_floor(discreta_base &x)
LONGINTEGER_REPRESENTATION * s_rep()
void normalize_representation()
int Lucas_test_Mersenne(int m, int verbose_level)
void allocate(int sign, const char *p)
longinteger & Fermat(int n)
longinteger & Mersenne(int n)
DISCRETA utility class for matrix access.
discreta_base & operator[](int j)
DISCRETA class to serialize data structures.
void copyobject_to(discreta_base &x)
int multiplicity_of_character(char c)
void realloc(int new_length)
void append(int length, char *d)
void read_mem(memory &M, int debug_depth)
void write_mem(memory &M, int debug_depth)
memory & operator=(const discreta_base &x)
void read_file(char *fname, int verbose_level)
std::ostream & print(std::ostream &ost)
void write_file(char *fname, int verbose_level)
void init(int length, char *d)
DISCRETA class for partitions of an integer.
void copyobject_to(discreta_base &x)
void allocate_number_partition()
void type(number_partition &q)
number_partition & operator=(const discreta_base &x)
std::ostream & print(std::ostream &)
int sum_of_decreased_parts()
int first_into_at_most_k_parts(int n, int k)
void settype_number_partition()
void multinomial_ordered(discreta_base &res, int f_v)
void multinomial(discreta_base &res, int f_v)
int next_into_at_most_k_parts(int n, int k)
void freeself_number_partition()
int first_into_k_parts(int n, int k)
int next_into_k_parts(int n, int k)
DISCRETA class for bulk storage.
int search_key_pair(int len, btree_page_registry_key_pair *K, int &idx)
void allocate_rec(Buffer *BF, int buf_idx, int x, int verbose_level)
void save_page(Buffer *BF, int buf_idx, int verbose_level)
int btree_page_registry_length
int load_page(Buffer *BF, int x, int buf_idx, int verbose_level)
layer1_foundations::data_structures::page_storage * btree_pages
void reallocate_table(int verbose_level)
btree_page_registry_key_pair * btree_table
int btree_page_registry_allocated_length
void write_pages_to_file(btree *B, int buf_idx, int verbose_level)
int search(int len, int btree_idx, int btree_x, int &idx)
void init(int verbose_level)
DISCRETA permutation class.
void read_mem(memory &m, int debug_depth)
int invert_to(discreta_base &x)
void embed_at(permutation &b, int n, int at)
void remove_fixpoint(permutation &b, int i)
void AddNCycle(int first, int len)
std::ostream & print(std::ostream &)
void sscan(const char *s, int verbose_level)
void set_print_type_integer_from_one()
void set_print_type_integer_from_zero()
void freeself_permutation()
void Add3Cycle(int i0, int i1, int i2)
void copyobject_to(discreta_base &x)
void write_mem(memory &m, int debug_depth)
void Add5Cycle(int i0, int i1, int i2, int i3, int i4)
void add_n_fixpoints_in_front(permutation &b, int n)
void cycle_type(Vector &type, int verbose_level)
std::ostream & print_cycle(std::ostream &ost)
void get_fixpoints(Vector &f)
void add_fixpoint_in_front(permutation &b)
void induce_on_2tuples(permutation &p, int f_injective)
void mult_to(discreta_base &x, discreta_base &y)
void cartesian_product_action(permutation &a, permutation &b)
void set_print_type_PG_1_q_element(domain *dom)
void cycles(Vector &cycles)
void add_n_fixpoints_at_end(permutation &b, int n)
void Add4Cycle(int i0, int i1, int i2, int i3)
void Cn_in_Cnm(int n, int m)
void induce_on_lines_of_PG_k_q(int k, int q, permutation &per, int verbose_level)
void induce_action_on_blocks(permutation &gg, Vector &B)
void Add2Cycle(int i0, int i1)
int compare_with(discreta_base &a)
std::ostream & print_list(std::ostream &ost)
int signum(int verbose_level)
int nb_of_inversions(int verbose_level)
void settype_permutation()
void induce2(permutation &b)
permutation & operator=(const discreta_base &x)
void restrict_to_subset(permutation &q, int first, int len)
void induce3(permutation &b)
void singer_cycle_on_points_of_projective_plane(int p, int f_modified, int verbose_level)
void join(permutation &a, permutation &b)
void convert_digit(int i, hollerith &a)
void scan(std::istream &is, int verbose_level)
DISCRETA class related to printing of objects.
printing_mode(enum printing_mode_enum printing_mode)
DISCRETA class for polynomials in one variable.
int is_squarefree(int verbose_level)
void singer_candidate(int p, int f, int b, int a)
void normal_base(int p, discreta_matrix &F, discreta_matrix &N, int verbose_level)
void mult_to(discreta_base &x, discreta_base &y)
void integral_division(discreta_base &x, discreta_base &q, discreta_base &r, int verbose_level)
void weight_enumerator_MDS_code(int n, int k, int q, int verbose_level)
void largest_divisor_prime_to(unipoly &q, unipoly &r)
int first_irreducible_polynomial(int p, unipoly &m, discreta_matrix &F, discreta_matrix &N, Vector &v, int verbose_level)
void add_to(discreta_base &x, discreta_base &y)
void numeric_polynomial(int n, int q)
void Singer(int p, int f, int verbose_level)
int next_irreducible_polynomial(int p, unipoly &m, discreta_matrix &F, discreta_matrix &N, Vector &v, int verbose_level)
int is_irreducible_GFp(int p, int verbose_level)
int polynomial_numeric(int q)
unipoly & operator=(const discreta_base &x)
void copyobject_to(discreta_base &x)
int is_irreducible(int q, int verbose_level)
void charpoly(int q, int size, int *mtx, int verbose_level)
void get_an_irreducible_polynomial(int f, int verbose_level)
std::ostream & print_as_vector(std::ostream &ost)
void negate_to(discreta_base &x)
int compare_with_euclidean(discreta_base &a)
std::ostream & print(std::ostream &)
int is_primitive(int m, int p, Vector &vp, int verbose_level)
void evaluate_at(discreta_base &x, discreta_base &y)
void normalize(discreta_base &p)
DISCRETA class related to class domain.
#define MAX_FSTREAM_TABLE
algebra, combinatorics and graph theory, geometry, linear algebra, number theory, data structures,...
void print_intvec_mod_10(Vector &v)
int determine_restricted_number_of_designs_t(database &D, btree &B, int btree_idx_tvkl, int t, int first, int len)
void fill_char(void *v, int cnt, int c)
int is_Orbiter_finite_field_domain(domain *&d)
void discreta_print_factorization(Vector &primes, Vector &exponents, std::ostream &o)
void print_clan_tex(discreta_base &t, discreta_base &v, discreta_base &k, int delta_lambda, discreta_base &m_max)
int calc_redinv(int t, int v, int k, int delta_lambda, int &c, int &T, int &V, int &K, int &Delta_lambda)
domain * allocate_finite_field_domain(int q, int verbose_level)
void html_foot(std::ostream &ost)
enum printing_mode_enum current_printing_mode()
void bt_key_print_int4(char **key, ostream &ost)
discreta_base * calloc_nobjects_plus_length(int n, kind k)
int bt_key_compare_int4(char **p_key1, char **p_key2)
void design_lambda_max_half(int t, int v, int k, discreta_base &lambda_max_half)
void texable_string(char *in, char *out)
void print_factorization_hollerith(Vector &primes, Vector &exponents, hollerith &h)
int calc_delta_lambda(int v, int t, int k, int f_v)
void uchar_move(uchar *p, uchar *q, int len)
void determinant_map(discreta_base &x, discreta_base &d)
void free_nobjects_plus_length(discreta_base *p)
void stirling_first(int n, int k, int f_signless, discreta_base &res, int verbose_level)
void freeobject(discreta_base *p)
void Catalan_nk_matrix(int n, discreta_matrix &Cnk, int verbose_level)
discreta_base * callocobject(kind k)
int finite_field_domain_primitive_root()
void ratio_int(int *Px, int *Py, int idx_from, int idx_to, int idx_result, double r)
void sieve_primes(Vector &v, int from, int to, int limit, int verbose_level)
int bt_key_int2_cmp(char *p1, char *p2)
int bt_lexicographic_cmp(char *p1, char *p2)
fstream * fstream_table[MAX_FSTREAM_TABLE]
void int_vector_realloc(int *&p, int old_length, int new_length)
int sqrt_mod_involved(int a, int p, int verbose_level)
void tuple2_rank(int rank, int &i, int &j, int n, int f_injective)
void design_mendelsohn_rhs(int v, int t, int k, discreta_base &lambda, int m, int s, Vector &rhs)
void bt_key_get_int2(char **key, int_2 &i)
void free_m_times_n_objects(discreta_base *p)
void database_init(int verbose_level)
void intersection_of_vectors(Vector &V, Vector &v)
void design_parameter_database_clan_report(char *path_db, Vector &ancestor, Vector &clan_lambda, Vector &clan_member, Vector &clan_member_path)
int bt_key_int_cmp(char *p1, char *p2)
struct orbiter::layer2_discreta::buffer Buffer
DISCRETA auxiliary class related to the class database.
void page_table_exit(int verbose_level)
domain * get_current_domain()
int page_table_alloc(int verbose_level)
void sieve(Vector &primes, int factorbase, int verbose_level)
void int_matrix_realloc(int *&p, int old_m, int new_m, int old_n, int new_n)
void bt_key_print_int2(char **key, ostream &ost)
void prepare_design_parameters_from_id(database &D, int id, hollerith &h)
void Binomial(int n, int k, discreta_base &n_choose_k)
void page_table_free(int idx, int verbose_level)
void printobjectkind(std::ostream &ost, kind k)
void design_lambda_ij(int t, int v, int k, discreta_base &lambda, int i, int j, discreta_base &lambda_ij)
int calc_resinv(int t, int v, int k, int delta_lambda, int &c, int &T, int &V, int &K, int &Delta_lambda)
void frobenius_in_AG(domain *dom, int n, permutation &p)
void free_nobjects(discreta_base *p, int n)
int Gauss_int(int *A, int f_special, int f_complete, int *base_cols, int f_P, int *P, int m, int n, int Pn, int q, int *add_table, int *mult_table, int *negate_table, int *inv_table, int verbose_level)
struct orbiter::layer2_discreta::keycarrier KEYCARRIER
DISCRETA auxiliary class related to the class database.
int design_parameter_database_already_there(database &D, design_parameter &p, int &idx)
void uint4_swap(uint_4 &x, uint_4 &y)
int factor_if_prime_power(int n, int *p, int *e)
int finite_field_domain_characteristic(domain *d)
int sqrt_mod(int a, int p, int verbose_level)
int is_ancestor(int t, int v, int k)
void prepare_link(hollerith &link, int id)
void merge_with_fellows(Vector &v1, Vector &v1_fellow, Vector &v2, Vector &v2_fellow, Vector &v3, Vector &v3_fellow)
void bt_key_fill_in(char *key, Vector &V, Vector &the_object)
void midpoint_of_5(int *Px, int *Py, int i1, int i2, int i3, int i4, int i5, int idx)
int hash_int(int hash0, int a)
int is_finite_field_domain(domain *&d)
void stirling_second(int n, int k, int f_ordered, discreta_base &res, int verbose_level)
struct orbiter::layer2_discreta::pagetyp PageTyp
DISCRETA auxiliary class related to the class database.
int bt_key_compare_int2(char **p_key1, char **p_key2)
void design_parameter_database_family_report(char *path_db, int t, int v, int k, int lambda, int minimal_t)
void signum_map(discreta_base &x, discreta_base &d)
page_table * page_table_pointer(int slot)
int is_GFq_domain(domain *&d)
void root_buf_free(int i)
void design_parameter_database_read_design_txt(char *fname_design_txt, char *path_db, int f_form_closure, int minimal_t, int verbose_level)
const char * discreta_arch
void midpoint_of_2(int *Px, int *Py, int i1, int i2, int idx)
void design_lambda_ijs_matrix(int t, int v, int k, discreta_base &lambda, int s, discreta_matrix &M)
struct orbiter::layer2_discreta::datatype DATATYPE
DISCRETA auxiliary class related to the class database.
int queue_get_and_remove_first_element(Vector &Q)
int design_parameters_admissible(int v, int t, int k, discreta_base &lambda)
void bt_key_fill_in_int2(char **p_key, discreta_base &key_op)
void finite_field_domain_base_over_subfield(Vector &b)
int nb_PG_lines(int n, int q)
const char * kind_ascii(kind k)
void fine_tune(layer1_foundations::field_theory::finite_field *F, int *mtxD, int verbose_level)
void Catalan(int n, Vector &v, int verbose_level)
void free_finite_field_domain(domain *dom)
void bt_key_fill_in_int4(char **p_key, discreta_base &key_op)
void print_classification_tex(Vector &content, Vector &multiplicities)
void the_end_quietly(int t0)
int queue_length(Vector &Q)
void print_clan_tex_int(int t, int v, int k)
@ PERMUTATION
PERMUTATION.
@ PERM_GROUP_STAB_CHAIN
PERM_GROUP_STAB_CHAIN.
@ DESIGN_PARAMETER
DESIGN_PARAMETER.
@ NUMBER_PARTITION
NUMBER_PARTITION.
@ LONGINTEGER
LONGINTEGER.
@ DESIGN_PARAMETER_SOURCE
DESIGN_PARAMETER_SOURCE.
std::ostream & operator<<(std::ostream &ost, class discreta_base &p)
void pop_domain(domain *&d)
void merge(Vector &v1, Vector &v2, Vector &v3)
void bt_key_fill_in_string(char **p_key, int output_size, discreta_base &key_op)
void page_table_init(int verbose_level)
void Catalan_n(int n, Vector &v, discreta_base &res, int verbose_level)
void design_parameter_database_closure(database &D, int highest_id_already_closed, int minimal_t, int verbose_level)
int fstream_table_used[MAX_FSTREAM_TABLE]
void the_first_n_primes(Vector &P, int n)
void queue_init(Vector &Q, int elt)
void bt_key_get_int4(char **key, int_4 &i)
void N_choose_K(discreta_base &n, int k, discreta_base &res)
int determine_restricted_number_of_designs_t_v(database &D, btree &B, int btree_idx_tvkl, int t, int v, int first, int len)
int tuple2_unrank(int i, int j, int n, int f_injective)
int NormRemainder(int a, int m)
void call_system(char *cmd)
void design_lambda_max(int t, int v, int k, discreta_base &lambda_max)
void design_parameter_database_export_tex(char *path_db)
void html_head(std::ostream &ost, char *title_long, char *title_short)
void queue_append(Vector &Q, int elt)
void translation_in_AG(domain *dom, int n, int i, discreta_base &a, permutation &p)
void int_vector_shorten(int *&p, int new_length)
void Krawtchouk(int n, int q, int i, int j, discreta_base &a)
void factor_integer(int n, Vector &primes, Vector &exponents)
void merge_with_value(Vector &idx1, Vector &idx2, Vector &idx3, Vector &val1, Vector &val2, Vector &val3)
int is_GFp_domain(domain *&d)
const char * discreta_home
void bt_key_print(char *key, Vector &V, ostream &ost)
int bt_key_compare(char *key1, char *key2, Vector &V, int depth)
void design_mendelsohn_coefficient_matrix(int t, int m, discreta_matrix &M)
discreta_base * calloc_nobjects(int n, kind k)
int fstream_table_get_free_entry()
void design_parameter_database_clans(char *path_db, int f_html, int f_v, int f_vv)
void Catalan_nk_star_matrix(int n, discreta_matrix &Cnk, int verbose_level)
void perm2permutation(int *a, int n, permutation &p)
int calc_derinv(int t, int v, int k, int delta_lambda, int &c, int &T, int &V, int &K, int &Delta_lambda)
void frobenius_in_PG(domain *dom, int n, permutation &p)
@ rule_supplementary_residual
@ rule_supplementary_alltop
@ rule_supplementary_reduced_t
@ rule_trung_complementary
@ rule_supplementary_derived
const char * action_kind_ascii(action_kind k)
int remainder_mod(int i, int n)
void design_parameter_database_add_if_new(database &D, design_parameter &p, int &highest_id, int verbose_level)
int invert_mod_integer(int i, int p)
@ on_group_elements_via_conjugation_using_group_table
@ on_subset_of_group_elements_by_conjugation_with_table
@ on_subset_of_group_elements_by_conjugation
void output_texable_string(std::ostream &ost, char *in)
discreta_base * calloc_m_times_n_objects(int m, int n, kind k)
int is_trivial_clan(int t, int v, int k)
int finite_field_domain_order_int(domain *d)
@ printing_mode_ascii_file
int code_is_irreducible(int k, int nmk, int idx_zero, int *M)
void push_domain(domain *d)
void Catalan_nk_star(int n, int k, discreta_matrix &Cnk, discreta_base &res, int verbose_level)
struct orbiter::layer2_discreta::itemtyp ItemTyp
DISCRETA auxiliary class related to the class database.
void design_lambda_ijs(int t, int v, int k, discreta_base &lambda, int s, int i, int j, discreta_base &lambda_ijs)
the orbiter library for the classification of combinatorial objects
DISCRETA internal class related to class database.
DISCRETA auxiliary class related to the class database.
DISCRETA auxiliary class related to the class database.
DISCRETA auxiliary class related to the class database.
DISCRETA auxiliary class related to the class database.
DISCRETA internal class to represent long integers.
DISCRETA auxiliary class related to the class database.
ItemTyp Item[BTREEMAXPAGESIZE+1]
LONGINTEGER_REPRESENTATION * longinteger_rep
discreta_base * matrix_pointer
discreta_base * vector_pointer