17namespace layer1_foundations {
80 int f_v = (verbose_level >= 1);
83 cout <<
"flag::init type_len = "
88 cout <<
"flag::init done" << endl;
96 int f_v = (verbose_level >= 1);
101 cout <<
"flag::init_recursion type_len = "
116 for (i = 0; i <
idx; i++) {
129 cout <<
"flag::init type_len = " <<
type_len <<
" s0=" <<
s0
130 <<
" s1=" <<
s1 <<
" s2=" <<
s2 <<
" k=" <<
k
131 <<
" K=" <<
K << endl;
158 cout <<
"flag::init_recursion type_len = " <<
type_len
159 <<
" N0=" <<
N0 <<
" N1=" <<
N1 <<
" N=" <<
N << endl;
163 cout <<
"flag::init_recursion type_len = " <<
type_len
170 int f_v = (verbose_level >= 1);
174 cout <<
"flag::unrank idx=" <<
idx <<
" rk=" << rk << endl;
178 cout <<
"flag::unrank idx != type_len - 1" << endl;
185 cout <<
"flag::unrank idx=" <<
idx <<
" rk=" << rk
186 <<
" a=" << a <<
" b=" << b << endl;
192 cout <<
"flag::unrank M=" << endl;
204 int f_v = (verbose_level >= 1);
208 cout <<
"flag::unrank_recursion idx=" <<
idx
209 <<
" rk=" << rk << endl;
212 cout <<
"flag::unrank_recursion subspace=" << endl;
220 cout <<
"flag::unrank_recursion idx=" <<
idx
221 <<
" rk=" << rk <<
" a=" << a <<
" b=" << b << endl;
229 cout <<
"flag::unrank_recursion after unrank "
239 cout <<
"flag::unrank_recursion idx=" <<
idx
240 <<
" after mult, subspace=:" << endl;
254 int f_v = (verbose_level >= 1);
258 cout <<
"flag::rank idx=" <<
idx << endl;
262 cout <<
"flag::rank idx != type_len - 1" << endl;
266 cout <<
"flag::rank input_subspace:" << endl;
274 cout <<
"flag::rank idx=" <<
idx <<
" a=" << a << endl;
279 cout <<
"flag::rank after unrank:" << endl;
290 cout <<
"flag::rank idx=" <<
idx <<
" rk=" << rk
291 <<
" a=" << a <<
" b=" << b << endl;
297 int *big_space,
int verbose_level)
299 int f_v = (verbose_level >= 1);
300 long int a, b, rk, r, i, j;
304 cout <<
"flag::rank_recursion idx=" <<
idx << endl;
307 cout <<
"flag::rank_recursion input_subspace:" << endl;
311 cout <<
"flag::rank_recursion big_space:" << endl;
324 cout <<
"flag::rank_recursion r != s2" << endl;
325 cout <<
"r=" << r << endl;
326 cout <<
"s2=" <<
s2 << endl;
330 cout <<
"flag::rank_recursion transform:" << endl;
333 for (i = 0; i <
s1; i++) {
334 for (j = 0; j <
s2; j++) {
341 cout <<
"flag::rank_recursion input submatrix M1:" << endl;
354 cout <<
"flag::rank_recursion coefficient matrix M2:" << endl;
358 for (i = 0; i <
s1; i++) {
362 cout <<
"flag::rank_recursion i=" << i <<
" M3=" << endl;
367 cout <<
"flag::rank_recursion fatal: "
368 "the i-th vector is not in the space" << endl;
369 cout <<
"i=" << i << endl;
380 cout <<
"flag::rank_recursion coefficient matrix:" << endl;
386 cout <<
"a=" << a << endl;
391 cout <<
"after unrank_embedded, coefficient matrix is" << endl;
399 cout <<
"after unrank_embedded:" << endl;
411 cout <<
"flag::rank_recursion idx=" <<
idx
412 <<
" a=" << a <<
" b=" << b <<
" rk=" << rk << endl;
a collection of combinatorial functions
long int generalized_binomial(int n, int k, int q)
a collection of functions related to sorted vectors
int int_vec_compare(int *p, int *q, int len)
linear_algebra::linear_algebra * Linear_algebra
a maximal chain of subspaces
void unrank(long int rk, int *subspace, int verbose_level)
void unrank_recursion(long int rk, int *subspace, int verbose_level)
void init_recursion(int n, int *type, int type_len, int idx, field_theory::finite_field *F, int verbose_level)
void init(int n, int *type, int type_len, field_theory::finite_field *F, int verbose_level)
field_theory::finite_field * F
long int rank(int *subspace, int verbose_level)
long int rank_recursion(int *subspace, int *big_space, int verbose_level)
to rank and unrank subspaces of a fixed dimension in F_q^n
long int rank_lint(int verbose_level)
void unrank_embedded_subspace_lint(long int rk, int verbose_level)
void init(int n, int k, field_theory::finite_field *F, int verbose_level)
void mult_vector_from_the_left(int *v, int *A, int *vA, int m, 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 verbose_level)
void identity_matrix(int *A, int n)
void mult_matrix_matrix(int *A, int *B, int *C, int m, int n, int o, int verbose_level)
#define Int_vec_print_integer_matrix_width(A, B, C, D, E, F)
#define Int_matrix_print(A, B, C)
#define Int_vec_copy(A, B, C)
the orbiter library for the classification of combinatorial objects