Orbiter 2022
Combinatorial Objects
tl_algebra_and_number_theory.h
Go to the documentation of this file.
1// tl_algebra_and_number_theory.h
2//
3// Anton Betten
4//
5// moved here from top_level.h: July 28, 2018
6// top_level started: September 23 2010
7// based on global.h, which was taken from reader.h: 3/22/09
8
9
10#ifndef ORBITER_SRC_LIB_TOP_LEVEL_ALGEBRA_AND_NUMBER_THEORY_TL_ALGEBRA_AND_NUMBER_THEORY_H_
11#define ORBITER_SRC_LIB_TOP_LEVEL_ALGEBRA_AND_NUMBER_THEORY_TL_ALGEBRA_AND_NUMBER_THEORY_H_
12
13
14namespace orbiter {
15namespace layer5_applications {
16namespace apps_algebra {
17
18// #############################################################################
19// algebra_global_with_action.cpp
20// #############################################################################
21
23
24
26public:
28 long int *the_set, int set_size, groups::sims *S,
29 groups::strong_generators *SG,
30 data_structures_groups::vector_ge *Transporter,
31 int verbose_level);
33 groups::strong_generators *SG,
34 long int *the_set, int set_size, groups::sims *S,
35 actions::action *A_conj,
36 groups::schreier *Classes,
37 data_structures_groups::vector_ge *Transporter,
38 int verbose_level);
40 long int *the_set, int set_size,
41 actions::action *A1, actions::action *A2,
42 data_structures_groups::vector_ge *gens,
43 std::string &label_set,
44 std::string &label_group,
45 long int *&Table,
46 int &orbit_length,
47 int verbose_level);
48 void conjugacy_classes_based_on_normal_forms(actions::action *A,
49 groups::sims *override_Sims,
50 std::string &label,
51 std::string &label_tex,
52 int verbose_level);
53 void classes_GL(field_theory::finite_field *F, int d, int f_no_eigenvalue_one, int verbose_level);
54 void do_normal_form(int q, int d,
55 int f_no_eigenvalue_one, int *data, int data_sz,
56 int verbose_level);
57 void do_identify_one(int q, int d,
58 int f_no_eigenvalue_one, int elt_idx,
59 int verbose_level);
60 void do_identify_all(int q, int d,
61 int f_no_eigenvalue_one, int verbose_level);
62 void do_random(int q, int d, int f_no_eigenvalue_one, int verbose_level);
63 void group_table(int q, int d, int f_poly, std::string &poly,
64 int f_no_eigenvalue_one, int verbose_level);
65 void centralizer_brute_force(int q, int d,
66 int elt_idx, int verbose_level);
67 void centralizer(int q, int d,
68 int elt_idx, int verbose_level);
69 void centralizer(int q, int d, int verbose_level);
70 void compute_regular_representation(actions::action *A, groups::sims *S,
71 data_structures_groups::vector_ge *SG,
72 int *&perm, int verbose_level);
73 void presentation(actions::action *A,
74 groups::sims *S, int goi,
75 data_structures_groups::vector_ge *gens,
76 int *primes, int verbose_level);
77
78 void do_eigenstuff(field_theory::finite_field *F, int size, int *Data, int verbose_level);
79 void A5_in_PSL_(int q, int verbose_level);
80 void A5_in_PSL_2_q(int q,
83 layer2_discreta::domain *dom_GFq, int verbose_level);
84 void A5_in_PSL_2_q_easy(int q,
88 int verbose_level);
89 void A5_in_PSL_2_q_hard(int q,
93 int verbose_level);
99
100
101 void young_symmetrizer(int n, int verbose_level);
102 void young_symmetrizer_sym_4(int verbose_level);
104 std::ostream &ost, geometry::projective_space *P,
105 actions::action *A_on_points, actions::action *A_on_lines,
106 groups::strong_generators *gens, int size_limit_for_printing,
107 int verbose_level);
109 poset_classification::poset_classification_control *Control,
110 groups::linear_group *LG,
111 int d, int target_depth, int verbose_level);
113 actions::action *A, groups::sims *S,
114 std::string &element_description,
115 std::string &label, int verbose_level);
117 actions::action *A, groups::sims *S,
118 std::string &element_description,
119 std::string &label, int verbose_level);
120 void find_subgroups(
121 actions::action *A, groups::sims *S,
122 int subgroup_order,
123 std::string &label,
124 int &nb_subgroups,
125 groups::strong_generators *&H_gens,
126 groups::strong_generators *&N_gens,
127 int verbose_level);
129 actions::action *A, groups::strong_generators *SG,
130 data_structures_groups::vector_ge *cosets,
131 int *&relative_order_table, int verbose_level);
133 groups::linear_group *LG,
134 int degree_of_poly,
135 int f_recognize, std::string &recognize_text,
136 int f_draw_tree, int draw_tree_idx,
137 graphics::layered_graph_draw_options *Opt,
138 int verbose_level);
140 groups::linear_group *LG,
141 int degree_of_poly,
142 int verbose_level);
143
145 field_theory::finite_field *F, int n, std::string &coeffs_text, int verbose_level);
147 field_theory::finite_field *F, int n, std::string &fname, int verbose_level);
148
149 void orbits_on_points(
150 actions::action *A2,
151 groups::strong_generators *Strong_gens,
152 int f_load_save,
153 std::string &prefix,
154 groups::orbits_on_something *&Orb,
155 int verbose_level);
156 void find_singer_cycle(any_group *Any_group,
157 actions::action *A1, actions::action *A2,
158 int verbose_level);
159 void search_element_of_order(any_group *Any_group,
160 actions::action *A1, actions::action *A2,
161 int order, int verbose_level);
162 void find_standard_generators(any_group *Any_group,
163 actions::action *A1, actions::action *A2,
164 int order_a, int order_b, int order_ab, int verbose_level);
165
166};
167
168
169
170// #############################################################################
171// any_group.cpp
172// #############################################################################
173
175
177
178public:
179
181 groups::linear_group *LG;
182
184 groups::permutation_group_create *PGC;
185
188
189 actions::action *A_base;
190 actions::action *A;
191
192 std::string label;
193 std::string label_tex;
194
195 groups::strong_generators *Subgroup_gens;
196 groups::sims *Subgroup_sims;
197
198 any_group();
199 ~any_group();
200 void init_linear_group(groups::linear_group *LG, int verbose_level);
201 void init_permutation_group(groups::permutation_group_create *PGC, int verbose_level);
202 void init_modified_group(modified_group_create *MGC, int verbose_level);
204 graphics::layered_graph_draw_options *O,
205 int f_sylow, int f_group_table, int f_classes,
206 int verbose_level);
207 void do_export_orbiter(actions::action *A2, int verbose_level);
208 void do_export_gap(int verbose_level);
209 void do_export_magma(int verbose_level);
210 void do_canonical_image_GAP(std::string &input_set, int verbose_level);
211 void create_group_table(int verbose_level);
212 void normalizer(int verbose_level);
213 void centralizer(
214 std::string &element_label,
215 std::string &element_description_text,
216 int verbose_level);
218 std::string &element_label,
219 std::string &element_description_text,
220 int verbose_level);
222 int order_of_subgroup,
223 int verbose_level);
224 void print_elements(int verbose_level);
225 void print_elements_tex(/*int f_order_of_products, std::string &elements,*/ int verbose_level);
227 std::string &Elements_text,
228 int verbose_level);
229 void save_elements_csv(std::string &fname, int verbose_level);
230 void multiply_elements_csv(std::string &fname1, std::string &fname2, std::string &fname3,
231 int f_column_major_ordering, int verbose_level);
232 void apply_elements_to_set_csv(std::string &fname1, std::string &fname2,
233 std::string &set_text,
234 int verbose_level);
235 void element_rank(std::string &elt_data, int verbose_level);
236 void element_unrank(std::string &rank_string, int verbose_level);
237 void conjugacy_class_of(std::string &rank_string, int verbose_level);
238 void do_reverse_isomorphism_exterior_square(int verbose_level);
239 void orbits_on_set_system_from_file(std::string &fname_csv,
240 int number_of_columns, int first_column, int verbose_level);
241 void orbits_on_set_from_file(std::string &fname_csv, int verbose_level);
242 void orbit_of(int point_idx, int verbose_level);
243 void orbits_on_points(groups::orbits_on_something *&Orb, int verbose_level);
245 poset_classification::poset_classification_control *Control,
246 poset_classification::poset_classification *&PC,
247 int subset_size,
248 int verbose_level);
250 poset_classification::poset_classification *PC,
251 int depth,
252 int verbose_level);
254 std::string &elt_label, std::string &elt_text, int verbose_level);
256 std::string &fname_group_elements_coded,
257 std::string &fname_transporter,
258 int verbose_level);
260 graphics::layered_graph_draw_options *O,
261 int verbose_level);
263 graphics::layered_graph_draw_options *O,
264 int verbose_level);
265 groups::strong_generators *get_strong_generators();
266
267 // any_group_linear.cpp:
268 void classes_based_on_normal_form(int verbose_level);
269 void classes(int verbose_level);
270 void find_singer_cycle(int verbose_level);
271 void search_element_of_order(int order, int verbose_level);
272 void find_standard_generators(int order_a,
273 int order_b,
274 int order_ab,
275 int verbose_level);
276 void isomorphism_Klein_quadric(std::string &fname, int verbose_level);
278 poset_classification::poset_classification_control *Control, int depth, int verbose_level);
280 poset_classification::poset_classification_control *Control, int depth, int verbose_level);
281 void do_tensor_permutations(int verbose_level);
282 void do_linear_codes(
283 poset_classification::poset_classification_control *Control,
284 int minimum_distance,
285 int target_size, int verbose_level);
287 poset_classification::poset_classification_control *Control,
288 apps_geometry::ovoid_classify_description *Ovoid_classify_description,
289 int verbose_level);
291 int len, long int *S, int verbose_level);
292
293
294};
295
296
297// #############################################################################
298// character_table_burnside.cpp
299// #############################################################################
300
302
303
305public:
306
307 void do_it(int n, int verbose_level);
308 void create_matrix(discreta_matrix &M, int i, int *S, int nb_classes,
309 int *character_degree, int *class_size,
310 int verbose_level);
312 algebra::a_domain *D, int nb_classes, int *Omega,
313 int *character_degree, int *class_size,
314 int *&character_table, int verbose_level);
315 void compute_character_degrees(algebra::a_domain *D,
316 int goi, int nb_classes, int *Omega, int *class_size,
317 int *&character_degree, int verbose_level);
318 void compute_omega(algebra::a_domain *D, int *N0, int nb_classes,
319 int *Mu, int nb_mu, int *&Omega, int verbose_level);
320 int compute_r0(int *N, int nb_classes, int verbose_level);
322 actions::action *A,
323 induced_actions::action_by_conjugation *ABC,
324 groups::schreier *Sch, int nb_classes, int *&N, int verbose_level);
325 void compute_Distribution_table(actions::action *A, induced_actions::action_by_conjugation *ABC,
326 groups::schreier *Sch, int nb_classes,
327 int **Gens, int nb_gens, int t_max, int *&Distribution, int verbose_level);
328 void multiply_word(actions::action *A, int **Gens,
329 int *Choice, int t, int *Elt1, int *Elt2, int verbose_level);
330 void create_generators(actions::action *A, int n,
331 int **&Elt, int &nb_gens, int f_special, int verbose_level);
332 void integral_eigenvalues(int *M, int n,
333 int *&Lambda,
334 int &nb_lambda,
335 int *&Mu,
336 int *&Mu_mult,
337 int &nb_mu,
338 int verbose_level);
339 void characteristic_poly(int *N, int size, unipoly &charpoly, int verbose_level);
340 void double_swap(double &a, double &b);
341 int double_Gauss(double *A, int m, int n, int *base_cols, int verbose_level);
342 void double_matrix_print(double *A, int m, int n);
343 double double_abs(double x);
344 void kernel_columns(int n, int nb_base_cols, int *base_cols, int *kernel_cols);
345 void matrix_get_kernel(double *M, int m, int n, int *base_cols, int nb_base_cols,
346 int &kernel_m, int &kernel_n, double *kernel);
347 int double_as_int(double x);
348
349};
350
351
352// #############################################################################
353// group_modification_description.cpp
354// #############################################################################
355
357
359
360public:
361
364
365 std::vector<std::string> from;
366
369 int read_arguments(
370 int argc, std::string *argv,
371 int verbose_level);
372 void print();
373
374
375};
376
377
378
379
380// #############################################################################
381// group_theoretic_activity_description.cpp
382// #############################################################################
383
384
386
388public:
389
391 std::string multiply_a;
392 std::string multiply_b;
393
395 std::string inverse_a;
396
400
402
404
406
409
412
417
419 std::string element_rank_data;
420
423
425
426
427
428 // options for poset classification:
430 poset_classification::poset_classification_control *Control;
431
432
433 // orbits on points using Schreier trees:
435
436 // additional options for computing orbits on points:
438
440 // compute stabilizer of orbit 0,
441 // must be given with -orbits_on_points
442
445
446
447 // poset classification
450
451
452
454
456
459 std::string element_label;
460
462 // uses element_description_text and element_label
463
467
469
472
474
475 // flags that apply to report:
479
480
483
485
488
493
496
499
502
505
508
509
514
519
524
525
528
530
531 // classification of optimal linear codes using poset classification
535
536
538 exact_cover_arguments *ECA;
540 isomorph_arguments *IA;
541
542
543
544
545 // subspace orbits:
548
549 // additional options for computing orbits on subspaces
554
555
558
560
563
565
568
571
574
575
578
582
583
584
585
588 void null();
589 void freeself();
590 int read_arguments(
591 int argc, std::string *argv,
592 int verbose_level);
593 void print();
594
595};
596
597
598// #############################################################################
599// group_theoretic_activity.cpp
600// #############################################################################
601
602
604
606public:
608 //finite_field *F;
609
611
612 actions::action *A1;
613 actions::action *A2;
614
615
616
620 any_group *AG,
621 int verbose_level);
622 void perform_activity(int verbose_level);
623 void multiply(int verbose_level);
624 void inverse(int verbose_level);
625 void raise_to_the_power(int verbose_level);
626 void do_Andre_Bruck_Bose_construction(int spread_no,
627 int f_Fano, int f_arcs, int f_depth, int depth,
628 std::string &label,
629 int verbose_level);
630
631
632};
633
634
635// #############################################################################
636// modified_group_create.cpp
637// #############################################################################
638
640
642
643public:
645
646 std::string label;
647 std::string label_tex;
648
649 //strong_generators *initial_strong_gens;
650
651 actions::action *A_base;
652 actions::action *A_previous;
653 actions::action *A_modified;
654
656 groups::strong_generators *Strong_gens;
657
658
663 int verbose_level);
664
665};
666
667
668
669
670// #############################################################################
671// orbits_on_polynomials.cpp
672// #############################################################################
673
674
676
678public:
679
680 groups::linear_group *LG;
682
683 field_theory::finite_field *F;
684 actions::action *A;
685 int n;
686 ring_theory::longinteger_object go;
687
688 ring_theory::homogeneous_polynomial_domain *HPD;
689
690 actions::action *A2;
691
692 int *Elt1;
693 int *Elt2;
694 int *Elt3;
695
696 groups::schreier *Sch;
697 ring_theory::longinteger_object full_go;
698
699 std::string fname_base;
700 std::string fname_csv;
701 std::string fname_report;
702
703 data_structures_groups::orbit_transversal *T;
704 int *Nb_pts; // [T->nb_orbits]
705 std::vector<std::vector<long int> > Points;
706
707
710 void init(
711 groups::linear_group *LG,
712 int degree_of_poly,
713 int f_recognize, std::string &recognize_text,
714 int verbose_level);
715 void compute_points(int verbose_level);
716 void report(int verbose_level);
717 void report_detailed_list(std::ostream &ost,
718 int verbose_level);
719
720
721};
722
723
724
725// #############################################################################
726// orbits_on_subspaces.cpp
727// #############################################################################
728
729
731
733public:
735
736 // local data for orbits on subspaces:
737 poset_classification::poset_with_group_action *orbits_on_subspaces_Poset;
738 poset_classification::poset_classification *orbits_on_subspaces_PC;
739 algebra::vector_space *orbits_on_subspaces_VS;
742
743
747 poset_classification::poset_classification_control *Control,
748 int depth,
749 int verbose_level);
750
751
752};
753
754
755
756
757
758
759// #############################################################################
760// young.cpp
761// #############################################################################
762
763
765
766
767class young {
768public:
769 int n;
770 actions::action *A;
771 groups::sims *S;
772 ring_theory::longinteger_object go;
773 int goi;
774 int *Elt;
775 int *v;
776
777 actions::action *Aconj;
778 induced_actions::action_by_conjugation *ABC;
779 groups::schreier *Sch;
780 groups::strong_generators *SG;
784 algebra::a_domain *D;
785
786 int l1, l2;
790
791 data_structures::set_of_sets *Row_partition;
792 data_structures::set_of_sets *Col_partition;
793
794 data_structures_groups::vector_ge *gens1, *gens2;
795 groups::sims *S1, *S2;
796
797
798 young();
799 ~young();
800 void null();
801 void freeself();
802 void init(int n, int verbose_level);
803 void create_module(int *h_alpha,
804 int *&Base, int *&base_cols, int &rk,
805 int verbose_level);
806 void create_representations(int *Base, int *Base_inv, int rk,
807 int verbose_level);
808 void create_representation(int *Base, int *base_cols, int rk,
809 int group_elt, int *Mtx, int verbose_level);
810 // Mtx[rk * rk * D->size_of_instance_in_int]
811 void young_symmetrizer(int *row_parts, int nb_row_parts,
812 int *tableau,
813 int *elt1, int *elt2, int *elt3,
814 int verbose_level);
815 void compute_generators(int &go1, int &go2, int verbose_level);
816 void Maschke(int *Rep,
817 int dim_of_module, int dim_of_submodule,
818 int *&Mu,
819 int verbose_level);
820 long int group_ring_element_size(actions::action *A, groups::sims *S);
821 void group_ring_element_create(actions::action *A, groups::sims *S, int *&elt);
822 void group_ring_element_free(actions::action *A, groups::sims *S, int *elt);
823 void group_ring_element_print(actions::action *A, groups::sims *S, int *elt);
824 void group_ring_element_copy(actions::action *A, groups::sims *S,
825 int *elt_from, int *elt_to);
826 void group_ring_element_zero(actions::action *A, groups::sims *S,
827 int *elt);
828 void group_ring_element_mult(actions::action *A, groups::sims *S,
829 int *elt1, int *elt2, int *elt3);
830};
831
832
833}}}
834
835
836#endif /* ORBITER_SRC_LIB_TOP_LEVEL_ALGEBRA_AND_NUMBER_THEORY_TL_ALGEBRA_AND_NUMBER_THEORY_H_ */
837
838
DISCRETA base class. All DISCRETA classes are derived from this class.
Definition: discreta.h:382
DISCRETA class for influencing arithmetic operations.
Definition: discreta.h:1360
void report_tactical_decomposition_by_automorphism_group(std::ostream &ost, geometry::projective_space *P, actions::action *A_on_points, actions::action *A_on_lines, groups::strong_generators *gens, int size_limit_for_printing, int verbose_level)
void relative_order_vector_of_cosets(actions::action *A, groups::strong_generators *SG, data_structures_groups::vector_ge *cosets, int *&relative_order_table, int verbose_level)
void A5_in_PSL_2_q(int q, layer2_discreta::discreta_matrix &A, layer2_discreta::discreta_matrix &B, layer2_discreta::domain *dom_GFq, int verbose_level)
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 create_subgroups(groups::strong_generators *SG, long int *the_set, int set_size, groups::sims *S, actions::action *A_conj, groups::schreier *Classes, data_structures_groups::vector_ge *Transporter, int verbose_level)
void search_element_of_order(any_group *Any_group, actions::action *A1, actions::action *A2, int order, int verbose_level)
void do_identify_one(int q, int d, int f_no_eigenvalue_one, int elt_idx, int verbose_level)
void find_singer_cycle(any_group *Any_group, actions::action *A1, actions::action *A2, int verbose_level)
void do_eigenstuff_with_coefficients(field_theory::finite_field *F, int n, std::string &coeffs_text, int verbose_level)
void compute_regular_representation(actions::action *A, groups::sims *S, data_structures_groups::vector_ge *SG, int *&perm, int verbose_level)
void representation_on_polynomials(groups::linear_group *LG, int degree_of_poly, int verbose_level)
void do_eigenstuff_from_file(field_theory::finite_field *F, int n, std::string &fname, int verbose_level)
void do_eigenstuff(field_theory::finite_field *F, int size, int *Data, int verbose_level)
void do_normal_form(int q, int d, int f_no_eigenvalue_one, int *data, int data_sz, int verbose_level)
void find_subgroups(actions::action *A, groups::sims *S, int subgroup_order, std::string &label, int &nb_subgroups, groups::strong_generators *&H_gens, groups::strong_generators *&N_gens, int verbose_level)
void A5_in_PSL_2_q_easy(int q, layer2_discreta::discreta_matrix &A, layer2_discreta::discreta_matrix &B, layer2_discreta::domain *dom_GFq, int verbose_level)
void orbits_on_set_from_file(long int *the_set, int set_size, actions::action *A1, actions::action *A2, data_structures_groups::vector_ge *gens, std::string &label_set, std::string &label_group, long int *&Table, int &orbit_length, int verbose_level)
void A5_in_PSL_2_q_hard(int q, layer2_discreta::discreta_matrix &A, layer2_discreta::discreta_matrix &B, layer2_discreta::domain *dom_GFq, int verbose_level)
void presentation(actions::action *A, groups::sims *S, int goi, data_structures_groups::vector_ge *gens, int *primes, 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 normalizer_of_cyclic_subgroup(actions::action *A, groups::sims *S, std::string &element_description, std::string &label, int verbose_level)
void group_table(int q, int d, int f_poly, std::string &poly, int f_no_eigenvalue_one, int verbose_level)
void trace(layer2_discreta::discreta_matrix &A, layer2_discreta::discreta_base &tr)
void do_random(int q, int d, int f_no_eigenvalue_one, 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 orbits_under_conjugation(long int *the_set, int set_size, groups::sims *S, groups::strong_generators *SG, data_structures_groups::vector_ge *Transporter, int verbose_level)
void matrix_convert_to_numerical(layer2_discreta::discreta_matrix &A, int *AA, int q)
void do_identify_all(int q, int d, int f_no_eigenvalue_one, int verbose_level)
void centralizer_of_element(actions::action *A, groups::sims *S, std::string &element_description, std::string &label, int verbose_level)
void classes_GL(field_theory::finite_field *F, int d, int f_no_eigenvalue_one, int verbose_level)
void orbits_on_points(actions::action *A2, groups::strong_generators *Strong_gens, int f_load_save, std::string &prefix, groups::orbits_on_something *&Orb, 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)
a wrapper for linear_group and permutation_group_create
void orbit_of(int point_idx, int verbose_level)
Definition: any_group.cpp:1447
void create_latex_report_for_permutation_group(graphics::layered_graph_draw_options *O, int verbose_level)
Definition: any_group.cpp:2097
void init_permutation_group(groups::permutation_group_create *PGC, int verbose_level)
Definition: any_group.cpp:83
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 apply_elements_to_set_csv(std::string &fname1, std::string &fname2, std::string &set_text, int verbose_level)
Definition: any_group.cpp:937
void find_standard_generators(int order_a, int order_b, int order_ab, 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)
Definition: any_group.cpp:151
void element_rank(std::string &elt_data, int verbose_level)
Definition: any_group.cpp:1017
groups::strong_generators * get_strong_generators()
Definition: any_group.cpp:2287
void element_unrank(std::string &rank_string, int verbose_level)
Definition: any_group.cpp:1074
void do_conjugacy_class_of_element(std::string &elt_label, std::string &elt_text, int verbose_level)
Definition: any_group.cpp:1778
void order_of_products_of_elements(std::string &Elements_text, int verbose_level)
Definition: any_group.cpp:768
void do_orbits_on_subspaces(group_theoretic_activity *GTA, poset_classification::poset_classification_control *Control, int depth, int verbose_level)
void orbits_on_poset_post_processing(poset_classification::poset_classification *PC, int depth, int verbose_level)
Definition: any_group.cpp:1649
void init_modified_group(modified_group_create *MGC, int verbose_level)
Definition: any_group.cpp:121
void save_elements_csv(std::string &fname, int verbose_level)
Definition: any_group.cpp:865
void create_latex_report_for_modified_group(graphics::layered_graph_draw_options *O, int verbose_level)
Definition: any_group.cpp:2192
void do_canonical_image_GAP(std::string &input_set, int verbose_level)
Definition: any_group.cpp:313
void orbits_on_set_system_from_file(std::string &fname_csv, int number_of_columns, int first_column, int verbose_level)
Definition: any_group.cpp:1292
void centralizer(std::string &element_label, std::string &element_description_text, int verbose_level)
Definition: any_group.cpp:500
void conjugacy_class_of(std::string &rank_string, int verbose_level)
Definition: any_group.cpp:1131
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)
Definition: any_group.cpp:1938
void init_linear_group(groups::linear_group *LG, int verbose_level)
Definition: any_group.cpp:47
int subspace_orbits_test_set(int len, long int *S, int verbose_level)
void normalizer_of_cyclic_subgroup(std::string &element_label, std::string &element_description_text, int verbose_level)
Definition: any_group.cpp:539
void do_reverse_isomorphism_exterior_square(int verbose_level)
Definition: any_group.cpp:1260
void do_export_orbiter(actions::action *A2, int verbose_level)
Definition: any_group.cpp:194
void multiply_elements_csv(std::string &fname1, std::string &fname2, std::string &fname3, int f_column_major_ordering, int verbose_level)
Definition: any_group.cpp:881
void orbits_on_subsets(poset_classification::poset_classification_control *Control, poset_classification::poset_classification *&PC, int subset_size, int verbose_level)
Definition: any_group.cpp:1567
void orbits_on_points(groups::orbits_on_something *&Orb, int verbose_level)
Definition: any_group.cpp:1532
void search_element_of_order(int order, int verbose_level)
void orbits_on_set_from_file(std::string &fname_csv, int verbose_level)
Definition: any_group.cpp:1397
void do_find_subgroups(int order_of_subgroup, int verbose_level)
Definition: any_group.cpp:578
void isomorphism_Klein_quadric(std::string &fname, int verbose_level)
character table of a finite group using the algorithm of Burnside
void multiply_word(actions::action *A, int **Gens, int *Choice, int t, int *Elt1, int *Elt2, int verbose_level)
void integral_eigenvalues(int *M, int n, int *&Lambda, int &nb_lambda, int *&Mu, int *&Mu_mult, int &nb_mu, int verbose_level)
void characteristic_poly(int *N, int size, unipoly &charpoly, int verbose_level)
void matrix_get_kernel(double *M, int m, int n, int *base_cols, int nb_base_cols, int &kernel_m, int &kernel_n, double *kernel)
void compute_multiplication_constants_center_of_group_ring(actions::action *A, induced_actions::action_by_conjugation *ABC, groups::schreier *Sch, int nb_classes, int *&N, int verbose_level)
void compute_character_degrees(algebra::a_domain *D, int goi, int nb_classes, int *Omega, int *class_size, int *&character_degree, int verbose_level)
void compute_Distribution_table(actions::action *A, induced_actions::action_by_conjugation *ABC, groups::schreier *Sch, int nb_classes, int **Gens, int nb_gens, int t_max, int *&Distribution, int verbose_level)
void compute_omega(algebra::a_domain *D, int *N0, int nb_classes, int *Mu, int nb_mu, int *&Omega, int verbose_level)
void compute_character_table(algebra::a_domain *D, int nb_classes, int *Omega, int *character_degree, int *class_size, int *&character_table, int verbose_level)
void create_matrix(discreta_matrix &M, int i, int *S, int nb_classes, int *character_degree, int *class_size, int verbose_level)
void create_generators(actions::action *A, int n, int **&Elt, int &nb_gens, int f_special, int verbose_level)
int double_Gauss(double *A, int m, int n, int *base_cols, int verbose_level)
void kernel_columns(int n, int nb_base_cols, int *base_cols, int *kernel_cols)
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)
to create a new group or group action from old ones, using class group_modification_description
void modified_group_init(group_modification_description *description, int verbose_level)
orbits of a group on polynomials using Schreier orbits
void init(groups::linear_group *LG, int degree_of_poly, int f_recognize, std::string &recognize_text, int verbose_level)
poset_classification::poset_with_group_action * orbits_on_subspaces_Poset
void init(group_theoretic_activity *GTA, poset_classification::poset_classification_control *Control, int depth, int verbose_level)
The Young representations of the symmetric group.
void create_module(int *h_alpha, int *&Base, int *&base_cols, int &rk, int verbose_level)
Definition: young.cpp:215
void compute_generators(int &go1, int &go2, int verbose_level)
Definition: young.cpp:699
void group_ring_element_mult(actions::action *A, groups::sims *S, int *elt1, int *elt2, int *elt3)
Definition: young.cpp:1010
long int group_ring_element_size(actions::action *A, groups::sims *S)
Definition: young.cpp:957
void Maschke(int *Rep, int dim_of_module, int dim_of_submodule, int *&Mu, int verbose_level)
Definition: young.cpp:798
void create_representation(int *Base, int *base_cols, int rk, int group_elt, int *Mtx, int verbose_level)
Definition: young.cpp:417
void init(int n, int verbose_level)
Definition: young.cpp:153
void create_representations(int *Base, int *Base_inv, int rk, int verbose_level)
Definition: young.cpp:306
void group_ring_element_print(actions::action *A, groups::sims *S, int *elt)
Definition: young.cpp:982
void group_ring_element_copy(actions::action *A, groups::sims *S, int *elt_from, int *elt_to)
Definition: young.cpp:991
void young_symmetrizer(int *row_parts, int nb_row_parts, int *tableau, int *elt1, int *elt2, int *elt3, int verbose_level)
Definition: young.cpp:515
void group_ring_element_zero(actions::action *A, groups::sims *S, int *elt)
Definition: young.cpp:1001
void group_ring_element_free(actions::action *A, groups::sims *S, int *elt)
Definition: young.cpp:976
void group_ring_element_create(actions::action *A, groups::sims *S, int *&elt)
Definition: young.cpp:966
description of a problem of classification of ovoids in orthogonal spaces
Definition: tl_geometry.h:602
the orbiter library for the classification of combinatorial objects