13namespace layer3_group_actions {
14namespace induced_actions {
54 cout <<
"action_on_factor_space::free" << endl;
58 cout <<
"action_on_factor_space::free "
59 "before FREE_int(subspace_basis)" << endl;
65 cout <<
"action_on_factor_space::free "
66 "before FREE_int(base_cols)" << endl;
72 cout <<
"action_on_factor_space::free "
73 "before FREE_int(embedding)" << endl;
79 cout <<
"action_on_factor_space::free "
80 "before FREE_int(projection_table)" << endl;
86 cout <<
"action_on_factor_space::free "
87 "before FREE_int(preimage_table)" << endl;
93 cout <<
"action_on_factor_space::free "
94 "before FREE_int(tmp)" << endl;
100 cout <<
"action_on_factor_space::free "
101 "before FREE_int(Tmp1)" << endl;
107 cout <<
"action_on_factor_space::free "
108 "before FREE_int(Tmp2)" << endl;
114 cout <<
"action_on_factor_space::free "
115 "before FREE_int(coset_reps_Gauss)" << endl;
133 cout <<
"action_on_factor_space::free done" << endl;
140 long int *subspace_basis_ranks,
int subspace_basis_size,
143 int f_v = (verbose_level >= 1);
146 cout <<
"action_on_factor_space::init_light" << endl;
164 cout <<
"action_on_factor_space::init_light done" << endl;
171 long int *subspace_basis_ranks,
int subspace_basis_size,
172 long int *point_list,
int nb_points,
177 int f_v = (verbose_level >= 1);
178 int f_vv = (verbose_level >= 2);
179 int f_vvv = (verbose_level >= 3);
183 cout <<
"action_on_factor_space::init_"
184 "by_rank_table_mode" << endl;
185 cout <<
"nb_points = " << nb_points << endl;
204 cout <<
"action_on_factor_space::init_"
205 "by_rank_table_mode "
206 "before init_coset_table" << endl;
210 point_list, nb_points,
215 cout <<
"action_on_factor_space::init_"
216 "by_rank_table_mode "
217 "after init_coset_table" << endl;
222 cout <<
"action_on_factor_space::init_by_"
223 "rank_table_mode we found "
228 if (nb_points < 100) {
232 cout <<
"too large to print" << endl;
244 cout <<
"action_on_factor_space::init_"
245 "by_rank_table_mode the preimage table:" << endl;
249 cout << setw(5) << i <<
" : "
260 cout <<
"too large to print" << endl;
264 cout <<
"action_on_factor_space::init_"
265 "by_rank_table_mode done" << endl;
273 cout <<
"The Gauss-coset representatives are:" << endl;
276 cout << setw(5) << i <<
" : " << setw(7)
284 cout <<
"too large to print" << endl;
289 long int *point_list,
int nb_points)
293 cout <<
"The projection_table is:" << endl;
295 if (nb_points < 100) {
296 cout <<
"i : pt : pt_coords : projection : "
297 "proj_coords" << endl;
298 for (i = 0; i < nb_points; i++) {
299 cout << setw(5) << i <<
" : "
300 << setw(7) << point_list[i] <<
" : ";
313 cout <<
"too big to print" << endl;
318 long int *point_list,
int nb_points,
321 int f_v = (verbose_level >= 1);
325 cout <<
"action_on_factor_space::init_coset_table" << endl;
326 cout <<
"nb_points = " << nb_points << endl;
338 for (i = 0; i < nb_points; i++) {
339 if (f_v && ((i % 5000) == 0)) {
340 cout <<
"action_on_factor_space::init_"
341 "by_rank_table_mode " << i
342 <<
" / " << nb_points
359 for (j = 0; j < i; j++) {
370 for (i = 0; i < nb_points; i++) {
377 cout <<
"action_on_factor_space::init_coset_table done" << endl;
385 long int *subspace_basis_ranks,
int subspace_basis_size,
386 int f_compute_tables,
389 int f_v = (verbose_level >= 1);
392 cout <<
"action_on_factor_space::init_by_rank" << endl;
403 init2(A_base, A, f_compute_tables, verbose_level);
405 cout <<
"action_on_factor_space::init_by_rank done" << endl;
412 int *subspace_basis,
int subspace_basis_size,
413 int f_compute_tables,
int verbose_level)
415 int f_v = (verbose_level >= 1);
418 cout <<
"action_on_factor_space::init_from_coordinate_vectors" << endl;
428 cout <<
"action_on_factor_space::init_from_coordinate_vectors before init2" << endl;
430 init2(A_base, A, f_compute_tables, verbose_level);
432 cout <<
"action_on_factor_space::init_from_coordinate_vectors after init2" << endl;
435 cout <<
"action_on_factor_space::init_from_coordinate_vectors done" << endl;
443 int f_v = (verbose_level >= 1);
444 int f_vv = (verbose_level >= 1);
451 cout <<
"action_on_factor_space::init2" << endl;
452 cout <<
"action_on_factor_space::init2 "
453 "verbose_level = " << verbose_level << endl;
454 cout <<
"action_on_factor_space::init2 "
456 cout <<
"action_on_factor_space::init2 "
457 "f_compute_tables = " << f_compute_tables << endl;
463 cout <<
"action_on_factor_space::init2 "
464 "after allocating base_cols" << endl;
473 cout <<
"action_on_factor_space::init2 "
474 "subspace basis before reduction:" << endl;
483 cout <<
"action_on_factor_space::init2 "
484 "subspace basis after reduction:" << endl;
490 cout <<
"action_on_factor_space::init2 "
491 "rk != subspace_basis_size" << endl;
492 cout <<
"rk=" << rk << endl;
510 cout <<
"j != factor_space_len" << endl;
511 cout <<
"j=" << j << endl;
516 cout <<
"embedding: ";
523 cout <<
"action_on_factor_space::init2 large_degree=" <<
large_degree << endl;
524 cout <<
"action_on_factor_space::init2 degree=" <<
degree << endl;
527 if (f_compute_tables) {
529 cout <<
"action_on_factor_space::init2 before compute_projection_table" << endl;
533 cout <<
"action_on_factor_space::init2 after compute_projection_table" << endl;
538 cout <<
"not calling compute_projection_table" << endl;
543 cout <<
"action_on_factor_space::init2 done" << endl;
550 int f_v = (verbose_level >= 1);
554 cout <<
"action_on_factor_space::compute_"
555 "projection_table" << endl;
559 for (i = 0; i <
degree; i++) {
563 a =
project(i, verbose_level - 1);
572 cout <<
"projection_table: ";
575 cout <<
"preimage_table: ";
608 for (i = 0; i <
degree; i++) {
610 cout << setw(5) << i <<
" : ";
613 cout <<
" : " << setw(5) << j;
618 cout <<
"action_on_factor_space::list_all_elements too big to print" << endl;
622 cout <<
"project:" << endl;
626 cout <<
" : " << setw(5) << i <<
" : ";
628 cout << setw(5) << j <<
" : ";
637 cout <<
"action_on_factor_space::list_all_elements too big to print" << endl;
640 cout <<
"preimage:" << endl;
641 for (i = 0; i <
degree; i++) {
644 cout << setw(5) << i <<
" : ";
646 cout << setw(5) << j <<
" : ";
653 cout <<
"action_on_factor_space::list_all_elements too big to print" << endl;
673 int f_v = (verbose_level >= 1);
674 int f_vv = (verbose_level >= 2);
675 int f_vvv = (verbose_level >= 3);
676 long int rk1, N, i, b;
684 cout <<
"action_on_factor_space::lexleast_"
691 cout <<
"action_on_factor_space::lexleast_"
693 << rk <<
"->" << rk1 << endl;
715 cout <<
"looping over all " << N
716 <<
" elements in the subspace" << endl;
719 for (i = 0; i < N; i++) {
730 cout <<
"i=" << i <<
" : w=";
736 cout <<
" b=" << b <<
" rk1=" << rk1 << endl;
747 cout <<
"action_on_factor_space::lexleast_"
749 << rk <<
"->" << rk1 << endl;
755 long int rk,
int verbose_level)
757 int f_v = (verbose_level >= 1);
761 cout <<
"action_on_factor_space::project_"
762 "onto_Gauss_reduced_vector "
767 cout <<
"action_on_factor_space::project_"
768 "onto_Gauss_reduced_vector"
776 cout <<
"action_on_factor_space::project_"
777 "onto_Gauss_reduced_vector "
778 "after reduce_mod_subspace" << endl;
789 cout <<
"action_on_factor_space::project_"
790 "onto_Gauss_reduced_vector "
791 "since it is the zero vector, "
792 "we return -1" << endl;
798 cout <<
"action_on_factor_space::project_"
799 "onto_Gauss_reduced_vector calling "
800 "rank_in_large_space" << endl;
804 cout <<
"action_on_factor_space::project_"
805 "onto_Gauss_reduced_vector "
806 "rank_in_large_space returns "
811 cout <<
"action_on_factor_space::project_"
812 "onto_Gauss_reduced_vector "
813 << rk <<
"->" << rk1 << endl;
837 int f_v = (verbose_level >= 1);
840 int f_nonzero =
FALSE;
843 cout <<
"action_on_factor_space::project rk = " << rk << endl;
857 cout <<
"action_on_factor_space::project before rank_in_small_space" << endl;
863 cout <<
"action_on_factor_space::project returns " << a << endl;
869 cout <<
"action_on_factor_space::project returns -1" << endl;
876 long int rk,
int verbose_level)
915 long int rk,
int verbose_level)
953 cout <<
"action_on_factor_space::rank fatal: "
954 "did not find Gauss coset representative"
958 cout <<
"after reduce_mod_subspace" << endl;
961 cout <<
"has rank " << p << endl;
1012 int *Elt,
long int i,
int verbose_level)
1015 int f_v = (verbose_level >= 1);
1019 cout <<
"action_on_factor_space::compute_"
1020 "image i = " << i <<
1021 " verbose_level =" << verbose_level << endl;
1025 cout <<
"action_on_factor_space::compute_"
1026 "image after unrank:";
1032 cout <<
"action_on_factor_space::compute_"
1033 "image before A->element_image_of_low_level"
1037 Elt, verbose_level - 1);
1039 cout <<
"action_on_factor_space::compute_"
1040 "image after A->element_image_of_low_level"
1045 cout <<
"action_on_factor_space::compute_"
1046 "image after element_image_of_low_level:";
1053 cout <<
"action_on_factor_space::compute_"
1054 "image after rank, j = " << j << endl;
1057 cout <<
"action_on_factor_space::compute_"
1058 "image image of " << i <<
" is " << j << endl;
finite dimensional vector space over a finite field
long int rank_point(int *v)
void unrank_basis(int *Mtx, long int *set, int len)
field_theory::finite_field * F
void unrank_point(int *v, long int rk)
a collection of functions related to sorted vectors
int int_vec_search(int *v, int len, int a, int &idx)
int lint_vec_search(long int *v, int len, long int a, int &idx, int verbose_level)
void PG_element_unrank_modified_lint(int *v, int stride, int len, long int a)
linear_algebra::linear_algebra * Linear_algebra
void PG_element_rank_modified_lint(int *v, int stride, int len, long int &a)
various functions related to geometries
void AG_element_unrank(int q, int *v, int stride, int len, long int a)
long int nb_PG_elements(int n, int q)
long int nb_AG_elements(int n, int q)
void mult_matrix_matrix(int *A, int *B, int *C, int m, int n, int o, int verbose_level)
void reduce_mod_subspace(int k, int len, int *basis, int *base_cols, int *v, int verbose_level)
int Gauss_simple(int *A, int m, int n, int *base_cols, int verbose_level)
void add_vector(int *A, int *B, int *C, int m)
a permutation group in a fixed action.
void element_image_of_low_level(int *input, int *output, void *elt, int verbose_level)
long int * preimage_table
long int project_onto_Gauss_reduced_vector(long int rk, int verbose_level)
void init_coset_table(long int *point_list, int nb_points, int verbose_level)
void init_by_rank(algebra::vector_space *VS, actions::action &A_base, actions::action &A, long int *subspace_basis_ranks, int subspace_basis_size, int f_compute_tables, int verbose_level)
void init_from_coordinate_vectors(algebra::vector_space *VS, actions::action &A_base, actions::action &A, int *subspace_basis, int subspace_basis_size, int f_compute_tables, int verbose_level)
long int * coset_reps_Gauss
void unrank(int *v, long int rk, int verbose_level)
void reduce_mod_subspace(int *v, int verbose_level)
long int compute_degree()
algebra::vector_space * VS
void print_projection_table(long int *point_list, int nb_points)
long int rank(int *v, int verbose_level)
long int lexleast_element_in_coset(long int rk, int verbose_level)
void unrank_in_small_space(int *v, long int rk)
long int preimage(long int rk, int verbose_level)
void embed(int *from, int *to)
long int compute_image(actions::action *A, int *Elt, long int i, int verbose_level)
void init_by_rank_table_mode(algebra::vector_space *VS, actions::action &A_base, actions::action &A, long int *subspace_basis_ranks, int subspace_basis_size, long int *point_list, int nb_points, int verbose_level)
long int project(long int rk, int verbose_level)
void init2(actions::action &A_base, actions::action &A, int f_compute_tables, int verbose_level)
long int rank_in_large_space(int *v)
int f_tables_have_been_computed
~action_on_factor_space()
void init_light(algebra::vector_space *VS, actions::action &A_base, actions::action &A, long int *subspace_basis_ranks, int subspace_basis_size, int verbose_level)
void compute_projection_table(int verbose_level)
long int * projection_table
long int compute_large_degree()
void unrank_in_large_space(int *v, long int rk)
long int rank_in_small_space(int *v)
#define Lint_vec_print(A, B, C)
#define Int_vec_print_integer_matrix_width(A, B, C, D, E, F)
#define Int_vec_copy(A, B, C)
#define Int_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects