10#ifndef ORBITER_SRC_LIB_TOP_LEVEL_ORBITS_ORBITS_H_
11#define ORBITER_SRC_LIB_TOP_LEVEL_ORBITS_ORBITS_H_
17namespace layer4_classification {
33 induced_actions::action_on_homogeneous_polynomials *
AonHPD;
34 field_theory::finite_field *
F;
35 groups::strong_generators *
SG;
61 void init(actions::action *
A, field_theory::finite_field *
F,
62 induced_actions::action_on_homogeneous_polynomials *
AonHPD,
63 groups::strong_generators *
SG,
int *coeff_in,
66 int *Elt,
int verbose_level);
74 int *canonical_equation,
75 int *transporter_to_canonical_form,
76 groups::strong_generators *&gens_stab_of_canonical_equation,
77 ring_theory::longinteger_object &full_group_order,
80 ring_theory::longinteger_object &full_group_order,
int verbose_level);
82 ring_theory::longinteger_object &go,
83 groups::sims *&Stab,
int verbose_level);
86 ring_theory::longinteger_object &full_group_order,
int idx,
89 int search_data(
int *data,
int &idx,
int verbose_level);
90 void save_csv(std::string &fname,
int verbose_level);
110 data_structures_groups::vector_ge *
gens;
143 void init(actions::action *
A, actions::action *
A2,
144 long int *
set,
int sz,
145 data_structures_groups::vector_ge *
gens,
int verbose_level);
146 void compute(
int verbose_level);
149 int &set_size,
int verbose_level);
151 int &orbit_length,
int &set_size,
int verbose_level);
153 data_structures_groups::vector_ge *&Coset_reps,
int verbose_level);
160 void get_prev(std::vector<int> &Prev,
int verbose_level);
161 void get_label(std::vector<int> &Label,
int verbose_level);
179 field_theory::finite_field *
F;
180 data_structures_groups::vector_ge *
gens;
199 void *data,
int verbose_level);
201 void *data,
int verbose_level);
203 int n,
void *data,
int verbose_level);
205 int n,
void *data,
int verbose_level);
207 int *Elt,
void *data,
int verbose_level);
233 void init(actions::action *
A, actions::action *
A2, field_theory::finite_field *
F,
234 int *subspace,
int k,
int n,
238 void *data,
int verbose_level),
240 int n,
void *data,
int verbose_level),
242 int *w,
int *Elt,
void *data,
int verbose_level),
244 data_structures_groups::vector_ge *
gens,
247 actions::action *
A, actions::action *
A2, field_theory::finite_field *
F,
252 void *data,
int verbose_level),
254 void *data,
int verbose_level),
256 int *Elt,
void *data,
int verbose_level),
258 data_structures_groups::vector_ge *
gens,
265 int subspace_idx,
int *subspace_basis,
int verbose_level);
267 int *subspace_basis,
int verbose_level);
270 int *rk,
int *subspace_basis,
int verbose_level);
272 long int *rk,
int *subspace_basis,
int verbose_level);
274 int *rk,
int *subspace_basis,
int verbose_level);
276 long int *rk,
int *subspace_basis,
int verbose_level);
277 void rref(
int *subspace,
int verbose_level);
279 int *subspace,
int *rk,
int verbose_level);
281 int *subspace,
long int *rk,
int verbose_level);
286 void compute(
int verbose_level);
291 int *subspace_ranks,
int &idx,
int verbose_level);
293 long int *subspace_ranks,
int &idx,
int verbose_level);
296 ring_theory::longinteger_object &full_group_order,
int verbose_level);
297 void compute_stabilizer(actions::action *default_action, ring_theory::longinteger_object &go,
298 groups::sims *&Stab,
int verbose_level);
orbit of homogeneous equations using a Schreier tree
groups::strong_generators * stabilizer_orbit_rep(ring_theory::longinteger_object &full_group_order, int verbose_level)
int search_equation(int *eqn, int &idx, int verbose_level)
induced_actions::action_on_homogeneous_polynomials * AonHPD
void get_canonical_form(int *canonical_equation, int *transporter_to_canonical_form, groups::strong_generators *&gens_stab_of_canonical_equation, ring_theory::longinteger_object &full_group_order, int verbose_level)
int search_data(int *data, int &idx, int verbose_level)
void(* print_function)(int *object, int sz, void *print_function_data)
void save_csv(std::string &fname, int verbose_level)
void map_an_equation(int *object_in, int *object_out, int *Elt, int verbose_level)
void * print_function_data
void get_random_schreier_generator(int *Elt, int verbose_level)
field_theory::finite_field * F
int position_of_original_object
void stabilizer_orbit_rep_work(actions::action *default_action, ring_theory::longinteger_object &go, groups::sims *&Stab, int verbose_level)
groups::strong_generators * stabilizer_any_point(ring_theory::longinteger_object &full_group_order, int idx, int verbose_level)
void(* reduction_function)(int *object, void *reduction_function_data)
void * reduction_function_data
void get_transporter(int idx, int *transporter, int verbose_level)
void init(actions::action *A, field_theory::finite_field *F, induced_actions::action_on_homogeneous_polynomials *AonHPD, groups::strong_generators *SG, int *coeff_in, int verbose_level)
groups::strong_generators * SG
void compute_orbit(int *coeff, int verbose_level)
orbit of sets using a Schreier tree, used in packing::make_spread_table
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)
orbit of subspaces using a Schreier tree
void(* unrank_vector_lint_callback)(long int rk, int *v, int n, void *data, int verbose_level)
void(* unrank_vector_callback)(int rk, int *v, int n, void *data, int verbose_level)
long int(* rank_vector_lint_callback)(int *v, int n, void *data, int verbose_level)
int find_subspace(int *subspace_ranks, int &idx, int verbose_level)
void rank_subspace(int *subspace_basis, int verbose_level)
void init_lint(actions::action *A, actions::action *A2, field_theory::finite_field *F, long int *subspace_by_rank, int k, int n, int f_has_desired_pivots, int *desired_pivots, int f_has_rank_functions, void *rank_unrank_data, long int(*rank_vector_lint_callback)(int *v, int n, void *data, int verbose_level), void(*unrank_vector_lint_callback)(long int rk, int *v, int n, void *data, int verbose_level), void(*compute_image_of_vector_callback)(int *v, int *w, int *Elt, void *data, int verbose_level), void *compute_image_of_vector_callback_data, data_structures_groups::vector_ge *gens, int verbose_level)
int(* rank_vector_callback)(int *v, int n, void *data, int verbose_level)
groups::strong_generators * stabilizer_orbit_rep(ring_theory::longinteger_object &full_group_order, int verbose_level)
int position_of_original_subspace
int find_subspace_lint(long int *subspace_ranks, int &idx, int verbose_level)
int rank_vector(int *v, int verbose_level)
void unrank_subspace(int subspace_idx, int *subspace_basis, int verbose_level)
void * compute_image_of_vector_callback_data
void rank(int *rk, int *subspace_basis, int verbose_level)
void unrank_lint(long int *rk, int *subspace_basis, int verbose_level)
void(* compute_image_of_vector_callback)(int *v, int *w, int *Elt, void *data, int verbose_level)
void compute_stabilizer(actions::action *default_action, ring_theory::longinteger_object &go, groups::sims *&Stab, int verbose_level)
void init(actions::action *A, actions::action *A2, field_theory::finite_field *F, int *subspace, int k, int n, int f_has_desired_pivots, int *desired_pivots, int f_has_rank_functions, void *rank_unrank_data, int(*rank_vector_callback)(int *v, int n, void *data, int verbose_level), void(*unrank_vector_callback)(int rk, int *v, int n, void *data, int verbose_level), void(*compute_image_of_vector_callback)(int *v, int *w, int *Elt, void *data, int verbose_level), void *compute_image_of_vector_callback_data, data_structures_groups::vector_ge *gens, int verbose_level)
void unrank(int *rk, int *subspace_basis, int verbose_level)
int rank_hash_and_find(int *subspace, int &idx, uint32_t &h, int verbose_level)
void rref_and_rank(int *subspace, int *rk, int verbose_level)
void map_a_subspace(int *basis, int *image_basis, int *Elt, int verbose_level)
void get_transporter(int idx, int *transporter, int verbose_level)
void get_random_schreier_generator(int *Elt, int verbose_level)
void unrank_vector(int rk, int *v, int verbose_level)
void rank_lint(long int *rk, int *subspace_basis, int verbose_level)
void rref_and_rank_lint(int *subspace, long int *rk, int verbose_level)
std::multimap< uint32_t, int > Hashing
void unrank_vector_lint(long int rk, int *v, int verbose_level)
data_structures_groups::vector_ge * gens
long int rank_vector_lint(int *v, int verbose_level)
long int ** Subspaces_lint
long int * subspace_by_rank_lint
void rref(int *subspace, int verbose_level)
field_theory::finite_field * F
void compute(int verbose_level)
the orbiter library for the classification of combinatorial objects