15namespace layer5_applications {
16namespace apps_algebra {
20 int f_v = (verbose_level >= 1);
23 cout <<
"any_group::classes_based_on_normal_form" << endl;
27 cout <<
"any_group::classes_based_on_normal_form !f_linear_group" << endl;
44 cout <<
"any_group::classes_based_on_normal_form done" << endl;
51 int f_v = (verbose_level >= 1);
54 cout <<
"any_group::classes" << endl;
58 cout <<
"any_group::classes !f_linear_group" << endl;
67 cout <<
"any_group::classes "
68 "before A2->conjugacy_classes_and_normalizers" << endl;
73 cout <<
"any_group::classes "
74 "after A2->conjugacy_classes_and_normalizers" << endl;
79 cout <<
"any_group::classes done" << endl;
85 int f_v = (verbose_level >= 1);
88 cout <<
"any_group::find_singer_cycle" << endl;
91 cout <<
"any_group::find_singer_cycle !f_linear_group" << endl;
101 cout <<
"any_group::find_singer_cycle done" << endl;
107 int f_v = (verbose_level >= 1);
110 cout <<
"any_group::search_element_of_order" << endl;
113 cout <<
"any_group::search_element_of_order !f_linear_group" << endl;
120 order, verbose_level);
123 cout <<
"any_group::search_element_of_order done" << endl;
132 int f_v = (verbose_level >= 1);
135 cout <<
"any_group::find_standard_generators" << endl;
138 cout <<
"any_group::find_standard_generators !f_linear_group" << endl;
145 order_a, order_b, order_ab, verbose_level);
148 cout <<
"any_group::find_standard_generators done" << endl;
156 int f_v = (verbose_level >= 1);
157 int f_vv = (verbose_level >= 5);
160 cout <<
"any_group::isomorphism_Klein_quadric" << endl;
164 cout <<
"any_group::isomorphism_Klein_quadric !f_linear_group" << endl;
184 cout <<
"Reading file " << fname <<
" of size " << Fio.
file_size(fname) << endl;
190 cout <<
"Read a set of size " << m << endl;
193 cout <<
"n != A->make_element_size" << endl;
247 for (i = 0; i < 6; i++) {
248 if (Basis1[i] == -1) {
249 Basis1b[i] = F->
negate(1);
252 Basis1b[i] = Basis1[i];
257 for (i = 0; i < 6; i++) {
264 for (i = 0; i < m; i++) {
268 if ((i % 10000) == 0) {
269 cout << i <<
" / " << m << endl;
273 cout <<
"Element " << i <<
" / " << m << endl;
281 cout <<
"Exterior square:" << endl;
286 for (j = 0; j < 6; j++) {
307 cout <<
"Transformed Gram matrix:" << endl;
314 cout <<
"orthogonal matrix :" << endl;
325 cout <<
"orthogonal matrix in the special form:" << endl;
330 int special_Gram[] = {
338 int new_special_Gram[36];
341 new_special_Gram, 6, 0 );
344 cout <<
"Transformed special Gram matrix:" << endl;
353 cout <<
"We found it! i=" << i <<
" element = ";
357 cout <<
"Element :" << endl;
361 cout <<
"exterior square :" << endl;
365 cout <<
"orthogonal matrix :" << endl;
369 cout <<
"orthogonal matrix in the special form:" << endl;
384 cout <<
"any_group::isomorphism_Klein_quadric" << endl;
390 int depth,
int verbose_level)
392 int f_v = (verbose_level >= 1);
395 cout <<
"any_group::do_orbits_on_subspaces" << endl;
403 cout <<
"any_group::do_orbits_on_subspaces !f_linear_group" << endl;
412 OoS->
init(GTA, Control, depth, verbose_level);
424 cout <<
"any_group::do_orbits_on_subspaces done" << endl;
431 int f_v = (verbose_level >= 1);
434 cout <<
"any_group::do_tensor_classify" << endl;
438 cout <<
"any_group::do_tensor_classify !f_linear_group" << endl;
454 cout <<
"any_group::do_tensor_classify before T->init" << endl;
456 T->
init(F,
LG, verbose_level - 1);
458 cout <<
"any_group::do_tensor_classify after T->init" << endl;
462 cout <<
"any_group::do_tensor_classify before classify_poset" << endl;
468 cout <<
"any_group::do_tensor_classify after classify_poset" << endl;
476 cout <<
"any_group::do_tensor_classify done" << endl;
483 int f_v = (verbose_level >= 1);
486 cout <<
"any_group::do_tensor_permutations" << endl;
490 cout <<
"any_group::do_tensor_permutations !f_linear_group" << endl;
502 T->
init(F,
LG, verbose_level - 1);
508 cout <<
"any_group::do_tensor_permutations done" << endl;
515 int minimum_distance,
516 int target_size,
int verbose_level)
518 int f_v = (verbose_level >= 1);
521 cout <<
"any_group::do_linear_codes" << endl;
525 cout <<
"any_group::do_linear_codes !f_linear_group" << endl;
533 cout <<
"any_group::do_linear_codes before "
534 "Algebra.linear_codes_with_bounded_minimum_distance" << endl;
539 minimum_distance, target_size, verbose_level);
542 cout <<
"any_group::do_linear_codes after "
543 "Algebra.linear_codes_with_bounded_minimum_distance" << endl;
548 cout <<
"any_group::do_linear_codes done" << endl;
557 int f_v = (verbose_level >= 1);
560 cout <<
"any_group::do_classify_ovoids" << endl;
564 cout <<
"any_group::do_classify_ovoids !f_linear_group" << endl;
573 Ovoid_classify_description->
Control = Control;
575 Ovoid_classify->
init(Ovoid_classify_description,
582 cout <<
"any_group::do_classify_ovoids done" << endl;
589 int len,
long int *S,
int verbose_level)
597 int f_vv = (verbose_level >= 2);
602 int *orbits_on_subspaces_M;
603 int *orbits_on_subspaces_base_cols;
608 cout <<
"any_group::subspace_orbits_test_set" << endl;
612 cout <<
"any_group::subspace_orbits_test_set !f_linear_group" << endl;
617 cout <<
"Testing set ";
620 cout <<
"LG->n=" <<
LG->
n << endl;
626 orbits_on_subspaces_M =
NEW_int(len * n);
627 orbits_on_subspaces_base_cols =
NEW_int(n);
630 orbits_on_subspaces_M, len, n, S);
633 cout <<
"coordinate matrix:" << endl;
635 orbits_on_subspaces_M, len, n, n, F->
log10_of_q);
639 orbits_on_subspaces_base_cols, 0 );
642 cout <<
"the matrix has rank " << rk << endl;
645 FREE_int(orbits_on_subspaces_base_cols);
654 if (f_has_extra_test_func) {
655 ret = (*extra_test_func)(
this,
656 len, S, extra_test_func_data, verbose_level);
663 cout <<
"any_group::subspace_orbits_test_set OK" << endl;
668 cout <<
"any_group::subspace_orbits_test_set not OK" << endl;
a collection of functions related to sorted vectors
int integer_vec_compare(int *p, int *q, int len)
void PG_element_normalize_from_front(int *v, int stride, int len)
void PG_elements_unrank_lint(int *M, int k, int n, long int *rank_vec)
void klein_to_wedge(int *K, int *W)
linear_algebra::linear_algebra * Linear_algebra
void wedge_to_klein(int *W, int *K)
void mult_vector_from_the_left(int *v, int *A, int *vA, int m, int n)
void exterior_square(int *An, int *An2, int n, int verbose_level)
void transform_form_matrix(int *A, int *Gram, int *new_Gram, int d, int verbose_level)
void mult_matrix_matrix(int *A, int *B, int *C, int m, int n, int o, int verbose_level)
int Gauss_simple(int *A, int m, int n, int *base_cols, int verbose_level)
void matrix_inverse(int *A, int *Ainv, int n, int verbose_level)
a collection of functions related to file io
void int_matrix_read_csv(std::string &fname, int *&M, int &m, int &n, int verbose_level)
long int file_size(std::string &fname)
void element_print(void *elt, std::ostream &ost)
void conjugacy_classes_and_normalizers(groups::sims *override_Sims, std::string &label, std::string &label_tex, int verbose_level)
void make_element(int *Elt, int *data, int verbose_level)
strong_generators * Strong_gens
field_theory::finite_field * F
actions::action * A_linear
a permutation group represented via a stabilizer chain
long int group_order_lint()
sims * create_sims(int verbose_level)
to control the behavior of the poset classification algorithm
group theoretic functions which require an action
void search_element_of_order(any_group *Any_group, actions::action *A1, actions::action *A2, int order, int verbose_level)
void find_singer_cycle(any_group *Any_group, actions::action *A1, actions::action *A2, int verbose_level)
void linear_codes_with_bounded_minimum_distance(poset_classification::poset_classification_control *Control, groups::linear_group *LG, int d, int target_depth, int verbose_level)
void conjugacy_classes_based_on_normal_forms(actions::action *A, groups::sims *override_Sims, std::string &label, std::string &label_tex, int verbose_level)
void find_standard_generators(any_group *Any_group, actions::action *A1, actions::action *A2, int order_a, int order_b, int order_ab, int verbose_level)
void do_tensor_classify(poset_classification::poset_classification_control *Control, int depth, int verbose_level)
void do_classify_ovoids(poset_classification::poset_classification_control *Control, apps_geometry::ovoid_classify_description *Ovoid_classify_description, int verbose_level)
void find_standard_generators(int order_a, int order_b, int order_ab, int verbose_level)
void classes_based_on_normal_form(int verbose_level)
void do_orbits_on_subspaces(group_theoretic_activity *GTA, poset_classification::poset_classification_control *Control, int depth, int verbose_level)
void classes(int verbose_level)
void do_tensor_permutations(int verbose_level)
groups::linear_group * LG
void do_linear_codes(poset_classification::poset_classification_control *Control, int minimum_distance, int target_size, int verbose_level)
int subspace_orbits_test_set(int len, long int *S, int verbose_level)
void search_element_of_order(int order, int verbose_level)
void find_singer_cycle(int verbose_level)
void isomorphism_Klein_quadric(std::string &fname, int verbose_level)
perform an activity associated with a linear group
orbits of a group on subspaces of a vector space
void init(group_theoretic_activity *GTA, poset_classification::poset_classification_control *Control, int depth, int verbose_level)
description of a problem of classification of ovoids in orthogonal spaces
poset_classification::poset_classification_control * Control
classification of ovoids in orthogonal spaces
void init(ovoid_classify_description *Descr, groups::linear_group *LG, int &verbose_level)
classification of tensors under the wreath product group
void init(field_theory::finite_field *F, groups::linear_group *LG, int verbose_level)
void classify_poset(int depth, poset_classification::poset_classification_control *Control, int verbose_level)
#define Lint_vec_print(A, B, C)
#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)
#define Int_vec_print(A, B, C)
algebra, combinatorics and graph theory, geometry, linear algebra, number theory, data structures,...
the orbiter library for the classification of combinatorial objects