Orbiter 2022
Combinatorial Objects
blt_set_with_action.cpp
Go to the documentation of this file.
1/*
2 * blt_set_with_action.cpp
3 *
4 * Created on: Apr 7, 2019
5 * Author: betten
6 */
7
8
9
10
11#include "orbiter.h"
12
13using namespace std;
14
15namespace orbiter {
16namespace layer5_applications {
17namespace orthogonal_geometry_applications {
18
19
21{
22 A = NULL;
23 Blt_set_domain = NULL;
24
25 set = NULL;
26
27 Aut_gens = NULL;
28 Inv = NULL;
29 A_on_points = NULL;
30 Orbits_on_points = NULL;
31 null();
32}
33
35{
36 freeself();
37}
38
40{
41}
42
44{
45 if (Inv) {
47 }
48 if (A_on_points) {
50 }
51 if (Orbits_on_points) {
53 }
54 null();
55}
56
60 long int *set,
61 groups::strong_generators *Aut_gens, int verbose_level)
62{
63 int f_v = (verbose_level >= 1);
64
65 if (f_v) {
66 cout << "blt_set_with_action::init_set" << endl;
67 }
73 Inv->init(Blt_set_domain, set, verbose_level);
74
75 if (Aut_gens) {
76 init_orbits_on_points(verbose_level);
77 }
78
79 if (f_v) {
80 cout << "blt_set_with_action::init_set done" << endl;
81 }
82}
83
84
86 int verbose_level)
87{
88 int f_v = (verbose_level >= 1);
89
90 if (f_v) {
91 cout << "blt_set_with_action::init_orbits_on_points" << endl;
92 }
93
94 if (f_v) {
95 cout << "blt_set_with_action action "
96 "on points:" << endl;
97 }
101 0 /*verbose_level*/);
102 if (f_v) {
103 cout << "blt_set_with_action action "
104 "on points done" << endl;
105 }
106
107
108 if (f_v) {
109 cout << "computing orbits on points:" << endl;
110 }
112 A_on_points, 0 /*verbose_level*/);
113 if (f_v) {
114 cout << "We found " << Orbits_on_points->nb_orbits
115 << " orbits on points" << endl;
116 }
117
118 if (f_v) {
119 cout << "blt_set_with_action::init_orbits_on_points done" << endl;
120 }
121}
122
124 ostream &ost)
125{
126 if (Aut_gens) {
128
130
131 ost << "The automorphism group has order " << go << ".\\\\" << endl;
132 ost << "\\bigskip" << endl;
133 ost << "Orbits of the automorphism group on points "
134 "of the BLT-set:\\\\" << endl;
136 }
137 else {
138 ost << "The automorphism group is not available.\\\\" << endl;
139
140 }
141}
142
143void blt_set_with_action::report(std::ostream &ost, int verbose_level)
144{
145 int f_v = (verbose_level >= 1);
146
147 if (f_v) {
148 cout << "blt_set_with_action::report" << endl;
149 }
150
151 if (Aut_gens) {
152 ost << "The stabilizer is generated by:\\\\" << endl;
154 }
155
156 Inv->latex(ost, verbose_level);
157
158 if (f_v) {
159 cout << "blt_set_with_action::report done" << endl;
160 }
161}
162
163
164
165}}}
166
void init(blt_set_domain *D, long int *the_set, int verbose_level)
a class to represent arbitrary precision integers
Definition: ring_theory.h:366
a permutation group in a fixed action.
Definition: actions.h:99
action * restricted_action(long int *points, int nb_points, int verbose_level)
void print_and_list_orbits_sorted_by_length_tex(std::ostream &ost)
a strong generating set for a permutation group with respect to a fixed action
Definition: groups.h:1703
schreier * orbits_on_points_schreier(actions::action *A_given, int verbose_level)
void group_order(ring_theory::longinteger_object &go)
void init_set(actions::action *A, orthogonal_geometry::blt_set_domain *Blt_set_domain, long int *set, groups::strong_generators *Aut_gens, int verbose_level)
#define NEW_OBJECT(type)
Definition: foundations.h:638
#define FREE_OBJECT(p)
Definition: foundations.h:651
the orbiter library for the classification of combinatorial objects