Orbiter 2022
Combinatorial Objects
packing_was_description.cpp
Go to the documentation of this file.
1/*
2 * packing_was_description.cpp
3 *
4 * Created on: Jun 10, 2020
5 * Author: betten
6 */
7
8
9
10
11#include "orbiter.h"
12
13using namespace std;
14
15namespace orbiter {
16namespace layer5_applications {
17namespace packings {
18
19
21{
22
24 Long_Orbits_Descr = NULL;
25
27
29 //spread_tables_prefix = "";
30
32 ECA = NULL;
33
35 IA = NULL;
36
37 f_H = FALSE;
38 //std::string H_label;
39 H_Descr = NULL;
40
41 f_N = FALSE;
42 //std::string N_label;
43 N_Descr = NULL;
44
46 //clique_size = 0;
47
49}
50
52{
53}
54
55int packing_was_description::read_arguments(int argc, std::string *argv,
56 int verbose_level)
57{
58 int i;
60
61
62
63 cout << "packing_was_description::read_arguments" << endl;
64 for (i = 0; i < argc; i++) {
65
66 if (ST.stringcmp(argv[i], "-H") == 0) {
67 f_H = TRUE;
68 cout << "reading -H" << endl;
69 H_label.assign(argv[++i]);
71 i += H_Descr->read_arguments(argc - (i + 1),
72 argv + i + 1, verbose_level);
73
74 //i++;
75 cout << "done reading -H" << endl;
76 cout << "i = " << i << endl;
77 cout << "argc = " << argc << endl;
78 if (i < argc) {
79 cout << "next argument is " << argv[i] << endl;
80 }
81 }
82
83 else if (ST.stringcmp(argv[i], "-N") == 0) {
84 f_N = TRUE;
85 cout << "reading -N" << endl;
86 N_label.assign(argv[++i]);
88 i += N_Descr->read_arguments(argc - (i + 1),
89 argv + i + 1, verbose_level);
90
91 //i++;
92 cout << "done reading -N" << endl;
93 cout << "i = " << i << endl;
94 cout << "argc = " << argc << endl;
95 if (i < argc) {
96 cout << "next argument is " << argv[i] << endl;
97 }
98 }
99
100 else if (ST.stringcmp(argv[i], "-fixp_clique_types_save_individually") == 0) {
102 cout << "-fixp_clique_types_save_individually " << endl;
103 }
104
105
106 else if (ST.stringcmp(argv[i], "-process_long_orbits") == 0) {
109 cout << "-process_long_orbits " << endl;
110 i += Long_Orbits_Descr->read_arguments(argc - (i + 1),
111 argv + i + 1, verbose_level);
112
113 cout << "done reading -process_long_orbits " << endl;
114 cout << "i = " << i << endl;
115 cout << "argc = " << argc << endl;
116 if (i < argc) {
117 cout << "next argument is " << argv[i] << endl;
118 }
119 }
120
121
122
123
124 else if (ST.stringcmp(argv[i], "-spread_tables_prefix") == 0) {
126 spread_tables_prefix.assign(argv[++i]);
127 cout << "-spread_tables_prefix "
128 << spread_tables_prefix << endl;
129 }
130
131 else if (ST.stringcmp(argv[i], "-report") == 0) {
132 f_report = TRUE;
133 cout << "-report " << endl;
134 }
135
136 else if (ST.stringcmp(argv[i], "-exact_cover") == 0) {
139 i += ECA->read_arguments(argc - (i + 1),
140 argv + i + 1, verbose_level);
141
142 cout << "done reading -exact_cover " << endl;
143 cout << "i = " << i << endl;
144 cout << "argc = " << argc << endl;
145 if (i < argc) {
146 cout << "next argument is " << argv[i] << endl;
147 }
148 cout << "-exact_cover " << endl;
149 }
150
151 else if (ST.stringcmp(argv[i], "-isomorph") == 0) {
154 i += IA->read_arguments(argc - (i + 1),
155 argv + i + 1, verbose_level);
156
157 cout << "done reading -isomorph " << 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 cout << "-isomorph " << endl;
164 }
165
166 else if (ST.stringcmp(argv[i], "-regular_packing") == 0) {
168 cout << "-regular_packing " << endl;
169 }
170
171
172
173 else if (ST.stringcmp(argv[i], "-end") == 0) {
174 break;
175 }
176 else {
177 cout << "packing_was_description::read_arguments unknown argument " << argv[i] << endl;
178 exit(1);
179 }
180 } // next i
181
182 cout << "packing_was_description::read_arguments done" << endl;
183 return i + 1;
184}
185
186
188{
189 if (f_H) {
190 cout << "-H" << " " << H_label << endl;
191 H_Descr->print();
192 }
193
194 if (f_N) {
195 cout << "-N" << " " << N_label << endl;
196 N_Descr->print();
197 }
198
200 cout << "-fixp_clique_types_save_individually " << endl;
201 }
202
203
205 cout << "-process_long_orbits " << endl;
207 }
208
209
210
211
213 cout << "-spread_tables_prefix " << spread_tables_prefix << endl;
214 }
215
216 if (f_report) {
217 cout << "-report " << endl;
218 }
219
220 if (f_exact_cover) {
221 cout << "-exact_cover " << endl;
222 }
223
224 if (f_isomorph) {
225 cout << "-isomorph " << endl;
226 }
227
228 if (f_regular_packing) {
229 cout << "-regular_packing " << endl;
230 }
231}
232
233
234
235}}}
236
functions related to strings and character arrays
description of a linear group from the command line
Definition: groups.h:158
int read_arguments(int argc, std::string *argv, int verbose_level)
command line arguments to control the lifting via exact cover
Definition: solver.h:155
int read_arguments(int argc, std::string *argv, int verbose_level)
auxiliary class for class isomorph
Definition: isomorph.h:696
int read_arguments(int argc, std::string *argv, int verbose_level)
command line description of picking long orbits of packings with assumed symmetry
Definition: packings.h:245
int read_arguments(int argc, std::string *argv, int verbose_level)
#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