17namespace layer5_applications {
18namespace projective_geometry {
53 int *canonical_labeling,
56 int f_v = (verbose_level >= 1);
59 cout <<
"object_in_projective_space_with_action::init" << endl;
78 cout <<
"object_in_projective_space_with_action::init done" << endl;
84 cout <<
"object_in_projective_space_with_action" << endl;
85 cout <<
"nb_rows=" <<
nb_rows << endl;
86 cout <<
"nb_cols=" <<
nb_cols << endl;
87 cout <<
"ago=" <<
ago << endl;
93 int f_v = (verbose_level >= 1);
96 cout <<
"object_in_projective_space_with_action::report" << endl;
100 cout <<
"OwCF:" << endl;
123 cout <<
"projective_space_object_classifier::latex_report before Nau.set_stabilizer_of_object" << endl;
130 NO->
allocate(nb_r + nb_c, verbose_level);
135 TRUE , Canonical_form,
140 cout <<
"projective_space_object_classifier::latex_report after Nau.set_stabilizer_of_object" << endl;
152 fp <<
"\\bigskip" << endl;
173 fp <<
"Orbits on spreads:\\\\" << endl;
182 fp <<
"Group order " << go <<
"\\\\" << endl;
191 if (OiP->type ==
t_PTS) {
198 cout <<
"printing generators in restricted action:" << endl;
199 action *A_restricted;
210 fp <<
"Stabilizer:\\\\" << endl;
229 fp <<
"Generators in conjugation action on the group itself:\\\\" << endl;
232 fp <<
"Elements in conjugation action on the group itself:\\\\" << endl;
238 fname_gap.assign(
"class_");
240 sprintf(str,
"%d", i);
242 fname_gap.append(str);
243 fname_gap.append(
".gap");
250 fp <<
"Orbits on itself by conjugation:\\\\" << endl;
274 int_vec_print(cout, OiP->set, OiP->sz);
275 cout <<
" go=" << go << endl;
279 incidence_structure *Inc;
280 partitionstack *Stack;
286 Subsets[0] = OiP->set;
288 cout <<
"computing decomposition:" << endl;
289 PA->
P->decomposition(1 , Sz, Subsets,
295 cout <<
"the decomposition is:" << endl;
304 fp <<
"canonical form: ";
305 for (i = 0; i < canonical_form_len; i++) {
306 fp << (int)canonical_form[i];
307 if (i < canonical_form_len - 1) {
311 fp <<
"\\\\" << endl;
328 int f_refine_prev, f_refine, h;
329 int f_print_subscripts =
TRUE;
331 f_refine_prev =
TRUE;
332 for (h = 0; h < max_TDO_depth; h++) {
335 *Stack, verbose_level - 3);
339 *Stack, verbose_level - 3);
343 cout <<
"incidence_structure::compute_TDO_safe "
344 "h=" << h <<
" after refine" << endl;
350 f_print_subscripts, *Stack);
359 f_print_subscripts, *Stack);
365 if (!f_refine_prev && !f_refine) {
368 f_refine_prev = f_refine;
371 cout <<
"Classes of the partition:\\\\" << endl;
382 int max_trials = 100;
387 for (h = 0; h < fixed_structure_order_list_sz; h++) {
388 if (Stab->find_element_of_given_order_int(Elt,
389 fixed_structure_order_list[h], nb_trials, max_trials,
391 fp <<
"We found an element of order "
392 << fixed_structure_order_list[h] <<
", which is:" << endl;
401 fp <<
"We could not find an element of order "
402 << fixed_structure_order_list[h] <<
"\\\\" << endl;
encoding of combinatorial object for use with nauty
compact storage of 0/1-data as bitvectors
output data created by a run of nauty
void allocate(int N, int verbose_level)
data structure for set partitions following Jeffrey Leon
void print_classes(std::ostream &ost)
void print_classes_tex(std::ostream &ost)
interface for various incidence geometries
void get_and_print_row_tactical_decomposition_scheme_tex(std::ostream &ost, int f_enter_math, int f_print_subscripts, data_structures::partitionstack &PStack)
int refine_row_partition_safe(data_structures::partitionstack &PStack, int verbose_level)
void get_and_print_decomposition_schemes(data_structures::partitionstack &PStack)
void get_and_print_tactical_decomposition_scheme_tex(std::ostream &ost, int f_enter_math, data_structures::partitionstack &PStack)
int refine_column_partition_safe(data_structures::partitionstack &PStack, int verbose_level)
void get_and_print_column_tactical_decomposition_scheme_tex(std::ostream &ost, int f_enter_math, int f_print_subscripts, data_structures::partitionstack &PStack)
a class to represent arbitrary precision integers
a permutation group in a fixed action.
void element_print_latex(void *elt, std::ostream &ost)
action * restricted_action(long int *points, int nb_points, int verbose_level)
action * create_induced_action_on_sets(int nb_sets, int set_size, long int *sets, int verbose_level)
action * create_induced_action_by_conjugation(groups::sims *Base_group, int f_ownership, int verbose_level)
Interface to the graph canonization software Nauty.
groups::strong_generators * set_stabilizer_of_object(geometry::object_with_canonical_form *OwCF, action *A_linear, int f_compute_canonical_form, data_structures::bitvector *&Canonical_form, data_structures::nauty_output *&NO, int verbose_level)
Schreier trees for orbits of groups on points.
void print_and_list_orbits_tex(std::ostream &ost)
a strong generating set for a permutation group with respect to a fixed action
sims * create_sims(int verbose_level)
void print_elements_with_given_action(std::ostream &ost, actions::action *A2)
void print_generators_tex()
schreier * orbits_on_points_schreier(actions::action *A_given, int verbose_level)
void export_permutation_group_to_GAP(std::string &fname, actions::action *A2, int verbose_level)
void print_with_given_action(std::ostream &ost, actions::action *A2)
void group_order(ring_theory::longinteger_object &go)
object_in_projective_space_with_action()
groups::strong_generators * Aut_gens
geometry::object_with_canonical_form * OwCF
void report(std::ostream &fp, projective_space_with_action *PA, int max_TDO_depth, int verbose_level)
void init(geometry::object_with_canonical_form *OwCF, long int ago, groups::strong_generators *Aut_gens, int *canonical_labeling, int verbose_level)
~object_in_projective_space_with_action()
projective space PG(n,q) with automorphism group PGGL(n+1,q)
geometry::projective_space * P
actions::action * A_on_lines
void report_fixed_points_lines_and_planes(int *Elt, std::ostream &ost, int verbose_level)
the orbiter library for the classification of combinatorial objects