18namespace layer1_foundations {
19namespace geometry_builder {
77 int f_v = (verbose_level >= 1);
80 cout <<
"gen_geo::init" << endl;
87 cout <<
"gen_geo::init before inc->init" << endl;
91 cout <<
"gen_geo::init after inc->init" << endl;
100 cout <<
"gen_geo::init before Decomposition_with_fuse->init" << endl;
104 cout <<
"gen_geo::init after Decomposition_with_fuse->init" << endl;
109 cout <<
"gen_geo::init before init_semicanonical" << endl;
113 cout <<
"gen_geo::init before init_semicanonical done" << endl;
128 cout <<
"gen_geo::init before Geometric_backtrack_search->init" << endl;
132 cout <<
"gen_geo::init after Geometric_backtrack_search->init" << endl;
136 cout <<
"gen_geo::init done" << endl;
144 int f_v = (verbose_level >= 1);
147 cout <<
"gen_geo::init_semicanonical" << endl;
153 cout <<
"gen_geo::init_semicanonical before Test_semicanonical->init" << endl;
157 cout <<
"gen_geo::init_semicanonical after Test_semicanonical->init" << endl;
161 cout <<
"gen_geo::init_semicanonical done" << endl;
170 for (i1 = 0; i1 < line; i1++) {
171 cout <<
"line " << i1 <<
" : ";
172 for (i2 = 0; i2 < i1; i2++) {
182 int f_v = (verbose_level >= 1);
185 cout <<
"gen_geo::main2, verbose_level = " << verbose_level << endl;
191 cout <<
"gen_geo::main2 before generate_all" << endl;
195 cout <<
"gen_geo::main2 after generate_all" << endl;
207 fname.append(
".inc");
212 cout <<
"Written file " << fname <<
" of size " << Fio.
file_size(fname) << endl;
222 fname.append(
".blocks_long");
227 cout <<
"Written file " << fname <<
" of size " << Fio.
file_size(fname) << endl;
239 fname.append(
".blocks");
244 cout <<
"Written file " << fname <<
" of size " << Fio.
file_size(fname) << endl;
254 fname.append(
"_resolved.inc");
271 cout <<
"gen_geo::main2 done" << endl;
278 int f_v = (verbose_level >= 1);
279 int f_vv = (verbose_level >= 3);
282 cout <<
"gen_geo::generate_all, verbose_level = " << verbose_level << endl;
300 cout <<
"gen_geo::generate_all before it0 = ..." << endl;
306 cout <<
"please install a test at line " <<
inc->
Encoding->
v << endl;
311 cout <<
"gen_geo::generate_all before it1 = ..." << endl;
318 cout <<
"gen_geo::generate_all inc.iso_type_no_vhbars && forget_ivhbar_in_last_isot" << endl;
326 cout <<
"gen_geo::generate_all Geometric_backtrack_search->First "
327 "returns FALSE, no geometry exists. This is perhaps a bit unusual." << endl;
337 cout <<
"gen_geo::generate_all nb_GEN=" <<
inc->
gl_nb_GEN << endl;
352 if (incidence_back_test(&gg->inc,
362 s_nb_i_vbar =
inc->nb_i_vbar;
363 s_nb_i_hbar =
inc->nb_i_hbar;
369 cout <<
"gen_geo::generate_all before isot_add for it0" << endl;
378 cout <<
"gen_geo::generate_all after isot_add for it0, f_already_there=" << f_already_there << endl;
386 cout <<
"gen_geo::generate_all after isot_add for it0" << endl;
396 inc->nb_i_vbar = s_nb_i_vbar;
397 inc->nb_i_hbar = s_nb_i_hbar;
400 s_nb_i_vbar =
inc->nb_i_vbar;
401 s_nb_i_hbar =
inc->nb_i_hbar;
406 cout <<
"gen_geo::generate_all before isot_add for it1" << endl;
416 cout <<
"gen_geo::generate_all after isot_add for it1" << endl;
418 if (!f_already_there) {
421 inc->nb_i_vbar = s_nb_i_vbar;
422 inc->nb_i_hbar = s_nb_i_hbar;
430 cout <<
"gen_geo::generate_all Geometric_backtrack_search->Next "
431 "returns FALSE, finished" << endl;
443 cout <<
"gen_geo::generate_all done" << endl;
449 int f_v = (verbose_level >= 1);
457 cout <<
"gen_geo::setup_output_files, opening file " <<
fname_search_tree << endl;
472 cout <<
"gen_geo::setup_output_files, opening file " <<
fname_search_tree << endl;
504 if (f_already_there) {
518 for (row = 0; row < i1; row++) {
528 std::vector<int> flags;
535 for (h = 0; h < flags.size(); h++) {
553 print(cout, i1 + 1, i1 + 1);
566 for (ii = 0; ii < k; ii++) {
576 for (ii = 0; ii < k; ii++) {
607 inc->print(cout, i + 1,
GB->
V);
621 int f_v = (verbose_level >= 1);
623 int i1, r, k, j0, j1;
626 cout <<
"gen_geo::apply_tests "
627 "I=" << I <<
" m=" << m
628 <<
" J=" << J <<
" n=" << n <<
" j=" << j << endl;
671 for (ii = 0; ii <= k; ii++) {
684 cout <<
"gen_geo::apply_tests "
685 "I=" << I <<
" m=" << m
686 <<
" J=" << J <<
" n=" << n <<
" j=" << j
687 <<
" rejected because not simple" << endl;
704 for (ii = 0; ii < k; ii++) {
725 cout <<
"gen_geo::apply_tests "
726 "I=" << I <<
" m=" << m <<
" J=" << J
727 <<
" n=" << n <<
" j=" << j
728 <<
" rejected because of pair test" << endl;
742 if (J ==
GB->
b_len - 1 && n == C->
r - 1) {
743 for (ii = 0; ii < i1; ii++) {
756 cout <<
"gen_geo::apply_tests "
757 "I=" << I <<
" m=" << m <<
" J=" << J
758 <<
" n=" << n <<
" j=" << j <<
" rejected because at least "
759 "one pair is not covered lambda times" << endl;
781 cout <<
"gen_geo::apply_tests "
782 "I=" << I <<
" m=" << m <<
" J=" << J
783 <<
" n=" << n <<
" j=" << j <<
" rejected because "
784 "of square condition" << endl;
803 cout <<
"gen_geo::apply_tests "
804 "I=" << I <<
" m=" << m <<
" J=" << J
805 <<
" n=" << n <<
" j=" << j <<
" rejected because "
806 "of girth condition" << endl;
819 v, v_cut,
this,
TRUE );
826 v, v_cut,
this, theX,
TRUE );
a row-tactical decomposition with fuse, to be used by the geometry_builder
void init(gen_geo *gg, int verbose_level)
gen_geo_conf * get_conf_IJ(int I, int J)
description of a configuration which is part of class decomposition_with_fuse
void setup_output_files(int verbose_level)
void main2(int verbose_level)
geometric_backtrack_search * Geometric_backtrack_search
decomposition_with_fuse * Decomposition_with_fuse
void decrement_pairs_point(int i1, int col, int k)
void girth_Floyd(int i, int verbose_level)
std::string inc_file_name
void init(geometry_builder *GB, int verbose_level)
void init_semicanonical(int verbose_level)
std::string fname_search_tree
void print_I_m(int I, int m)
void girth_test_delete_incidence(int i, int j_idx, int j)
void print_pairs(int line)
int apply_tests(int I, int m, int J, int n, int j, int verbose_level)
std::ofstream * ost_search_tree_flags
test_semicanonical * Test_semicanonical
std::string fname_search_tree_flags
void increment_pairs_point(int i1, int col, int k)
void print_override_theX(std::ostream &ost, int *theX, int v, int v_cut)
void girth_test_add_incidence(int i, int j_idx, int j)
void close_output_files(int verbose_level)
int check_girth_condition(int i, int j_idx, int j, int verbose_level)
void record_tree(int i1, int f_already_there)
int forget_ivhbar_in_last_isot
void generate_all(int verbose_level)
std::ofstream * ost_search_tree
classification of geometries with a given row-tactical decomposition
void init(gen_geo *gg, int verbose_level)
int First(int verbose_level)
int Next(int verbose_level)
std::vector< int > print_at_line
classification of geometries
geometry_builder_description * Descr
classification of geometries
void add_incidence(int i, int j_idx, int j)
int check_girth_condition(int i, int j_idx, int j, int verbose_level)
void Floyd(int row, int verbose_level)
void delete_incidence(int i, int j_idx, int j)
void init(gen_geo *gg, int girth, int verbose_level)
void get_flags(int row, std::vector< int > &flags)
void print_partitioned(std::ostream &ost, int v_cur, int v_cut, gen_geo *gg, int f_print_isot)
long int rank_row(int row)
int & theX_ir(int i, int r)
void print_partitioned_override_theX(std::ostream &ost, int v_cur, int v_cut, gen_geo *gg, int *the_X, int f_print_isot)
encoding of an incidence geometry during classification
void init(gen_geo *gg, int v, int b, int *R, int verbose_level)
iso_type * iso_type_no_vhbars
iso_type ** iso_type_at_line
int is_block_tactical(int v, long int *theInc)
int find_square(int m, int n)
classification of geometries based on canonical forms
void write_blocks_file(std::string &fname, int verbose_level)
void print_geos(int verbose_level)
data_structures::classify_using_canonical_forms * Canonical_forms
void write_inc_file(std::string &fname, int verbose_level)
void add_geometry(inc_encoding *Encoding, int f_partition_fixing_last, int &f_already_there, int verbose_level)
void write_blocks_file_long(std::string &fname, int verbose_level)
classification of geometries
void init(gen_geo *gg, int MAX_V, int verbose_level)
a collection of functions related to file io
long int file_size(std::string &fname)
the orbiter library for the classification of combinatorial objects