Orbiter 2022
Combinatorial Objects
combinatorial_object_activity_description.cpp
Go to the documentation of this file.
1/*
2 * combinatorial_object_activity_description.cpp
3 *
4 * Created on: Mar 20, 2021
5 * Author: betten
6 */
7
8
9
10
11#include "orbiter.h"
12
13using namespace std;
14
15namespace orbiter {
16namespace layer5_applications {
17namespace apps_combinatorics {
18
19
20
22{
23 f_save = FALSE;
24
26 //std::string save_as_fname;
27
29 //std::string extract_subset_set;
30 //std::string extract_subset_fname;
31
33
36
38
39 f_ideal = FALSE;
40 ideal_degree = 0;
41
42
44 //std::string &canonical_form_PG_PG_label;
48
51
54
56 //std::string draw_incidence_matrices_prefix;
57
59 //test_distinguishing_property_graph
60
62 //std::string unpack_from_restricted_action_prefix;
63 //std::string unpack_from_restricted_action_group_label;
64
66 //std::string line_covering_type_prefix;
67 //std::string line_covering_type_projective_space;
68 //std::string line_covering_type_lines;
69
70
71}
72
74{
75}
76
77
79 int argc, std::string *argv,
80 int verbose_level)
81{
82 int f_v = (verbose_level >= 1);
83 int i;
85
86 if (f_v) {
87 cout << "combinatorial_object_activity_description::read_arguments" << endl;
88 }
89 for (i = 0; i < argc; i++) {
90
91 // activities for COC:
92
93
94 if (ST.stringcmp(argv[i], "-save") == 0) {
95 f_save = TRUE;
96 if (f_v) {
97 cout << "-save " << endl;
98 }
99 }
100 else if (ST.stringcmp(argv[i], "-save_as") == 0) {
101 f_save_as = TRUE;
102 save_as_fname.assign(argv[++i]);
103 if (f_v) {
104 cout << "-save_as " << save_as_fname << endl;
105 }
106 }
107 else if (ST.stringcmp(argv[i], "-extract_subset") == 0) {
109 extract_subset_set.assign(argv[++i]);
110 extract_subset_fname.assign(argv[++i]);
111 if (f_v) {
112 cout << "-extract_subset " << extract_subset_set << " " << extract_subset_fname << endl;
113 }
114 }
115
116 else if (ST.stringcmp(argv[i], "-line_type") == 0) {
118 if (f_v) {
119 cout << "-line_type " << endl;
120 }
121 }
122 else if (ST.stringcmp(argv[i], "-conic_type") == 0) {
124 conic_type_threshold = ST.strtoi(argv[++i]);
125 if (f_v) {
126 cout << "-conic_type " << conic_type_threshold << endl;
127 }
128 }
129 else if (ST.stringcmp(argv[i], "-non_conical_type") == 0) {
131 if (f_v) {
132 cout << "-non_conical_type " << endl;
133 }
134 }
135 else if (ST.stringcmp(argv[i], "-ideal") == 0) {
136 f_ideal = TRUE;
137 ideal_degree = ST.strtoi(argv[++i]);
138 if (f_v) {
139 cout << "-ideal " << ideal_degree << endl;
140 }
141 }
142
143 // activities for IS:
144
145 else if (ST.stringcmp(argv[i], "-canonical_form_PG") == 0) {
147 if (f_v) {
148 cout << "-canonical_form_PG, reading extra arguments" << endl;
149 }
150
151 canonical_form_PG_PG_label.assign(argv[++i]);
152
154
155 i += Canonical_form_PG_Descr->read_arguments(argc - (i + 1), argv + i + 1, verbose_level);
156 if (f_v) {
157 cout << "done reading -canonical_form_PG " << endl;
158 cout << "i = " << i << endl;
159 cout << "argc = " << argc << endl;
160 if (i < argc) {
161 cout << "next argument is " << argv[i] << endl;
162 }
163 }
164 }
165
166 else if (ST.stringcmp(argv[i], "-canonical_form") == 0) {
168 if (f_v) {
169 cout << "-canonical_form, reading extra arguments" << endl;
170 }
171
173
174 i += Canonical_form_Descr->read_arguments(argc - (i + 1), argv + i + 1, verbose_level);
175 if (f_v) {
176 cout << "done reading -canonical_form " << endl;
177 cout << "i = " << i << endl;
178 cout << "argc = " << argc << endl;
179 if (i < argc) {
180 cout << "next argument is " << argv[i] << endl;
181 }
182 }
183 }
184 else if (ST.stringcmp(argv[i], "-report") == 0) {
185 f_report = TRUE;
186
188 i += Classification_of_objects_report_options->read_arguments(argc - (i + 1), argv + i + 1, verbose_level);
189 }
190 else if (ST.stringcmp(argv[i], "-draw_incidence_matrices") == 0) {
192 draw_incidence_matrices_prefix.assign(argv[++i]);
193
194 }
195 else if (ST.stringcmp(argv[i], "-test_distinguishing_property") == 0) {
197 test_distinguishing_property_graph.assign(argv[++i]);
198 cout << "-test_distinguishing_property " << test_distinguishing_property_graph << endl;
199 }
200 else if (ST.stringcmp(argv[i], "-unpack_from_restricted_action") == 0) {
202 unpack_from_restricted_action_prefix.assign(argv[++i]);
204 cout << "-unpack_from_restricted_action " << unpack_from_restricted_action_prefix
206 }
207 else if (ST.stringcmp(argv[i], "-line_covering_type") == 0) {
209 line_covering_type_prefix.assign(argv[++i]);
210 line_covering_type_projective_space.assign(argv[++i]);
211 line_covering_type_lines.assign(argv[++i]);
212 cout << "-line_covering_type " << line_covering_type_prefix
215 << endl;
216 }
217
218 else if (ST.stringcmp(argv[i], "-end") == 0) {
219 if (f_v) {
220 cout << "-end" << endl;
221 }
222 break;
223 }
224 else {
225 cout << "combinatorial_object_activity_description::read_arguments "
226 "unrecognized option " << argv[i] << endl;
227 }
228 } // next i
229 if (f_v) {
230 cout << "combinatorial_object_activity_description::read_arguments done" << endl;
231 }
232 return i + 1;
233}
234
236{
237 if (f_save) {
238 cout << "-save " << endl;
239 }
240 if (f_save_as) {
241 cout << "-save_as " << save_as_fname << endl;
242 }
243 if (f_extract_subset) {
244 cout << "-extract_subset " << extract_subset_set << " " << extract_subset_fname << endl;
245 }
246 if (f_line_type) {
247 cout << "-line_type " << endl;
248 }
249 if (f_conic_type) {
250 cout << "-conic_type " << conic_type_threshold << endl;
251 }
252 if (f_non_conical_type) {
253 cout << "-f_non_conical_type " << endl;
254 }
255 if (f_ideal) {
256 cout << "-ideal " << ideal_degree << endl;
257 }
259 cout << "-canonical_form_PG " << canonical_form_PG_PG_label << endl;
261 }
262 if (f_canonical_form) {
263 cout << "-canonical_form " << endl;
265 }
266 if (f_report) {
267 cout << "-report " << endl;
269 }
271 cout << "-draw_incidence_matrices " << draw_incidence_matrices_prefix << endl;
272 }
274 cout << "-test_distinguishing_property " << test_distinguishing_property_graph << endl;
275 }
277 cout << "-unpack_from_restricted_action " << unpack_from_restricted_action_prefix
279 }
281 cout << "-line_covering_type " << line_covering_type_prefix
284 << endl;
285 }
286}
287
288
289
290}}}
291
description of a classification of objects using class classification_of_objects
options for the report for a classification of combinatorial objects
functions related to strings and character arrays
combinatorics::classification_of_objects_report_options * Classification_of_objects_report_options
#define NEW_OBJECT(type)
Definition: foundations.h:638
#define TRUE
Definition: foundations.h:231
#define FALSE
Definition: foundations.h:234
the orbiter library for the classification of combinatorial objects