14namespace layer5_applications {
17static void packing_was_fixpoints_early_test_function_fp_cliques(
long int *S,
int len,
18 long int *candidates,
int nb_candidates,
19 long int *good_candidates,
int &nb_good_candidates,
20 void *data,
int verbose_level);
49 int fixpoint_clique_size,
53 int f_v = (verbose_level >= 1);
69 cout <<
"packing_was_fixpoints::init_spreads "
70 "before create_graph_on_fixpoints" << endl;
74 cout <<
"packing_was_fixpoints::init_spreads "
75 "after create_graph_on_fixpoints" << endl;
78 cout <<
"packing_was_fixpoints::init_spreads "
79 "before action_on_fixpoints" << endl;
83 cout <<
"packing_was_fixpoints::init_spreads "
84 "after action_on_fixpoints" << endl;
89 cout <<
"packing_was_fixpoints::init_spreads "
90 "there are no fixed spreads" << endl;
98 cout <<
"packing_was_fixpoints::init_spreads "
99 "before compute_cliques_on_fixpoint_graph" << endl;
108 cout <<
"packing_was_fixpoints::init_spreads "
109 "after compute_cliques_on_fixpoint_graph" << endl;
115 cout <<
"packing_was_fixpoints::init done" << endl;
121 int f_v = (verbose_level >= 1);
124 cout <<
"packing_was_fixpoints::setup_file_names" << endl;
133 cout <<
"packing_was_fixpoints::setup_file_names fname_fixp_graph=" <<
fname_fixp_graph << endl;
151 sprintf(str,
"_fixp_cliques_lvl_%d", clique_size);
156 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph_from_scratch "
161 cout <<
"packing_was_fixpoints::setup_file_names done" << endl;
168 int f_v = (verbose_level >= 1);
171 cout <<
"packing_was::create_graph_on_fixpoints" << endl;
176 cout <<
"packing_was::create_graph_on_fixpoints "
177 "we don't have any orbits of length 1" << endl;
189 cout <<
"packing_was::create_graph_on_fixpoints done" << endl;
195 int f_v = (verbose_level >= 1);
198 cout <<
"packing_was_fixpoints::action_on_fixpoints "
199 "creating action on fixpoints" << endl;
204 cout <<
"packing_was_fixpoints::action_on_fixpoints "
205 "we don't have any orbits of length 1" << endl;
210 cout <<
"Number of fixedpoints = "
217 cout <<
"packing_was_fixpoints::action_on_fixpoints "
218 "action on fixpoints has been created" << endl;
219 cout <<
"packing_was_fixpoints::action_on_fixpoints "
226 cout <<
"packing_was_fixpoints::action_on_fixpoints done" << endl;
238 int f_v = (verbose_level >= 1);
244 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
245 "fixpoint_clique_size=" << clique_size << endl;
252 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
265 my_prefix.append(
"_cliques");
269 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
275 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
279 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph nb_cliques == 0" << endl;
285 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
287 <<
" does not exist, we compute it" << endl;
291 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
292 "before compute_cliques_on_fixpoint_graph_from_scratch" << endl;
298 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
299 "after compute_cliques_on_fixpoint_graph_from_scratch" << endl;
306 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
307 "before Fixp_cliques->read_from_file, "
314 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
315 "after Fixp_cliques->read_from_file" << endl;
327 my_prefix.append(
"_cliques_by_ago_");
339 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
340 "computing Iso_type_invariant" << endl;
342 int *Partial_packings;
343 int *Iso_type_invariant;
349 for (j = 0; j < clique_size; j++) {
350 a =
Cliques[i * clique_size + j];
352 Partial_packings[i * clique_size + j] = b;
371 my_prefix.append(
"_cliques_by_type_");
379 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph "
391 int f_v = (verbose_level >= 1);
395 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph_from_scratch "
396 "clique_size=" << clique_size << endl;
402 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph_from_scratch "
403 "before compute_orbits_on_subsets" << endl;
413 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph_from_scratch "
415 "Poset->add_testing_without_group" << endl;
418 packing_was_fixpoints_early_test_function_fp_cliques,
432 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph_from_scratch "
433 "after compute_orbits_on_subsets" << endl;
441 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph_from_scratch "
442 "We found " <<
nb_cliques <<
" orbits of cliques of size "
443 << clique_size <<
" in the fixed point graph:" << endl;
445 cout <<
"too big to print" << endl;
458 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph_from_scratch "
464 cout <<
"packing_was_fixpoints::compute_cliques_on_fixpoint_graph_from_scratch "
471 int f_v = (verbose_level >= 1);
474 cout <<
"packing_was_fixpoints::process_long_orbits" << endl;
483 cout <<
"packing_was_fixpoints::process_long_orbits before L->init" << endl;
492 cout <<
"packing_was_fixpoints::process_long_orbits after L->init" << endl;
500 cout <<
"packing_was_fixpoints::process_long_orbits done" << endl;
510 cout <<
"packing_was_fixpoints::clique_by_index Cliques == NULL" << endl;
514 cout <<
"packing_was_fixpoints::clique_by_index idx >= nb_cliques" << endl;
523 cout <<
"packing_was_fixpoints::get_stabilizer Fixp_cliques == NULL" << endl;
527 cout <<
"packing_was_fixpoints::get_stabilizer idx >= nb_cliques" << endl;
536 int f_v = (verbose_level >= 1);
539 cout <<
"packing_was_fixpoints::print_packing" << endl;
555 for (i = 0; i < sz; i++) {
563 cout <<
"Lines in the packing:" << endl;
571 cout <<
"The packing passes the permutation test" << endl;
574 cout <<
"The packing is wrong." << endl;
578 int orbit_idx1, orbit_pos1;
581 for (i = 0; i < sz; i++) {
589 cout <<
"Orbit_number in the packing:" << endl;
593 for (i = 0; i < sz; i++) {
603 cout <<
"packing_was_fixpoints::print_packing done" << endl;
617 sprintf(title,
"Packings in PG(3,%d) ",
PW->
P->
q);
618 sprintf(author,
"Orbiter");
619 sprintf(fname,
"Packings_was_fixp_q%d.tex",
PW->
P->
q);
637 fp <<
"\\section{The field of order " <<
PW->
P->
q <<
"}" << endl;
638 fp <<
"\\noindent The field ${\\mathbb F}_{"
640 <<
"}$ :\\\\" << endl;
644 fp <<
"\\section{The space PG$(3, " << q <<
")$}" << endl;
646 fp <<
"The points in the plane PG$(2, " << q <<
")$:\\\\" << endl;
648 fp <<
"\\bigskip" << endl;
651 Gen->P->cheat_sheet_points(fp, 0 );
654 fp <<
"\\section{Poset Classification}" << endl;
657 fp <<
"\\section{The Group $H$}" << endl;
662 fp <<
"\\section{Cliques on the fixpoint graph}" << endl;
670 cout <<
"Written file " << fname <<
" of size "
679 ost <<
"\\section{Orbits of cliques on the fixpoint graph under $N$}" << endl;
680 ost <<
"The Group $N$ has " <<
nb_cliques <<
" orbits on "
687 cout <<
"before PW->report_reduced_spread_orbits" << endl;
688 ost <<
"Reduced spread orbits under $H$: \\\\" << endl;
691 int f_original_spread_numbers =
TRUE;
703 ost <<
"The fixed points are the orbits of type " <<
fixpoints_idx <<
"\\\\" << endl;
707 long int *Orbit_numbers;
714 ost <<
"Clique " << idx <<
":\\\\" << endl;
717 ost <<
"Orbit numbers: ";
719 ost <<
"\\\\" << endl;
721 ost <<
"Stabilizer:\\\\" << endl;
732 ost <<
"After selecting fixpoint clique $" << L->fixpoints_clique_case_number <<
" = ";
733 Li.lint_set_print_tex(ost, L->fixpoint_clique, L->fixpoint_clique_size);
734 ost <<
"$, we find the following filtered orbits:\\\\" << endl;
735 L->report_filtered_orbits(ost);
737 ost <<
"A graph with " << L->CG->nb_points <<
" vertices "
738 "has been created and saved in the file \\verb'"
739 << L->fname_graph <<
"'\\\\" << endl;
750 int f_v = (verbose_level >= 1);
756 cout <<
"packing_was_fixpoints::fixpoint_to_reduced_spread a=" << a << endl;
761 cout <<
"packing_was_fixpoints::fixpoint_to_reduced_spread b=" << b << endl;
765 cout <<
"packing_was_fixpoints::fixpoint_to_reduced_spread b >= PW->reduced_spread_orbits_under_H->Sch->nb_orbits" << endl;
769 cout <<
"packing_was_fixpoints::fixpoint_to_reduced_spread PW->reduced_spread_orbits_under_H->Sch->orbit_len[b] != 1" << endl;
775 cout <<
"packing_was_fixpoints::init len != 1, len = " << len << endl;
780 cout <<
"packing_was_fixpoints::fixpoint_to_reduced_spread done" << endl;
790static void packing_was_fixpoints_early_test_function_fp_cliques(
long int *S,
int len,
791 long int *candidates,
int nb_candidates,
792 long int *good_candidates,
int &nb_good_candidates,
793 void *data,
int verbose_level)
795 int f_v = (verbose_level >= 1);
800 cout <<
"packing_was_fixpoints_early_test_function_fp_cliques" << endl;
804 candidates, nb_candidates,
805 good_candidates, nb_good_candidates,
809 cout <<
"packing_was_fixpoints_early_test_function_fp_cliques done" << endl;
a collection of combinatorial functions
int is_permutation(int *perm, long int n)
a statistical analysis of data consisting of vectors of ints
void save_classes_individually(std::string &fname, int verbose_level)
void init(int *data, int data_length, int data_set_sz, int verbose_level)
a statistical analysis of data consisting of single integers
void init(int *data, int data_length, int f_second, int verbose_level)
void save_classes_individually(std::string &fname)
void print_naked(int f_backwards)
void cheat_sheet(std::ostream &f, int verbose_level)
void compute_iso_type_invariant(int *Partial_packings, int nb_pp, int sz, int *&Iso_type_invariant, int verbose_level)
int nb_iso_types_of_spreads
a graph with a vertex coloring
void early_test_func_for_clique_search(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, int verbose_level)
void load(std::string &fname, int verbose_level)
a collection of functions related to file io
void lint_matrix_write_csv(std::string &fname, long int *M, int m, int n)
long int file_size(std::string &fname)
void lint_matrix_read_csv(std::string &fname, long int *&M, int &m, int &n, int verbose_level)
interface to create latex output files
void head(std::ostream &ost, int f_book, int f_title, const char *title, const char *author, int f_toc, int f_landscape, int f_12pt, int f_enlarged_page, int f_pagenumbers, const char *extras_for_preamble)
void foot(std::ostream &ost)
a set of orbits using a vector of orbit representatives and stabilizers
set_and_stabilizer * Reps
void read_from_file(actions::action *A, actions::action *A2, std::string &fname, int verbose_level)
void report_ago_distribution(std::ostream &ost)
data_structures::tally * get_ago_distribution(long int *&ago, int verbose_level)
groups::strong_generators * Strong_gens
void get_orbit_number_and_position(long int a, int &orbit_idx, int &orbit_pos, int verbose_level)
void report_orbits_of_type(std::ostream &ost, int type_idx)
data_structures::set_of_sets * Orbits_classified
void get_orbit(int orbit_idx, long int *set, int &len, int verbose_level)
a strong generating set for a permutation group with respect to a fixed action
void print_generators_tex()
to control the behavior of the poset classification algorithm
the poset classification algorithm
void get_orbit_representatives(int level, int &nb_orbits, long int *&Orbit_reps, int verbose_level)
void compute_orbits_on_subsets(int target_depth, poset_classification_control *PC_control, poset_with_group_action *Poset, int verbose_level)
void print_representatives_at_level(int lvl)
a poset with a group action on it
void init_subset_lattice(actions::action *A, actions::action *A2, groups::strong_generators *Strong_gens, int verbose_level)
void add_testing_without_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)
field_theory::finite_field * F
spreads::spread_table_with_selection * Spread_table_with_selection
spreads::spread_classify * T
complete a partial packing from a clique on the fixpoint graph using long orbits, utilizing clique se...
void init(packing_was_fixpoints *PWF, packing_long_orbits_description *Descr, int verbose_level)
packing_long_orbits_description * Long_Orbits_Descr
int f_fixp_clique_types_save_individually
int f_process_long_orbits
picking fixed points in the construction of packings in PG(3,q) with assumed symmetry
poset_classification::poset_with_group_action * Poset_fixpoint_cliques
groups::strong_generators * get_stabilizer(int idx)
void print_packing(long int *packing, int sz, int verbose_level)
data_structures_groups::orbit_transversal * Fixp_cliques
graph_theory::colored_graph * fixpoint_graph
void setup_file_names(int clique_size, int verbose_level)
void create_graph_on_fixpoints(int verbose_level)
poset_classification::poset_classification * fixpoint_clique_gen
actions::action * A_on_fixpoints
void report(int verbose_level)
void report2(std::ostream &ost, int verbose_level)
std::string fname_fixp_graph
void action_on_fixpoints(int verbose_level)
void process_long_orbits(int verbose_level)
std::string fname_fixp_graph_cliques
void init(packing_was *PW, int fixpoint_clique_size, poset_classification::poset_classification_control *Control, int verbose_level)
std::string fname_fixpoint_cliques_orbiter
void compute_cliques_on_fixpoint_graph_from_scratch(int clique_size, poset_classification::poset_classification_control *Control, int verbose_level)
long int fixpoint_to_reduced_spread(int a, int verbose_level)
void compute_cliques_on_fixpoint_graph(int clique_size, poset_classification::poset_classification_control *Control, int verbose_level)
long int * clique_by_index(int idx)
construction of packings in PG(3,q) with assumed symmetry
groups::strong_generators * N_gens
geometry::spread_tables * Spread_tables_reduced
void report_reduced_spread_orbits(std::ostream &ost, int f_original_spread_numbers, int verbose_level)
groups::orbits_on_something * reduced_spread_orbits_under_H
groups::strong_generators * H_gens
void create_graph_and_save_to_file(std::string &fname, int orbit_length, int f_has_user_data, long int *user_data, int user_data_size, int verbose_level)
void report2(std::ostream &ost, int verbose_level)
int find_orbits_of_length_in_reduced_spread_table(int orbit_length)
groups::orbits_on_something * Line_orbits_under_H
packing_was_description * Descr
actions::action * restricted_action(int orbit_length, int verbose_level)
geometry::spread_tables * Spread_tables
#define Lint_matrix_print(A, B, C)
#define Lint_vec_print(A, B, C)
#define Int_matrix_print(A, B, C)
the orbiter library for the classification of combinatorial objects