Orbiter 2022
Combinatorial Objects
modified_group_create.cpp
Go to the documentation of this file.
1/*
2 * modified_group_create.cpp
3 *
4 * Created on: Dec 1, 2021
5 * Author: betten
6 */
7
8
9
10#include "orbiter.h"
11
12using namespace std;
13using namespace orbiter::layer1_foundations;
14
15namespace orbiter {
16namespace layer5_applications {
17namespace apps_algebra {
18
19
21{
22 Descr = NULL;
23
24 //std::string label;
25 //std::string label_tex;
26
27 //initial_strong_gens = NULL;
28
29 A_base = NULL;
30 A_previous = NULL;
31 A_modified = NULL;
32
34 Strong_gens = NULL;
35}
36
37
39{
40 Descr = NULL;
41}
42
43
46 int verbose_level)
47{
48 int f_v = (verbose_level >= 1);
49
50 if (f_v) {
51 cout << "modified_group_create::modified_group_init" << endl;
52 }
53 modified_group_create::Descr = description;
54
55 if (f_v) {
56 cout << "modified_group_create::modified_group_init initializing group" << endl;
57 }
58
59
61
62 if (f_v) {
63 cout << "modified_group_create::modified_group_init initializing restricted action" << endl;
64 }
65
66 if (Descr->from.size() != 1) {
67 cout << "modified_group_create::modified_group_init need exactly one argument of type -from" << endl;
68 exit(1);
69 }
70
71 int idx;
72
73
75
76
78
79
80
81 if (t != t_any_group) {
82 cout << "-from must give object of type t_any_group" << endl;
83 cout << "type given: ";
85 exit(1);
86 }
87
88 any_group *AG;
89
90 AG = (any_group *) orbiter_kernel_system::Orbiter->get_object(idx);
91
92 A_base = AG->A_base;
93 A_previous = AG->A;
94
95 long int *points;
96 int nb_points;
97
98
100 points, nb_points, verbose_level);
101
102 //Orbiter->Lint_vec.scan(Descr->restricted_action_set_text, points, nb_points);
103
104 if (f_v) {
105 cout << "modified_group_create::modified_group_init before A_previous->restricted_action" << endl;
106 }
107 A_modified = A_previous->restricted_action(points, nb_points,
108 verbose_level);
109 if (f_v) {
110 cout << "modified_group_create::modified_group_init after A_previous->restricted_action" << endl;
111 }
113
115 if (f_v) {
116 cout << "modified_group_create::modified_group_init before Strong_gens = AG->Subgroup_gens" << endl;
117 }
119
120#if 0
124#endif
126
127 if (f_v) {
128 cout << "modified_group_create::modified_group_init before assigning label" << endl;
129 }
130 label.assign(A_previous->label);
132
133 if (f_v) {
134 cout << "modified_group_create::modified_group_init initializing restricted action done" << endl;
135 }
136 }
137
138 else {
139 cout << "modified_group_create::modified_group_init unknown operation" << endl;
140
141 }
142
143
144
145
146 if (f_v) {
147 cout << "modified_group_create::modified_group_init done" << endl;
148 }
149}
150
151
152
153}}}
154
155
156
157
void get_lint_vector_from_label(std::string &label, long int *&v, int &sz, int verbose_level)
action * restricted_action(long int *points, int nb_points, int verbose_level)
groups::strong_generators * Strong_gens
Definition: actions.h:130
a wrapper for linear_group and permutation_group_create
void modified_group_init(group_modification_description *description, int verbose_level)
#define TRUE
Definition: foundations.h:231
#define FALSE
Definition: foundations.h:234
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
algebra, combinatorics and graph theory, geometry, linear algebra, number theory, data structures,...
Definition: a_domain.cpp:18
the orbiter library for the classification of combinatorial objects