Orbiter 2022
Combinatorial Objects
tdo_refinement_description.cpp
Go to the documentation of this file.
1/*
2 * tdo_refinement_description.cpp
3 *
4 * Created on: May 23, 2020
5 * Author: betten
6 */
7
8
9
10
11
12#include "foundations.h"
13
14
15using namespace std;
16
17
18namespace orbiter {
19namespace layer1_foundations {
20namespace combinatorics {
21
22
24{
25 //fname_in;
27 lambda3 = 0;
28 block_size = 0;
29 f_scale = FALSE;
30 scaling = 0;
31 f_range = FALSE;
32 range_first = 0;
33 range_len = 1;
35 //select_label;
36 f_omit1 = FALSE;
37 omit1 = 0;
38 f_omit2 = FALSE;
39 omit2 = 0;
47 f_once = FALSE;
50 //fname_in;
51
52 Sol = NULL;
53}
54
56{
57
58 if (Sol) {
60 }
61}
62
63int tdo_refinement_description::read_arguments(int argc, std::string *argv, int verbose_level)
64{
65 int i;
67
70
71
72 for (i = 0; i < argc - 1; i++) {
73 if (ST.stringcmp(argv[i], "-lambda3") == 0) {
75 lambda3 = ST.strtoi(argv[++i]);
76 block_size = ST.strtoi(argv[++i]);
77 cout << "-lambda3 " << lambda3 << " " << block_size << endl;
78 }
79 if (ST.stringcmp(argv[i], "-scale") == 0) {
80 f_scale = TRUE;
81 scaling = ST.strtoi(argv[++i]);
82 cout << "-scale " << scaling << endl;
83 }
84 if (ST.stringcmp(argv[i], "-solution") == 0) {
85 //f_solution = TRUE;
86 Sol->system_no.push_back(ST.strtoi(argv[++i]));
87 string s;
88
89 s.assign(argv[++i]);
90 Sol->solution_file.push_back(s);
91
92 cout << "-solution " << Sol->system_no[Sol->system_no.size() - 1]
93 << " " << Sol->solution_file[Sol->solution_file.size() - 1] << endl;
95 }
96 else if (ST.stringcmp(argv[i], "-range") == 0) {
97 f_range = TRUE;
98 range_first = ST.strtoi(argv[++i]);
99 range_len = ST.strtoi(argv[++i]);
100 cout << "-range " << range_first << " " << range_len << endl;
101 }
102 else if (ST.stringcmp(argv[i], "-select") == 0) {
103 f_select = TRUE;
104 select_label.assign(argv[++i]);
105 cout << "-select " << select_label << endl;
106 }
107 else if (ST.stringcmp(argv[i], "-o1") == 0) {
108 f_omit1 = TRUE;
109 omit1 = ST.strtoi(argv[++i]);
110 cout << "-o1 " << omit1 << endl;
111 }
112 else if (ST.stringcmp(argv[i], "-o2") == 0) {
113 f_omit2 = TRUE;
114 omit2 = ST.strtoi(argv[++i]);
115 cout << "-o2 " << omit2 << endl;
116 }
117 if (ST.stringcmp(argv[i], "-D1_upper_bound_x0") == 0) {
119 D1_upper_bound_x0 = ST.strtoi(argv[++i]);
120 cout << "-D1_upper_bound_x0 " << D1_upper_bound_x0 << endl;
121 }
122 else if (ST.stringcmp(argv[i], "-reverse") == 0) {
123 f_reverse = TRUE;
124 cout << "-reverse" << endl;
125 }
126 else if (ST.stringcmp(argv[i], "-reverse_inverse") == 0) {
128 cout << "-reverse_inverse" << endl;
129 }
130 else if (ST.stringcmp(argv[i], "-nopacking") == 0) {
132 cout << "-nopacking" << endl;
133 }
134 else if (ST.stringcmp(argv[i], "-dual_is_linear_space") == 0) {
136 cout << "-dual_is_linear_space" << endl;
137 }
138 else if (ST.stringcmp(argv[i], "-geometric_test") == 0) {
140 cout << "-geometric_test" << endl;
141 }
142 else if (ST.stringcmp(argv[i], "-once") == 0) {
143 f_once = TRUE;
144 cout << "-once" << endl;
145 }
146 else if (ST.stringcmp(argv[i], "-mckay") == 0) {
148 cout << "-mckay" << endl;
149 }
150 else if (ST.stringcmp(argv[i], "-input_file") == 0) {
152 fname_in.assign(argv[++i]);
153 cout << "-input_file" << fname_in << endl;
154 }
155 else if (ST.stringcmp(argv[i], "-end") == 0) {
156 cout << "-end" << endl;
157 break;
158 }
159 else {
160 cout << "tdo_refinement_description::read_arguments "
161 "unrecognized option " << argv[i] << endl;
162 }
163 } // next i
164 cout << "tdo_refinement_description::read_arguments done" << endl;
165 return i + 1;
166}
167
169{
170 if (f_lambda3) {
171 cout << "-lambda3 " << lambda3 << " " << block_size << endl;
172 }
173 if (f_scale) {
174 cout << "-scale " << scaling << endl;
175 }
176#if 0
177 if (stringcmp(argv[i], "-solution") == 0) {
178 //f_solution = TRUE;
179 Sol->system_no.push_back(strtoi(argv[++i]));
180 string s;
181
182 s.assign(argv[++i]);
183 Sol->solution_file.push_back(s);
184
185 cout << "-solution " << Sol->system_no[Sol->system_no.size() - 1]
186 << " " << Sol->solution_file[Sol->solution_file.size() - 1] << endl;
188 }
189#endif
190 if (f_range) {
191 cout << "-range " << range_first << " " << range_len << endl;
192 }
193 if (f_select) {
194 cout << "-select " << select_label << endl;
195 }
196 if (f_omit1) {
197 cout << "-o1 " << omit1 << endl;
198 }
199 if (f_omit2) {
200 cout << "-o2 " << omit2 << endl;
201 }
203 cout << "-D1_upper_bound_x0 " << D1_upper_bound_x0 << endl;
204 }
205 if (f_reverse) {
206 cout << "-reverse" << endl;
207 }
208 if (f_reverse_inverse) {
209 cout << "-reverse_inverse" << endl;
210 }
212 cout << "-nopacking" << endl;
213 }
215 cout << "-dual_is_linear_space" << endl;
216 }
218 cout << "-geometric_test" << endl;
219 }
220 if (f_once) {
221 cout << "-once" << endl;
222 }
223 if (f_use_mckay_solver) {
224 cout << "-mckay" << endl;
225 }
226 if (f_input_file) {
227 cout << "-input_file" << fname_in << endl;
228 }
229
230}
231
232
233
234}}}
235
236
functions related to strings and character arrays
#define NEW_OBJECT(type)
Definition: foundations.h:638
#define FREE_OBJECT(p)
Definition: foundations.h:651
#define TRUE
Definition: foundations.h:231
#define FALSE
Definition: foundations.h:234
the orbiter library for the classification of combinatorial objects