Orbiter 2022
Combinatorial Objects
data_input_stream_description.cpp
Go to the documentation of this file.
1/*
2 * data_input_stream_description.cpp
3 *
4 * Created on: Jan 18, 2019
5 * Author: betten
6 */
7
8
9#include "foundations.h"
10
11using namespace std;
12
13
14namespace orbiter {
15namespace layer1_foundations {
16namespace data_structures {
17
18
20{
21 nb_inputs = 0;
22 //std::vector<data_input_stream_description_element> Input;
23}
24
26{
27}
28
29
31 int argc, std::string *argv,
32 int verbose_level)
33{
34 int i;
35 string_tools ST;
36
37 cout << "data_input_stream::read_arguments" << endl;
38 if (argc) {
39 cout << "data_input_stream::read_arguments next argument is " << argv[0] << endl;
40 }
41 for (i = 0; i < argc; i++) {
42
43 if (ST.stringcmp(argv[i], "-set_of_points") == 0) {
44
46 string a;
47
48 a.assign(argv[++i]);
50 Input.push_back(E);
51
52 E.print();
53 nb_inputs++;
54 }
55 else if (ST.stringcmp(argv[i], "-set_of_lines") == 0) {
56
58 string a;
59
60 a.assign(argv[++i]);
62 Input.push_back(E);
63
64 E.print();
65
66 nb_inputs++;
67 }
68 else if (ST.stringcmp(argv[i], "-set_of_points_and_lines") == 0) {
69
71 string a, b;
72
73 a.assign(argv[++i]);
74 b.assign(argv[++i]);
76 Input.push_back(E);
77
78 E.print();
79
80 nb_inputs++;
81 }
82 else if (ST.stringcmp(argv[i], "-set_of_packing") == 0) {
83
85 string a;
86 int q;
87
88 a.assign(argv[++i]);
89 q = ST.strtoi(argv[++i]);
90
91 E.init_packing(a, q);
92 Input.push_back(E);
93
94 E.print();
95
96 nb_inputs++;
97 }
98 else if (ST.stringcmp(argv[i], "-file_of_points") == 0) {
99
101 string a;
102
103 a.assign(argv[++i]);
104
106 Input.push_back(E);
107
108 E.print();
109
110 nb_inputs++;
111 }
112 else if (ST.stringcmp(argv[i], "-file_of_lines") == 0) {
113
115 string a;
116
117 a.assign(argv[++i]);
118
120 Input.push_back(E);
121
122 E.print();
123
124 nb_inputs++;
125 }
126 else if (ST.stringcmp(argv[i], "-file_of_packings") == 0) {
127
129 string a;
130
131 a.assign(argv[++i]);
132
134 Input.push_back(E);
135
136 E.print();
137
138 nb_inputs++;
139 }
140 else if (ST.stringcmp(argv[i],
141 "-file_of_packings_through_spread_table") == 0) {
142
144 string a, b;
145 int q;
146
147 a.assign(argv[++i]);
148 b.assign(argv[++i]);
149 q = ST.strtoi(argv[++i]);
150
152 Input.push_back(E);
153
154 E.print();
155
156 nb_inputs++;
157 }
158 else if (ST.stringcmp(argv[i], "-file_of_point_set") == 0) {
159
161 string a;
162
163 a.assign(argv[++i]);
164
166 Input.push_back(E);
167
168 E.print();
169
170 nb_inputs++;
171 }
172 else if (ST.stringcmp(argv[i], "-file_of_designs") == 0) {
173
175 std::string a;
176 int N_points, b, k, partition_class_size;
177
178 a.assign(argv[++i]);
179 N_points = ST.strtoi(argv[++i]);
180 b = ST.strtoi(argv[++i]);
181 k = ST.strtoi(argv[++i]);
182 partition_class_size = ST.strtoi(argv[++i]);
183
185 N_points, b, k, partition_class_size);
186 Input.push_back(E);
187
188 E.print();
189
190 nb_inputs++;
191 }
192 else if (ST.stringcmp(argv[i], "-file_of_incidence_geometries") == 0) {
193
195 std::string a;
196 int v, b, f;
197
198 a.assign(argv[++i]);
199 v = ST.strtoi(argv[++i]);
200 b = ST.strtoi(argv[++i]);
201 f = ST.strtoi(argv[++i]);
202
204 Input.push_back(E);
205
206 E.print();
207
208 nb_inputs++;
209 }
210 else if (ST.stringcmp(argv[i], "-file_of_incidence_geometries_by_row_ranks") == 0) {
211
213 std::string a;
214 int v, b, r;
215
216 a.assign(argv[++i]);
217 v = ST.strtoi(argv[++i]);
218 b = ST.strtoi(argv[++i]);
219 r = ST.strtoi(argv[++i]);
220
222 Input.push_back(E);
223
224 E.print();
225
226 nb_inputs++;
227 }
228 else if (ST.stringcmp(argv[i], "-incidence_geometry") == 0) {
229
231 std::string a;
232 int v, b, f;
233
234 a.assign(argv[++i]);
235 v = ST.strtoi(argv[++i]);
236 b = ST.strtoi(argv[++i]);
237 f = ST.strtoi(argv[++i]);
238
239 E.init_incidence_geometry(a, v, b, f);
240 Input.push_back(E);
241
242 E.print();
243
244 nb_inputs++;
245 }
246 else if (ST.stringcmp(argv[i], "-incidence_geometry_by_row_ranks") == 0) {
247
249 std::string a;
250 int v, b, r;
251
252 a.assign(argv[++i]);
253 v = ST.strtoi(argv[++i]);
254 b = ST.strtoi(argv[++i]);
255 r = ST.strtoi(argv[++i]);
256
258 Input.push_back(E);
259
260 E.print();
261
262 nb_inputs++;
263 }
264 else if (ST.stringcmp(argv[i], "-from_parallel_search") == 0) {
265
267 string fname_mask;
268 int nb_cases;
269 string cases_fname;
270
271 fname_mask.assign(argv[++i]);
272 nb_cases = ST.strtoi(argv[++i]);
273 cases_fname.assign(argv[++i]);
274 E.init_from_parallel_search(fname_mask, nb_cases, cases_fname);
275 Input.push_back(E);
276
277 E.print();
278
279 nb_inputs++;
280 }
281 else if (ST.stringcmp(argv[i], "-end") == 0) {
282 cout << "-end" << endl;
283 break;
284 }
285 else {
286 cout << "data_input_stream::read_arguments "
287 "unrecognized option " << argv[i] << endl;
288 exit(1);
289 }
290 } // next i
291 cout << "data_input_stream::read_arguments done" << endl;
292 return i + 1;
293}
294
296{
297 int i;
298
299 for (i = 0; i < nb_inputs; i++) {
300 print_item(i);
301 }
302}
303
305{
306 Input[i].print();
307}
308
309
310
311
312}}}
313
314
describes one element in an input stream of combinatorial objects
void init_file_of_designs(std::string &a, int N_points, int b, int k, int partition_class_size)
void init_from_parallel_search(std::string &fname_mask, int nb_cases, std::string &cases_fname)
std::vector< data_input_stream_description_element > Input
functions related to strings and character arrays
the orbiter library for the classification of combinatorial objects