18namespace layer5_applications {
19namespace apps_algebra {
43 int f_v = (verbose_level >= 1);
46 cout <<
"group_theoretic_activity::init_group" << endl;
57 cout <<
"group_theoretic_activity::init_group A1 = " <<
A1->
label << endl;
58 cout <<
"group_theoretic_activity::init_group A2 = " <<
A2->
label << endl;
62 cout <<
"group_theoretic_activity::init_group done" << endl;
70 int f_v = (verbose_level >= 1);
73 cout <<
"group_theoretic_activity::perform_activity" << endl;
155 cout <<
"for a report of the group, please use -draw_options" << endl;
192 TRUE, verbose_level);
199 FALSE, verbose_level);
265 cout <<
"please use option -poset_classification_control" << endl;
283 cout <<
"group_theoretic_activity::perform_activity f_orbits_on_points" << endl;
290 cout <<
"group_theoretic_activity::perform_activity before AG->orbits_on_points" << endl;
296 cout <<
"group_theoretic_activity::perform_activity after AG->orbits_on_points" << endl;
305 cout <<
"group_theoretic_activity::perform_activity before Orb->stabilizer_of" << endl;
309 cout <<
"group_theoretic_activity::perform_activity after Orb->stabilizer_of" << endl;
318 cout <<
"group_theoretic_activity::perform_activity before Orb->stabilizer_of" << endl;
322 cout <<
"group_theoretic_activity::perform_activity after Orb->stabilizer_of" << endl;
334 string fname_tree_mask;
337 fname_tree_mask.assign(
A2->
label);
338 fname_tree_mask.append(
"_%d.layered_graph");
340 for (orbit_idx = 0; orbit_idx < Orb->
Sch->
nb_orbits; orbit_idx++) {
341 cout <<
"orbit " << orbit_idx <<
" / " << Orb->
Sch->
nb_orbits
342 <<
" before Sch->export_tree_as_layered_graph" << endl;
355 cout <<
"please use option -poset_classification_control descr -end" << endl;
378 cout <<
"Please use option -poset_classification_control <descr> -end" << endl;
403 cout <<
"please use option -poset_classification_control descr -end" << endl;
428 cout <<
"please use -draw_options ... -end" << endl;
433 cout <<
"Descr->f_orbits_on_polynomials group must be linear" << endl;
453 cout <<
"Descr->f_representation_on_polynomials group must be linear" << endl;
473 cout <<
"group_theoretic_activity::perform_activity done" << endl;
482 int f_v = (verbose_level >= 1);
485 cout <<
"group_theoretic_activity::multiply" << endl;
492 cout <<
"group_theoretic_activity::multiply done" << endl;
498 int f_v = (verbose_level >= 1);
501 cout <<
"group_theoretic_activity::inverse" << endl;
507 cout <<
"group_theoretic_activity::inverse done" << endl;
513 int f_v = (verbose_level >= 1);
516 cout <<
"group_theoretic_activity::raise_to_the_power" << endl;
523 cout <<
"group_theoretic_activity::raise_to_the_power done" << endl;
533void group_theoretic_activity::search_subgroup(
int verbose_level)
535 int f_v = (verbose_level >= 1);
538 cout <<
"group_theoretic_activity::search_subgroup" << endl;
543 H = LG->Strong_gens->create_sims(verbose_level);
546 cout <<
"group order H = " << H->group_order_lint() << endl;
549 longinteger_object go;
556 for (i = 0; i < go.as_int(); i++) {
557 H->element_unrank_lint(i, Elt);
560 cout <<
"Element " << setw(5) << i <<
" / "
561 << go.as_int() <<
":" << endl;
562 A->element_print(Elt, cout);
564 A->element_print_as_permutation(Elt, cout);
567 if (Elt[7] == 0 && Elt[8] == 0 &&
568 Elt[11] == 0 && Elt[14] == 0 &&
569 Elt[12] == 0 && Elt[19] == 0 &&
570 Elt[22] == 0 && Elt[23] == 0) {
571 cout <<
"Element " << setw(5) << i <<
" / "
572 << go.as_int() <<
" = " << cnt <<
":" << endl;
580 cout <<
"we found " << cnt <<
" group elements of the special form" << endl;
584 cout <<
"group_theoretic_activity::search_subgroup done" << endl;
591 int f_Fano,
int f_arcs,
int f_depth,
int depth,
595 int f_v = (verbose_level >= 1);
596 long int *spread_elements_numeric;
604 int f_semilinear =
FALSE;
614 cout <<
"group_theoretic_activity::do_Andre_Bruck_Bose_construction" << endl;
624 cout <<
"group_theoretic_activity::do_Andre_Bruck_Bose_construction "
625 "dimension must be even" << endl;
632 cout <<
"group_theoretic_activity::do_Andre_Bruck_Bose_construction "
633 "n=" << n <<
" k=" << k <<
" q=" << q << endl;
648 gens, stab_order, verbose_level);
653 cout <<
"Spread stabilizer has order " << stab_go << endl;
658 Andre->
init(spread_elements_numeric, k, An, An1,
659 gens , stab_go, label, verbose_level);
668 sprintf(prefix,
"Fano_TP_%d_", spread_no);
675 target_depth = depth;
683 cout <<
"Translation plane " << q <<
"#" << spread_no <<
" has "
684 << nb_subplanes <<
" partial Fano subplanes "
685 "(up to isomorphism) at depth "
686 << target_depth << endl;
695 target_depth = depth;
698 target_depth = order_of_plane + 2;
703 sprintf(prefix,
"Arcs_TP_%d_", spread_no);
710 cout <<
"Translation plane " << q <<
"#" << spread_no <<
" has "
711 << nb <<
" Arcs of size " << target_depth
712 <<
" (up to isomorphism)" << endl;
718 cout <<
"group_theoretic_activity::do_Andre_Bruck_Bose_construction done" << endl;
provides access to pre-computed combinatorial data in encoded form
long int * Spread_representative(int q, int k, int i, int &sz)
basic number theoretic functions
int i_power_j(int i, int j)
graphics::layered_graph_draw_options * draw_options
a class to represent arbitrary precision integers
void create_from_base_10_string(const char *str, int verbose_level)
a permutation group in a fixed action.
void element_print(void *elt, std::ostream &ost)
void inverse_based_on_text(std::string &data_A, int verbose_level)
void raise_to_the_power_based_on_text(std::string &data_A, std::string &exponent_text, int verbose_level)
int matrix_group_dimension()
int is_semilinear_matrix_group()
field_theory::finite_field * matrix_group_finite_field()
void stabilizer_of_spread_representative(int q, int k, int no, data_structures_groups::vector_ge *&gens, std::string &stab_order, int verbose_level)
void multiply_based_on_text(std::string &data_A, std::string &data_B, int verbose_level)
groups::matrix_group * get_matrix_group()
to hold a vector of group elements
a matrix group over a finite field in projective, vector space or affine action
compute orbits of a group in a given action; allows file io
void create_latex_report(int verbose_level)
void stabilizer_of(int orbit_idx, int verbose_level)
void export_tree_as_layered_graph(int orbit_no, std::string &fname_mask, int verbose_level)
to control the behavior of the poset classification algorithm
the poset classification algorithm
int nb_orbits_at_level(int level)
group theoretic functions which require an action
void do_orbits_on_polynomials(groups::linear_group *LG, int degree_of_poly, int f_recognize, std::string &recognize_text, int f_draw_tree, int draw_tree_idx, graphics::layered_graph_draw_options *Opt, int verbose_level)
void representation_on_polynomials(groups::linear_group *LG, int degree_of_poly, int verbose_level)
a wrapper for linear_group and permutation_group_create
void orbit_of(int point_idx, int verbose_level)
void print_elements(int verbose_level)
void normalizer(int verbose_level)
void do_tensor_classify(poset_classification::poset_classification_control *Control, int depth, int verbose_level)
void do_export_magma(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 apply_elements_to_set_csv(std::string &fname1, std::string &fname2, std::string &set_text, int verbose_level)
void find_standard_generators(int order_a, int order_b, int order_ab, int verbose_level)
void print_elements_tex(int verbose_level)
void create_latex_report(graphics::layered_graph_draw_options *O, int f_sylow, int f_group_table, int f_classes, int verbose_level)
void classes_based_on_normal_form(int verbose_level)
void element_rank(std::string &elt_data, int verbose_level)
void element_unrank(std::string &rank_string, int verbose_level)
void do_conjugacy_class_of_element(std::string &elt_label, std::string &elt_text, int verbose_level)
void order_of_products_of_elements(std::string &Elements_text, 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 save_elements_csv(std::string &fname, int verbose_level)
void do_tensor_permutations(int verbose_level)
void do_canonical_image_GAP(std::string &input_set, int verbose_level)
void orbits_on_set_system_from_file(std::string &fname_csv, int number_of_columns, int first_column, int verbose_level)
void centralizer(std::string &element_label, std::string &element_description_text, int verbose_level)
groups::linear_group * LG
void conjugacy_class_of(std::string &rank_string, int verbose_level)
void do_linear_codes(poset_classification::poset_classification_control *Control, int minimum_distance, int target_size, int verbose_level)
void do_orbits_on_group_elements_under_conjugation(std::string &fname_group_elements_coded, std::string &fname_transporter, int verbose_level)
void do_export_gap(int verbose_level)
void normalizer_of_cyclic_subgroup(std::string &element_label, std::string &element_description_text, int verbose_level)
void do_reverse_isomorphism_exterior_square(int verbose_level)
void do_export_orbiter(actions::action *A2, int verbose_level)
void multiply_elements_csv(std::string &fname1, std::string &fname2, std::string &fname3, int f_column_major_ordering, int verbose_level)
void orbits_on_subsets(poset_classification::poset_classification_control *Control, poset_classification::poset_classification *&PC, int subset_size, int verbose_level)
void orbits_on_points(groups::orbits_on_something *&Orb, int verbose_level)
void search_element_of_order(int order, int verbose_level)
void orbits_on_set_from_file(std::string &fname_csv, int verbose_level)
void find_singer_cycle(int verbose_level)
void do_find_subgroups(int order_of_subgroup, int verbose_level)
void isomorphism_Klein_quadric(std::string &fname, int verbose_level)
void create_group_table(int verbose_level)
description of an activity associated with a linear group
int f_classes_based_on_normal_form
int orbits_on_polynomials_draw_tree_idx
std::string canonical_image_input_set
int f_conjugacy_class_of_element
int orbits_on_subspaces_depth
std::string element_unrank_data
int f_normalizer_of_cyclic_subgroup
std::string orbit_of_set_from_file_fname
int f_orbits_on_polynomials_draw_tree
int find_standard_generators_order_a
int linear_codes_target_size
int f_reverse_isomorphism_exterior_square
std::string multiply_elements_csv_column_major_ordering_fname1
int f_multiply_elements_csv_row_major_ordering
int f_isomorphism_Klein_quadric
int f_representation_on_polynomials
int f_orbits_on_group_elements_under_conjugation
int find_standard_generators_order_ab
int tensor_classify_depth
int orbits_on_set_system_number_of_columns
std::string multiply_elements_csv_column_major_ordering_fname3
int f_tensor_permutations
std::string Andre_Bruck_Bose_construction_label
int linear_codes_minimum_distance
poset_classification::poset_classification_control * Control
std::string element_rank_data
int representation_on_polynomials_degree
std::string raise_to_the_power_a_text
std::string multiply_elements_csv_column_major_ordering_fname2
int f_stabilizer_of_orbit_rep
int f_poset_classification_control
apps_geometry::ovoid_classify_description * Ovoid_classify_description
std::string multiply_elements_csv_row_major_ordering_fname1
std::string order_of_products_elements
int f_centralizer_of_element
std::string multiply_elements_csv_row_major_ordering_fname2
int orbits_on_subsets_size
std::string multiply_elements_csv_row_major_ordering_fname3
std::string element_label
std::string save_elements_csv_fname
int f_multiply_elements_csv_column_major_ordering
std::string element_description_text
std::string recognize_orbits_on_polynomials_text
int f_find_standard_generators
int Andre_Bruck_Bose_construction_spread_no
std::string raise_to_the_power_exponent_text
std::string orbits_on_group_elements_under_conjugation_transporter_fname
std::string apply_elements_csv_to_set_fname1
std::string orbits_on_set_system_from_file_fname
int f_apply_elements_csv_to_set
int f_orbit_of_set_from_file
std::string apply_elements_csv_to_set_set
int orbits_on_polynomials_degree
int stabilizer_of_orbit_rep_orbit_idx
int f_recognize_orbits_on_polynomials
std::string apply_elements_csv_to_set_fname2
int f_Andre_Bruck_Bose_construction
int f_search_element_of_order
int find_standard_generators_order_b
int f_orbits_on_polynomials
std::string orbits_on_group_elements_under_conjugation_fname
int f_orbits_on_subspaces
int f_orbits_on_set_system_from_file
std::string conjugacy_class_of_data
int orbits_on_set_system_first_column
std::string isomorphism_Klein_quadric_fname
void perform_activity(int verbose_level)
group_theoretic_activity()
~group_theoretic_activity()
void raise_to_the_power(int verbose_level)
void do_Andre_Bruck_Bose_construction(int spread_no, int f_Fano, int f_arcs, int f_depth, int depth, std::string &label, int verbose_level)
void init_group(group_theoretic_activity_description *Descr, any_group *AG, int verbose_level)
group_theoretic_activity_description * Descr
void inverse(int verbose_level)
void multiply(int verbose_level)
Andre / Bruck / Bose model of a translation plane.
void classify_arcs(const char *prefix, int depth, int verbose_level)
poset_classification::poset_classification * arcs
void classify_subplanes(const char *prefix, int verbose_level)
void init(long int *spread_elements_numeric, int k, actions::action *An, actions::action *An1, data_structures_groups::vector_ge *spread_stab_gens, ring_theory::longinteger_object &spread_stab_go, std::string &label, int verbose_level)
void create_latex_report(int verbose_level)
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
the orbiter library for the classification of combinatorial objects