19namespace layer4_classification {
79 long int *set,
int sz,
82 int f_v = (verbose_level >= 1);
85 cout <<
"orbit_of_sets::init" << endl;
99 cout <<
"orbit_of_sets::init done" << endl;
105 int f_v = (verbose_level >= 1);
115 cout <<
"orbit_of_sets::compute" << endl;
128 Extra[0 * 2 + 0] = -1;
129 Extra[0 * 2 + 1] = -1;
136 Hashing.insert(pair<uint32_t, int>(h, 0));
144 cout <<
"Q_len = " << Q_len <<
" : used_length="
150 for (i = 1; i < Q_len; i++) {
156 for (j = 0; j <
gens->
len; j++) {
158 cout <<
"Q_len = " << Q_len <<
" : used_length="
160 cout <<
"applying generator " << j << endl;
167 map<uint32_t, int>::iterator itr, itr1, itr2;
173 for (itr = itr1; itr != itr2; ++itr) {
188 cout <<
"reallocating to length " << al2 << endl;
201 cout <<
"reallocate Extra" << endl;
210 cout <<
"reallocate Q2" << endl;
220 cout <<
"reallocating to length " << al2 <<
" done" << endl;
232 <<
" Q_len=" << Q_len
248 map<uint32_t, int>::iterator itr;
254 cout <<
"Testing hash values..." << endl;
255 for (itr =
Hashing.begin(), cnt = 0; itr !=
Hashing.end(); ++itr, cnt++) {
258 h = int_vec_hash(
Sets[pos],
sz);
259 if (h != itr->first) {
260 cout <<
"h != itr->first" << endl;
264 cout <<
"test 2..." << endl;
267 h = int_vec_hash(
Sets[p],
sz);
268 map<uint32_t, int>::iterator itr, itr1, itr2;
274 for (itr = itr1; itr != itr2; ++itr) {
282 cout <<
"could not find entry " << p <<
" with hash " << h << endl;
284 cout <<
"could not find entry " << p <<
" with hash " << h << endl;
285 int_vec_print(cout,
Sets[p],
sz);
287 h = int_vec_hash(
Sets[p],
sz);
296 cout <<
"orbit_of_sets::compute found an orbit of length "
303 cout <<
"orbit_of_sets::compute done" << endl;
309 map<uint32_t, int>::iterator itr;
316 for (itr =
Hashing.begin(), cnt = 0; itr !=
Hashing.end(); ++itr, cnt++) {
317 cout << cnt <<
" : " << itr->first <<
" : " << itr->second << endl;
320 if (h != itr->first) {
321 cout <<
"h != itr->first" << endl;
329 int &orbit_length,
int &set_size,
int verbose_level)
331 int f_v = (verbose_level >= 1);
337 cout <<
"orbit_of_sets::get_table_of_orbits orbit_length="
338 << orbit_length << endl;
340 Table =
NEW_lint(orbit_length * set_size);
341 for (i = 0; i < orbit_length; i++) {
342 for (j = 0; j < set_size; j++) {
343 Table[i * set_size + j] =
Sets[i][j];
347 cout <<
"orbit_of_sets::get_table_of_orbits done" << endl;
353 int &orbit_length,
int &set_size,
int verbose_level)
355 int f_v = (verbose_level >= 1);
363 cout <<
"orbit_of_sets::get_table_of_orbits_and_hash_values orbit_length="
364 << orbit_length << endl;
366 Table =
NEW_lint(orbit_length * set_size);
367 for (i = 0; i < orbit_length; i++) {
371 Table[i * set_size + 0] = h;
372 for (j = 1; j < set_size; j++) {
373 Table[i * set_size + j] =
Sets[i][j - 1];
377 cout <<
"orbit_of_sets::get_table_of_orbits_and_hash_values done" << endl;
384 int f_v = (verbose_level >= 1);
387 cout <<
"orbit_of_sets::make_table_of_coset_reps" << endl;
392 Coset_reps->
init(
A, 0);
395 prev =
Extra[2 * j + 0];
396 label =
Extra[2 * j + 1];
405 cout <<
"orbit_of_sets::make_table_of_coset_reps done" << endl;
417 if (
Extra[2 * j + 0] != -1) {
430 int f_v = (verbose_level >= 1);
433 cout <<
"orbit_of_sets::get_orbit_of_points" << endl;
438 Orbit.push_back(
Sets[i][0]);
441 cout <<
"orbit_of_sets::get_orbit_of_points done" << endl;
447 int f_v = (verbose_level >= 1);
450 cout <<
"orbit_of_sets::get_prev" << endl;
455 Prev.push_back(
Extra[2 * i + 0]);
458 cout <<
"orbit_of_sets::get_prev done" << endl;
464 int f_v = (verbose_level >= 1);
467 cout <<
"orbit_of_sets::get_label" << endl;
472 Label.push_back(
Extra[2 * i + 1]);
475 cout <<
"orbit_of_sets::get_label done" << endl;
a catch-all container class for everything related to data structures
uint32_t lint_vec_hash(long int *data, int len)
a collection of functions related to sorted vectors
int lint_vec_compare(long int *p, long int *q, int len)
void lint_vec_heapsort(long int *v, int len)
a permutation group in a fixed action.
void map_a_set(long int *set, long int *image_set, int n, int *Elt, int verbose_level)
void element_mult(void *a, void *b, void *ab, int verbose_level)
void element_one(void *elt, int verbose_level)
void element_move(void *a, void *b, int verbose_level)
to hold a vector of group elements
void allocate(int length, int verbose_level)
void init(actions::action *A, int verbose_level)
void make_table_of_coset_reps(data_structures_groups::vector_ge *&Coset_reps, int verbose_level)
void compute(int verbose_level)
void get_label(std::vector< int > &Label, int verbose_level)
void dump_tables_of_hash_values()
void get_table_of_orbits_and_hash_values(long int *&Table, int &orbit_length, int &set_size, int verbose_level)
std::multimap< uint32_t, int > Hashing
data_structures_groups::vector_ge * gens
int position_of_original_set
void get_orbit_of_points(std::vector< long int > &Orbit, int verbose_level)
void get_table_of_orbits(long int *&Table, int &orbit_length, int &set_size, int verbose_level)
void get_prev(std::vector< int > &Prev, int verbose_level)
void init(actions::action *A, actions::action *A2, long int *set, int sz, data_structures_groups::vector_ge *gens, int verbose_level)
#define Lint_vec_copy(A, B, C)
#define Lint_vec_print(A, B, C)
#define Int_vec_copy(A, B, C)
the orbiter library for the classification of combinatorial objects