14namespace layer4_classification {
15namespace poset_classification {
60 int f_v = (verbose_level >= 1);
63 cout <<
"orbit_based_testing::init" << endl;
69 cout <<
"orbit_based_testing::init done" << endl;
75 long int *S,
int len,
void *data,
int verbose_level),
79 int f_v = (verbose_level >= 1);
82 cout <<
"orbit_based_testing::add_callback" << endl;
89 cout <<
"orbit_based_testing::add_callback done" << endl;
94 void (*func)(
long int *S,
int len,
95 long int *candidates,
int nb_candidates,
96 long int *good_candidates,
int &nb_good_candidates,
97 void *data,
int verbose_level),
101 int f_v = (verbose_level >= 1);
104 cout <<
"orbit_based_testing::add_callback_no_group" << endl;
111 cout <<
"orbit_based_testing::add_callback_no_group done" << endl;
116 long int *S,
int len,
117 long int *candidates,
int nb_candidates,
118 long int *good_candidates,
int &nb_good_candidates,
121 int f_v = (verbose_level >= 1);
125 cout <<
"orbit_based_testing::early_test_func" << endl;
129 cout <<
"orbit_based_testing::early_test_func before early_test_func_by_using_group" << endl;
134 candidates, nb_candidates,
135 good_candidates, nb_good_candidates,
139 cout <<
"orbit_based_testing::early_test_func after early_test_func_by_using_group" << endl;
144 cout <<
"orbit_based_testing::early_test_func "
145 "nb_callback_no_group > 1" << endl;
149 cout <<
"orbit_based_testing::early_test_func nb_callback_no_group = " <<
nb_callback_no_group << endl;
152 cout <<
"orbit_based_testing::early_test_func before (*callback_testing_no_group[0])" << endl;
156 candidates, nb_candidates,
157 good_candidates, nb_good_candidates,
160 cout <<
"orbit_based_testing::early_test_func after (*callback_testing_no_group[0])" << endl;
165 cout <<
"orbit_based_testing::early_test_func no test function" << endl;
169 cout <<
"orbit_based_testing::early_test_func done" << endl;
174 long int *S,
int len,
175 long int *candidates,
int nb_candidates,
176 long int *good_candidates,
int &nb_good_candidates,
179 int f_v = (verbose_level >= 1);
180 int f_vv = (verbose_level >= 2);
184 cout <<
"orbit_based_testing::early_test_func_by_using_group" << endl;
190 cout <<
" testing " << nb_candidates <<
" candidates" << endl;
196 cout <<
"orbit_based_testing::early_test_func_by_using_group "
197 "len >= max_depth" << endl;
203 int i, j, node, f, l, nb_good_orbits;
214 cout <<
"orbit_based_testing::early_test_func_by_using_group for ";
226 O->nb_strong_generators, O->hdl_strong_generators, 0);
236 cout <<
"orbit_based_testing::early_test_func_by_using_group "
237 "before Schreier.compute_all_orbits_on_invariant_subset" << endl;
240 nb_candidates, candidates,
244 cout <<
"orbit_based_testing::early_test_func_by_using_group "
245 "after Schreier.compute_all_orbits_on_invariant_subset, we found "
246 << Schreier.
nb_orbits <<
" orbits" << endl;
248 nb_good_candidates = 0;
250 for (i = 0; i < Schreier.
nb_orbits; i++) {
253 pt = Schreier.
orbit[f];
255 f_orbit_is_good =
TRUE;
257 cout <<
"orbit_based_testing::early_test_func_by_using_group "
258 "testing orbit " << i <<
" / " << Schreier.
nb_orbits <<
" of length " << l << endl;
262 cout <<
"orbit_based_testing::early_test_func_by_using_group "
263 "testing orbit " << i <<
" / " << Schreier.
nb_orbits <<
" of length " << l
264 <<
" calling test function " << j <<
" / " <<
nb_callback << endl;
268 f_orbit_is_good =
FALSE;
274 if (rc.check_rank_last_two_are_fixed(len + 1,
276 f_orbit_is_good =
TRUE;
279 f_orbit_is_good =
FALSE;
283 f_orbit_is_good =
TRUE;
284 for (s = 0; s < len; s++) {
286 if (Hamming_distance(a, pt) < d) {
287 f_orbit_is_good =
FALSE;
294 if (f_orbit_is_good) {
295 for (j = 0; j < l; j++) {
296 pt = Schreier.
orbit[f + j];
297 good_candidates[nb_good_candidates++] = pt;
305 cout <<
"orbit_based_testing::early_test_func_by_using_group "
306 "after Schreier.compute_all_orbits_on_invariant_subset, "
308 << nb_good_candidates <<
" good candidates in "
309 << nb_good_orbits <<
" good orbits" << endl;
a collection of functions related to sorted vectors
void lint_vec_heapsort(long int *v, int len)
Schreier trees for orbits of groups on points.
void orbits_on_invariant_subset_fast_lint(int len, long int *subset, int verbose_level)
void init(actions::action *A, int verbose_level)
void init_generators_by_hdl(int nb_gen, int *gen_hdl, int verbose_level)
maintains a list of test functions which define a G-invariant poset
void(* callback_testing_no_group[MAX_CALLBACK])(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, void *data, int verbose_level)
void init(poset_classification *PC, int max_depth, int verbose_level)
void early_test_func_by_using_group(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, int verbose_level)
void early_test_func(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, int verbose_level)
void * callback_data_no_group[MAX_CALLBACK]
void add_callback_no_group(void(*func)(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, void *data, int verbose_level), void *data, int verbose_level)
poset_classification * PC
void add_callback(int(*func)(orbit_based_testing *Obt, long int *S, int len, void *data, int verbose_level), void *data, int verbose_level)
int(* callback_testing[MAX_CALLBACK])(orbit_based_testing *Obt, long int *S, int len, void *data, int verbose_level)
void * callback_data[MAX_CALLBACK]
the poset classification algorithm
actions::action * get_A2()
poset_orbit_node * get_node(int node_idx)
int find_poset_orbit_node_for_set(int len, long int *set, int f_tolerant, int verbose_level)
to represent one poset orbit; related to the class poset_classification
void get_strong_generators_handle(std::vector< int > &gen_hdl, int verbose_level)
void print_set(poset_classification *gen)
#define Lint_vec_copy(A, B, C)
#define Lint_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects