16namespace layer1_foundations {
60 int f_v = (verbose_level >= 1);
61 int f_vv = (verbose_level >= 2);
62 int i, j, aj, rk, f_OK =
TRUE;
66 cout <<
"rank_checker::check_rank: checking the set ";
71 for (j = 0; j < len; j++) {
73 M1 + j, len ,
m , S[j]);
88 cout <<
"d1=" << d1 << endl;
104 for (j = 0; j < d1; j++) {
106 for (i = 0; i <
m; i++) {
107 M2[i * (d1 + 1) + j] =
M1[i * len + aj];
110 for (i = 0; i <
m; i++) {
111 M2[i * (d1 + 1) + d1] =
M1[i * len + len - 1];
127 cout <<
"not OK; subset: ";
129 cout <<
" leads to a rk " << rk <<
" submatrix" << endl;
144 int len,
long int *S,
int dim_S,
int verbose_level)
146 int f_v = (verbose_level >= 1);
147 int f_vv = (verbose_level >= 2);
148 int i, j, aj, rk, f_OK =
TRUE;
160 cout <<
"d1=" << d1 << endl;
176 for (j = 0; j < d1; j++) {
178 for (i = 0; i <
m; i++) {
179 M2[i * (d1 + 1) + j] = S[i * dim_S + aj];
182 for (i = 0; i <
m; i++) {
183 M2[i * (d1 + 1) + d1] = S[i * dim_S + len - 1];
196 cout <<
"not OK; subset: ";
198 cout <<
" leads to a rk " << rk
199 <<
" submatrix, but we want rank "
215 int len,
long int *S,
int verbose_level)
217 int f_v = (verbose_level >= 1);
218 int f_vv = (verbose_level >= 2);
219 int i, j, aj, rk, f_OK =
TRUE;
223 cout <<
"rank_checker::check_rank_last_two_are_fixed: "
229 for (j = 0; j < len; j++) {
231 M1 + j, len ,
m , S[j]);
246 cout <<
"d1=" << d1 << endl;
262 for (j = 0; j < d1; j++) {
264 for (i = 0; i <
m; i++) {
265 M2[i * (d1 + 2) + j] =
M1[i * len + aj];
268 for (i = 0; i <
m; i++) {
269 M2[i * (d1 + 2) + d1] =
M1[i * len + len - 2];
270 M2[i * (d1 + 2) + d1 + 1] =
M1[i * len + len - 1];
286 cout <<
"not OK; subset: ";
288 cout <<
" leads to a rk " << rk <<
" submatrix" << endl;
300 cout <<
"is OK" << endl;
306 int len,
long int *S,
int f_projective,
int verbose_level)
308 int f_v = (verbose_level >= 1);
309 int f_vv = (verbose_level >= 2);
314 cout <<
"rank_checker::compute_rank_row_vectors set ";
319 for (j = 0; j < len; j++) {
322 M1 + j *
n, 1 ,
n , S[j]);
int check_rank_matrix_input(int len, long int *S, int dim_S, int verbose_level)
int check_rank_last_two_are_fixed(int len, long int *S, int verbose_level)
int check_rank(int len, long int *S, int verbose_level)
int compute_rank_row_vectors(int len, long int *S, int f_projective, int verbose_level)
field_theory::finite_field * GFq
void init(field_theory::finite_field *GFq, int m, int n, int d)
a collection of combinatorial functions
int first_k_subset(int *set, int n, int k)
int next_k_subset(int *set, int n, int k)
void PG_element_unrank_modified(int *v, int stride, int len, int a)
void PG_element_unrank_modified_lint(int *v, int stride, int len, long int a)
linear_algebra::linear_algebra * Linear_algebra
various functions related to geometries
void AG_element_unrank(int q, int *v, int stride, int len, long int a)
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)
#define Int_vec_print_integer_matrix(A, B, C, D)
#define Lint_vec_print(A, B, C)
#define Int_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects