15namespace layer5_applications {
16namespace apps_combinatorics {
35 int f_v = (verbose_level >= 1);
38 cout <<
"large_set_was_activity::perform_activity" << endl;
73 long int *starter_set = NULL;
74 int starter_set_sz = 0;
86 cout <<
"large_set_was_activity::perform_activity done" << endl;
93if (f_compute_normalizer_orbits) {
95 cout <<
"large_set_classify::process_starter_case computing orbits "
96 "of normalizer on orbits of index " << selected_type_idx << endl;
100 action *A_on_orbits_restricted;
104 A_on_orbits->induced_action_on_orbits(A_reduced,
106 TRUE , verbose_level - 1);
108 A_on_orbits_restricted = A_on_orbits->restricted_action(
109 OoS->Orbits_classified->Sets[selected_type_idx],
110 OoS->Orbits_classified->Set_size[selected_type_idx],
114 cout <<
"large_set_classify::process_starter_case before "
115 "compute_orbits_on_points for the restricted action "
116 "on the good orbits" << endl;
118 A_on_orbits_restricted->compute_orbits_on_points(
119 Sch, N_gens->gens, verbose_level - 1);
122 cout <<
"large_set_classify::process_starter_case "
123 "the number of orbits of the normalizer on the "
124 "good orbits is " << Sch->nb_orbits << endl;
125 Sch->print_and_list_orbits_tex(cout);
126 cout <<
"printing orbits through Design_table_reduced_idx:" << endl;
127 Sch->print_and_list_orbits_using_labels(
128 cout, Design_table_reduced_idx);
132 long int *Orbits_under_N;
138 Orbits_under_N =
NEW_lint(Sch->nb_orbits * 2);
140 fname_out.assign(prefix);
141 fname_out.append(
"_graph_");
142 fname_out.append(group_label);
143 fname_out.append(
"_N_orbit_reps.csv");
145 for (i = 0; i < Sch->nb_orbits; i++) {
146 l = Sch->orbit_len[i];
147 a = Sch->orbit[Sch->orbit_first[i]];
148 Orbits_under_N[2 * i + 0] = a;
149 Orbits_under_N[2 * i + 1] = l;
151 Fio.lint_matrix_write_csv(fname_out, Orbits_under_N, Sch->nb_orbits, 2);
160 cout <<
"large_set_classify::process_starter_case "
161 "computing orbits of normalizer done" << endl;
166if (f_read_solution_file) {
168 cout <<
"large_set_classify::process_starter_case "
169 "trying to read solution file " << solution_file_name << endl;
171 int i, j, a, b, l, h;
178 Fio.read_solutions_from_file_and_get_solution_size(solution_file_name,
179 nb_solutions, Solutions, solution_size,
181 cout <<
"Read the following solutions from file:" << endl;
183 cout <<
"Number of solutions = " << nb_solutions << endl;
184 cout <<
"solution_size = " << solution_size << endl;
186 int sz = starter_set_sz + solution_size * orbit_length;
188 if (sz != size_of_large_set) {
189 cout <<
"large_set_classify::process_starter_case sz != size_of_large_set" << endl;
194 nb_large_sets = nb_solutions;
195 Large_sets =
NEW_lint(nb_solutions * sz);
196 for (i = 0; i < nb_solutions; i++) {
198 for (j = 0; j < solution_size; j++) {
200 a = Solutions[i * solution_size + j];
201 b = OoS->Orbits_classified->Sets[selected_type_idx][a];
203 b = Solutions[i * solution_size + j];
208 OoS->Sch->get_orbit(b,
209 Large_sets + i * sz + starter_set_sz + j * orbit_length,
211 if (l != orbit_length) {
212 cout <<
"large_set_classify::process_starter_case l != orbit_length" << endl;
216 for (j = 0; j < solution_size * orbit_length; j++) {
217 a = Large_sets[i * sz + starter_set_sz + j];
218 b = Design_table_reduced_idx[a];
219 Large_sets[i * sz + starter_set_sz + j] = b;
227 fname_out.assign(solution_file_name);
228 ST.replace_extension_with(fname_out,
"_packings.csv");
230 ST.replace_extension_with(fname_out,
"_packings.csv");
232 Fio.lint_matrix_write_csv(fname_out, Large_sets, nb_solutions, sz);
234 long int *Packings_explicit;
235 int Sz = sz * design_size;
237 Packings_explicit =
NEW_lint(nb_solutions * Sz);
238 for (i = 0; i < nb_solutions; i++) {
239 for (j = 0; j < sz; j++) {
240 a = Large_sets[i * sz + j];
241 for (h = 0; h < design_size; h++) {
242 b = Design_table[a * design_size + h];
243 Packings_explicit[i * Sz + j * design_size + h] = b;
252 fname_out.assign(solution_file_name);
253 ST.replace_extension_with(fname_out,
"_packings_explicit.csv");
255 Fio.lint_matrix_write_csv(fname_out, Packings_explicit, nb_solutions, Sz);
263 cout <<
"large_set_classify::process_starter_case "
264 "before OoS->create_graph_on_orbits_of_a_certain_length" << endl;
268 OoS->create_graph_on_orbits_of_a_certain_length(
273 f_has_user_data, NULL , 0 ,
274 TRUE , nb_remaining_colors, reduced_design_color_table,
275 large_set_design_test_pair_of_orbits,
280 cout <<
"large_set_classify::process_starter_case "
281 "after OoS->create_graph_on_orbits_of_a_certain_length" << endl;
284 cout <<
"large_set_classify::process_starter_case "
285 "before CG->save" << endl;
288 CG->save(fname, verbose_level);
void matrix_print(int *p, int m, int n)
void copy(long int *from, long int *to, long int len)
data_structures::lint_vec * Lint_vec
data_structures::int_vec * Int_vec
description of an activity for a large set search with assumed symmetry
int create_graph_on_orbits_of_length_based_on_N_orbits_length
std::string create_graph_on_orbits_of_length_fname
int normalizer_on_orbits_of_a_given_length_length
int normalizer_on_orbits_of_a_given_length_nb_orbits
int create_graph_on_orbits_of_length_length
int read_solution_file_orbit_length
int f_create_graph_on_orbits_of_length
int f_normalizer_on_orbits_of_a_given_length
std::string create_graph_on_orbits_of_length_based_on_N_orbits_fname
poset_classification::poset_classification_control * normalizer_on_orbits_of_a_given_length_control
std::string read_solution_file_name
int f_create_graph_on_orbits_of_length_based_on_N_orbits
large_set_was_activity_description * Descr
~large_set_was_activity()
void perform_activity(large_set_was_activity_description *Descr, large_set_was *LSW, int verbose_level)
classification of large sets of designs with assumed symmetry
void create_graph_on_orbits_of_length(std::string &fname, int orbit_length, int verbose_level)
void read_solution_file(std::string &solution_file_name, long int *starter_set, int starter_set_sz, int orbit_length, int verbose_level)
void create_graph_on_orbits_of_length_based_on_N_orbits(std::string &fname_mask, int orbit_length2, int verbose_level)
void do_normalizer_on_orbits_of_a_given_length(int orbit_length, int nb_of_orbits_to_choose, poset_classification::poset_classification_control *Control, int verbose_level)
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
the orbiter library for the classification of combinatorial objects