13namespace layer1_foundations {
14namespace combinatorics {
41 int f_v = (verbose_level >= 1);
47 cout <<
"brick_domain::init field order must be a prime" << endl;
52 cout <<
"brick_domain::init q=" <<
q <<
" nb_bricks=" <<
nb_bricks << endl;
57 int &f_vertical,
int &x0,
int &y0,
int verbose_level)
59 int f_v = (verbose_level >= 1);
67 cout <<
"brick_domain::unrank rk=" << rk
68 <<
" f_vertical=" << f_vertical
69 <<
" x0=" << x0 <<
" y0=" << y0 << endl;
75 int f_v = (verbose_level >= 1);
86 cout <<
"brick_domain::rank rk=" << rk
87 <<
" f_vertical=" << f_vertical
88 <<
" x0=" << x0 <<
" y0=" << y0 << endl;
94 int &x1,
int &y1,
int &x2,
int &y2,
98 int x0, y0, f_vertical;
100 unrank(rk, f_vertical, x0, y0, verbose_level);
114 int x2,
int y2,
int verbose_level)
116 int f_v = (verbose_level >= 1);
118 int x0, y0, f_vertical;
123 if (y2 ==
F->
add(y1, 1)) {
126 else if (y1 ==
F->
add(y2, 1)) {
130 cout <<
"brick_domain::rank_coordinates y-coordinates apart" << endl;
137 if (x2 ==
F->
add(x1, 1)) {
140 else if (x1 ==
F->
add(x2, 1)) {
144 cout <<
"brick_domain::rank_coordinates x-coordinates apart" << endl;
149 cout <<
"brick_domain::rank_coordinates "
150 "neither vertical nor horizontal" << endl;
161 cout <<
"brick_domain::rank_coordinates rk=" << rk
162 <<
" f_vertical=" << f_vertical
163 <<
" x0=" << x0 <<
" y0=" << y0 << endl;
169void brick_test(
int q,
int verbose_level)
173 int f_vertical, x, y, x2, y2;
176 F.finite_field_init(q,
FALSE , 0);
177 B.
init(&F, verbose_level);
179 B.
unrank(i, f_vertical, x, y, 0);
180 j = B.
rank(f_vertical, x, y, 0);
182 cout <<
"brick_test i != j in rank" << endl;
188 cout <<
"brick_test i != j in rank_coordinates" << endl;
189 cout <<
"i=" << i << endl;
190 cout <<
"x=" << x << endl;
191 cout <<
"y=" << y << endl;
192 cout <<
"x2=" << x2 << endl;
193 cout <<
"y2=" << y2 << endl;
197 cout <<
"brick_test: OK" << endl;
int rank(int f_vertical, int x0, int y0, int verbose_level)
void unrank_coordinates(int rk, int &x1, int &y1, int &x2, int &y2, int verbose_level)
field_theory::finite_field * F
void unrank(int rk, int &f_vertical, int &x0, int &y0, int verbose_level)
int rank_coordinates(int x1, int y1, int x2, int y2, int verbose_level)
void init(field_theory::finite_field *F, int verbose_level)
the orbiter library for the classification of combinatorial objects