12namespace layer1_foundations {
13namespace combinatorics {
91 new_part[i] =
part[i];
113 new_entries =
NEW_int(4 * nb_alloc);
138 cout <<
"geo_parameter::write unknown mode" << endl;
145 int i, j, sum, pt_level = -1, bt_level = -1, xy, x, y, z, w;
147 aStream <<
label <<
" " <<
v +
b <<
" " <<
v <<
" ";
149 for (i = 1; i <
nb_V; i++) {
150 aStream << sum <<
" ";
154 for (j = 1; j <
nb_B; j++) {
155 aStream <<
v + sum <<
" ";
162 for (i = 0; i <
nb_V; i++) {
163 for (j = 0; j <
nb_B; j++) {
164 aStream << pt_level <<
" "
174 for (i = 0; i <
nb_V; i++) {
175 for (j = 0; j <
nb_B; j++) {
185 cout <<
"geo_parameter::write_mode_single scheme "
186 "cannot be block tactical in position "
187 << i <<
"," << j << endl;
192 aStream << bt_level <<
" "
203 aStream << pt_level <<
" " << bt_level <<
" " <<
lambda_level <<
" " <<
211 aStream <<
label <<
" ";
213 aStream <<
part[i] <<
" ";
230 int f_v = (verbose_level >= 1);
231 int i, j, sum, x, y, z, w, xy;
241 cout <<
"geo_parameter::convert_single_to_stack" << endl;
242 cout <<
"v=" <<
v << endl;
243 cout <<
"b=" <<
b << endl;
250 for (i = 1; i <
nb_V; i++) {
255 for (j = 1; j <
nb_B; j++) {
261 cout <<
part[i] <<
" ";
266 cout <<
"decomposition_type=";
268 cout <<
"POINTTACTICAL" << endl;
271 cout <<
"BLOCKTACTICAL" << endl;
274 cout <<
"POINTANDBLOCKTACTICAL" << endl;
281 for (i = 0; i <
nb_V; i++) {
282 for (j = 0; j <
nb_B; j++) {
298 for (i = 0; i <
nb_V; i++) {
299 for (j = 0; j <
nb_B; j++) {
309 cout <<
"geo_parameter::convert_single_to_stack "
310 "scheme cannot be block tactical in "
311 "position " << i <<
"," << j << endl;
342 cout <<
"while converting to partition stack, "
343 "I cannot figure out which fuse info you meant" << endl;
355 cout <<
"convert_single_to_stack_fuse_double_bt nyi" << endl;
360 cout <<
"while converting to partition stack, "
361 "I cannot figure out which fuse info you meant" << endl;
383 return nb_V + col_idx;
390 cout <<
"geo_parameter::input SYSTEMUNIX" << endl;
394 aStream.ignore(INT_MAX,
'<');
399 cout <<
"geo_parameter::input read HTDO, "
400 "before input_mode_single" << endl;
404 cout <<
"geo_parameter::input str = " << str << endl;
409 cout <<
"geo_parameter::input SYSTEMWINDOWS" << endl;
410 cout <<
"geo_parameter::input has a problem "
411 "under windows"<< endl;
414 cout <<
"geo_parameter::input neither SYSTEMUNIX "
415 "nor SYSTEMWINDOWS" << endl;
422 int i, j, l, val, eqpos;
424 string str, mapkey, mapval;
433 if (str.substr(str.size() - 1, 1) ==
">") {
434 str = str.substr(0, str.size() - 1);
437 eqpos = str.find(
"=");
439 mapkey = str.substr(0, eqpos);
440 mapval = str.substr(eqpos + 1, str.size() - eqpos - 1);
441 if (mapkey ==
"type") {
444 else if (mapval ==
"bt")
446 else if (mapval ==
"geo")
451 else if (mapkey ==
"ptanz" || mapkey ==
"nb_V") {
454 else if (mapkey ==
"btanz" || mapkey ==
"nb_B") {
457 else if (mapkey ==
"fuse") {
461 else if (mapval ==
"multi")
464 if (mapval ==
"simple" || mapval ==
"single")
466 else if (mapval ==
"double")
469 cout <<
"fuse type not recognized" << endl;
474 else if (mapkey ==
"isotest") {
477 else if (mapkey ==
"defekt") {
480 else if (mapkey ==
"id") {
483 cout <<
"geo_parameter::input_mode_single "
484 "label too long" << endl;
487 for (i = 0; i < l; i++) {
488 label[i] = mapval[i];
492 ppos = mapval.find_last_of(
".");
493 _idadd = mapval.substr(0, ppos + 1);
494 mapval = mapval.substr(ppos + 1, mapval.size() - ppos - 1);
495 _id = str2int(mapval);
499 brk = brk || aStream.eof();
507 cout <<
"decomposition_type needs to be defined"<<endl;
511 cout <<
"nb_V == 0"<<endl;
515 cout <<
"nb_B == 0"<<endl;
520 for (j = 0; j <
nb_B; j++) {
527 for (i = 0; i <
nb_V; i++) {
532 for (j = 0; j <
nb_B; j++) {
541 for (i = 0; i <
nb_V; i++) {
542 for (j = 0; j <
nb_B; j++) {
553 for (i = 0; i <
nb_V; i++) {
561 for (i = 0; i <
nb_B; i++) {
568 cout <<
"while reading fuse, I cannot figure out "
569 "which fuse info you meant" << endl;
576 for (i = 0; i < 4 + 2 *
nb_V; i++) {
584 for (i = 0; i < 4 + (2 *
nb_B); i++) {
591 cout <<
"while reading fuse, I cannot figure out "
592 "which fuse info you meant" << endl;
597 aStream.ignore(INT_MAX,
'>');
602 cout <<
"geo_parameter::input_mode_single "
603 "has a problem under windows" << endl;
610 ifstream &aStream,
int verbose_level)
612#if defined(SYSTEMUNIX) || defined(SYSTEM_IS_MACINTOSH)
613 int f_v = (verbose_level >= 1);
615 int i, l, val, v1, v2, v3, v4;
621 cout <<
"geo_parameter::input_mode_stack" << endl;
628 cout <<
"geo_parameter::input_mode_stack "
629 "read \"" << str <<
"\"" << endl;
633 cout <<
"geo_parameter::input_mode_stack "
634 "label too long" << endl;
637 for (i = 0; i < l; i++) {
642 cout <<
"geo_parameter::input_mode_stack "
643 "label='" <<
label <<
"'" << endl;
651 cout <<
"geo_parameter::input_mode_stack "
652 "reading part" << endl;
666 cout <<
"geo_parameter::input_mode_stack "
667 "reading entries" << endl;
691 cout <<
"geo_parameter::input_mode_stack "
692 "reading row_level" << endl;
703 cout <<
"geo_parameter::input_mode_stack has a "
704 "problem under windows" << endl;
708 cout <<
"geo_parameter::input_mode_stack done" << endl;
715 int f_v = (verbose_level >= 1);
719 cout <<
"geo_parameter::init_tdo_scheme" << endl;
720 cout <<
"nb_parts=" <<
nb_parts << endl;
749 cout <<
"geo_parameter::init_tdo_scheme "
750 "calling G.init_partition_stack" << endl;
754 cout <<
"after G.init_partition_stack" << endl;
760 cout <<
"geo_parameter::print_schemes" << endl;
761 cout <<
"decomposition " <<
label <<
":" << endl;
779 cout <<
"decomposition " <<
label <<
":" << endl;
804 cout <<
"char *name = \"" <<
label <<
"\";" << endl;
805 cout <<
"int part[] = {";
807 cout <<
part[i] <<
",";
808 cout <<
"-1};" << endl;
809 cout <<
"// this is the partition of rows and columns" << endl;
810 cout <<
"int entries[] = {" << endl;
812 for (j = 0; j < 4; j++) {
813 cout << setw(3) <<
entries[i * 4 + j] <<
",";
817 cout <<
"-1, };" << endl;
818 cout <<
"int col_level = " <<
col_level <<
";" << endl;
819 cout <<
"int row_level = " <<
row_level <<
";" << endl;
822 cout <<
"int lambda_level = " <<
lambda_level <<
";" << endl;
823 cout <<
"int f_has_lambda = TRUE;" << endl;
824 cout <<
"int lambda_target[] = {1};" << endl;
825 cout <<
"int lambda_mode[] = {EQ};" << endl;
826 cout <<
"int f_has_mu = FALSE;" << endl;
827 cout <<
"int mu = 0;" << endl;
828 cout <<
"int f_girth = FALSE;" << endl;
829 cout <<
"int girth = 0;" << endl;
830 cout <<
"int f_starter = FALSE;" << endl;
831 cout <<
"int starter[] = {};" << endl;
832 cout <<
"int listofcases_table_depth = 0;" << endl;
833 cout <<
"int listofcases_table_length = 0;" << endl;
834 cout <<
"int listofcases_table[] = {" << endl;
835 cout <<
"};" << endl;
836 cout <<
"int AGO_THRESHOLD = 100000000;" << endl;
837 cout <<
"int PRint_intERVAL = 10000;" << endl;
838 cout <<
"int PRint_intERVAL_HOURS = 0;" << endl;
839 cout <<
"int PRint_intERVAL_MINUTES = 0;" << endl;
840 cout <<
"int PRint_intERVAL_SECONDS = 10;" << endl;
846 int f_v = (verbose_level >= 1);
848 int I, u, l, i, j, a, sum, s, M, c, e, h, c1, c2, f;
853 cout <<
"geo_parameter::convert_single_to_stack_fuse_simple_pt" << endl;
857 int *class_first, *class_len, nb_classes;
864 cout <<
"processing fuse simple for "
865 "pointtactical decomposition" << endl;
875 class_relabel[i] = -1;
877 class_relabel[0] = 0;
878 class_relabel[
nb_V] = 1;
884 for (I = 0; I < nb_classes; I++) {
886 class_first[I], class_len[I]);
890 for (u = 0; u < l; u++) {
891 i = class_first[I] + u;
899 cout <<
"found " << nb_classes <<
" classes in the "
900 "previous row decomposition" << endl;
901 cout <<
"class_first: ";
904 cout <<
"class_len: ";
907 cout <<
"block_length: ";
912 for (j = 0; j <
nb_B; j++) {
913 for (I = 0; I < nb_classes; I++) {
916 for (u = 0; u < l; u++) {
917 i = class_first[I] + u;
925 cout <<
"problems figuring out the previous scheme" << endl;
926 cout <<
"s=" << s << endl;
928 cout <<
"M=" << M << endl;
929 cout <<
"j=" << j << endl;
930 cout <<
"I=" << I << endl;
933 prev_scheme[I *
nb_B + j] = e;
937 cout <<
"the previous col scheme is" << endl;
939 prev_scheme, nb_classes,
nb_B,
nb_B, 4);
948 sum = block_length[0];
949 for (I = 1; I < nb_classes; I++) {
950 class_relabel[class_first[I]] =
nb_parts;
954 sum += block_length[I];
957 for (j = 1; j <
nb_B; j++) {
966 cout <<
"the previous decomposition is " << endl;
972 cout <<
"class_relabel: " << endl;
978 for (I = 0; I < nb_classes; I++) {
979 for (j = 0; j <
nb_B; j++) {
980 c = prev_scheme[I *
nb_B + j];
990 cout <<
"entry " <<
nb_entries <<
" : " << prev_level
991 <<
" " << c2 <<
" " << c1 <<
" " << c << endl;
999 for (I = 0; I < nb_classes; I++) {
1003 for (u = 1; u < l; u++) {
1012 cout <<
"the extended decomposition is " << endl;
1018 cout <<
"class_relabel: " << endl;
1023 for (i = 0; i <
nb_V; i++) {
1024 for (j = 0; j <
nb_B; j++) {
1026 c1 = class_relabel[i];
1027 c2 = class_relabel[
nb_V + j];
1030 <<
" " << c1 <<
" " << c2 <<
" " << c << endl;
1047 int f_v = (verbose_level >= 1);
1049 int J, u, l, i, j, a, sum, s, L, M, c, e, h, c1, c2, f;
1054 cout <<
"geo_parameter::convert_single_to_stack_fuse_simple_bt" << endl;
1057 int *class_first, *class_len, nb_classes;
1064 cout <<
"processing fuse simple for "
1065 "blocktactical decomposition" << endl;
1073 for (i = 0; i <
nb_V +
nb_B; i++) {
1074 class_relabel[i] = -1;
1076 class_relabel[0] = 0;
1077 class_relabel[
nb_V] = 1;
1082 for (J = 0; J < nb_classes; J++) {
1084 class_first[J], class_len[J]);
1088 for (u = 0; u < l; u++) {
1089 j = class_first[J] + u;
1093 block_length[J] = L;
1098 cout <<
"found " << nb_classes <<
" classes in the previous "
1099 "column decomposition" << endl;
1100 cout <<
"class_first: ";
1103 cout <<
"class_len: ";
1106 cout <<
"block_length: ";
1111 for (i = 0; i <
nb_V; i++) {
1112 for (J = 0; J < nb_classes; J++) {
1116 for (u = 0; u < l; u++) {
1117 j = class_first[J] + u;
1127 cout <<
"problems figuring out the previous scheme" << endl;
1130 prev_scheme[i * nb_classes + J] = e;
1134 cout <<
"the previous row scheme is" << endl;
1136 prev_scheme,
nb_V, nb_classes, nb_classes, 4);
1145 sum = block_length[0];
1146 for (J = 1; J < nb_classes; J++) {
1151 sum += block_length[J];
1154 for (i = 1; i <
nb_V; i++) {
1162 cout <<
"the previous decomposition is " << endl;
1168 cout <<
"class_relabel: " << endl;
1174 for (i = 0; i <
nb_V; i++) {
1175 for (J = 0; J < nb_classes; J++) {
1176 c = prev_scheme[i * nb_classes + J];
1181 c1 = nb_classes + i;
1190 cout <<
"entry " <<
nb_entries <<
" : " << prev_level
1191 <<
" " << c1 <<
" " << c2 <<
" " << c << endl;
1200 for (J = 0; J < nb_classes; J++) {
1204 for (u = 1; u < l; u++) {
1213 cout <<
"the extended decomposition is " << endl;
1219 cout <<
"class_relabel: " << endl;
1224 for (i = 0; i <
nb_V; i++) {
1225 for (j = 0; j <
nb_B; j++) {
1227 c1 = class_relabel[i];
1228 c2 = class_relabel[
nb_V + j];
1231 <<
" " << c2 <<
" " << c1 <<
" " << c << endl;
1254 int f_v = (verbose_level >= 1);
1255 int f_vv = (verbose_level >= 2);
1256 int I, u, l, i, j, ii, jj, a, sum, s, M, c, e, h, c1, c2, f, d;
1257 int fuse_block_first[2], fuse_block_len[2];
1264 cout <<
"geo_parameter::convert_single_to_stack_fuse_double_pt" << endl;
1266 fuse_block_first[0] =
fuse[0];
1267 fuse_block_len[0] =
fuse[1];
1268 fuse_block_first[1] =
fuse[2];
1269 fuse_block_len[1] =
fuse[3];
1270 the_fuse[0] =
fuse + 4;
1271 the_fuse[1] = the_fuse[0] +
nb_V;
1274 int *class_first[2], *class_len[2], *class_idx[3], nb_classes[2];
1275 int *block_length[2];
1276 int *prev_scheme[2];
1281 cout <<
"processing fuse double for "
1282 "pointtactical decomposition" << endl;
1283 cout <<
"fuse_block_first[0]=" << fuse_block_first[0] << endl;
1284 cout <<
"fuse_block_len[0] =" << fuse_block_len[0] << endl;
1285 cout <<
"fuse_block_first[1]=" << fuse_block_first[1] << endl;
1286 cout <<
"fuse_block_len[1] =" << fuse_block_len[1] << endl;
1287 cout <<
"the_fuse[0] : ";
1290 cout <<
"the_fuse[1] : ";
1298 for (i = 0; i <
nb_V +
nb_B; i++) {
1299 class_relabel[i] = -1;
1301 class_relabel[0] = 0;
1302 class_relabel[
nb_V] = 1;
1307 for (d = 0; d < 2; d++) {
1309 cout <<
"d=" << d << endl;
1317 class_first[d], class_len[d], nb_classes[d]);
1318 for (I = 0; I < nb_classes[d]; I++) {
1319 block_length[d][I] =
1321 class_first[d][I], class_len[d][I]);
1323 class_idx[d] =
NEW_int(nb_classes[d]);
1325 cout <<
"row decomposition " << d <<
" found "
1326 << nb_classes[d] <<
" classes" << endl;
1327 cout <<
"class_first: ";
1330 cout <<
"class_len: ";
1333 cout <<
"block_length: ";
1339 cout <<
"computing previous scheme at depth " << d << endl;
1341 prev_scheme[d] =
NEW_int(nb_classes[d] * fuse_block_len[d]);
1342 for (jj = 0; jj < fuse_block_len[d]; jj++) {
1343 j = fuse_block_first[d] + jj;
1344 for (I = 0; I < nb_classes[d]; I++) {
1345 l = class_len[d][I];
1347 cout <<
"j=" << j <<
" I=" << I
1348 <<
" class_len[d][I]=" << l << endl;
1351 for (u = 0; u < l; u++) {
1352 i = class_first[d][I] + u;
1357 cout <<
"i=" << i << endl;
1358 cout <<
"G.row_classes_len[h][i]="
1360 cout <<
"scheme[i * nb_B + j]="
1362 cout <<
"s=" << s << endl;
1367 cout <<
"G.col_classes_len[h][j]=" << M << endl;
1371 cout <<
"problems figuring out the "
1372 "previous scheme" << endl;
1373 cout <<
"d=" << d << endl;
1374 cout <<
"s=" << s << endl;
1376 cout <<
"M=" << M << endl;
1377 cout <<
"j=" << j << endl;
1378 cout <<
"I=" << I << endl;
1381 prev_scheme[d][I * fuse_block_len[d] + jj] = e;
1385 cout <<
"depth " << d <<
", the previous "
1386 "col scheme is" << endl;
1388 prev_scheme[d], nb_classes[d],
1389 fuse_block_len[d], fuse_block_len[d], 4);
1408 for (j = 1; j <
nb_B; j++) {
1418 sum = block_length[d][0];
1419 class_idx[d][0] = 0;
1420 for (I = 1; I < nb_classes[d]; I++) {
1422 ii = class_first[d][I];
1427 sum += block_length[d][I];
1431 cout <<
"class_idx[0]=";
1438 sum = block_length[d][0];
1439 class_idx[d][0] = 0;
1440 for (I = 1; I < nb_classes[d]; I++) {
1441 ii = class_first[d][I];
1443 cout <<
"I=" << I << endl;
1444 cout <<
"class_first[d][I]=ii=" << ii << endl;
1445 cout <<
"class_relabel[ii]=" << class_relabel[ii] << endl;
1447 if (class_relabel[ii] == -1) {
1455 class_idx[d][I] = class_relabel[ii];
1457 sum += block_length[d][I];
1461 cout <<
"class_idx[1]=";
1468 cout <<
"prev_level[0]" << prev_level[0] << endl;
1469 cout <<
"prev_level[1]" << prev_level[1] << endl;
1470 cout <<
"the previous decomposition is " << endl;
1476 cout <<
"class_relabel: " << endl;
1485 cout <<
"writing scheme at depth " << d <<
" level "
1486 << prev_level[d] << endl;
1488 for (I = 0; I < nb_classes[d]; I++) {
1489 for (jj = 0; jj < fuse_block_len[d]; jj++) {
1490 j = fuse_block_first[d] + jj;
1491 c = prev_scheme[d][I * fuse_block_len[d] + jj];
1492 c1 = class_idx[d][I];
1495 cout <<
"entry " <<
nb_entries <<
" : " << prev_level[d]
1496 <<
" " << c2 <<
" " << c1 <<
" " << c << endl;
1504 cout <<
"writing scheme at depth " << d <<
" level "
1505 << prev_level[d] << endl;
1507 for (I = 0; I < nb_classes[d]; I++) {
1508 for (jj = 0; jj < fuse_block_len[d]; jj++) {
1509 j = fuse_block_first[d] + jj;
1510 c = prev_scheme[d][I * fuse_block_len[d] + jj];
1511 c1 = class_idx[d][I];
1514 cout <<
"entry " <<
nb_entries <<
" : " << prev_level[d]
1515 <<
" " << c2 <<
" " << c1 <<
" " << c << endl;
1526 class_idx[d][0] = 0;
1528 for (I = 0; I < nb_classes[1]; I++) {
1529 l = class_len[1][I];
1530 f = class_first[1][I];
1532 class_idx[d][f + 0] = class_idx[d - 1][I];
1533 for (u = 1; u < l; u++) {
1543 cout <<
"the extended decomposition is " << endl;
1549 cout <<
"class_relabel: " << endl;
1552 cout <<
"class_idx[2]=";
1557 for (i = 0; i <
nb_V; i++) {
1558 for (j = 0; j <
nb_B; j++) {
1560 c1 = class_idx[2][i];
1564 <<
" " << c1 <<
" " << c2 <<
" " << c << endl;
1574 int *&part_relabel,
int *&part_length,
1577 int f_v = (verbose_level >= 1);
1578 int f_vv = (verbose_level >= 2);
1585 cout <<
"geo_parameter::cut_off_two_lines" << endl;
1588 cout <<
"row_level = " <<
row_level << endl;
1589 cout <<
"col_level = " <<
col_level << endl;
1623 cout <<
"cutting off " << w <<
" columns" << endl;
1625 cut_off(GP2, w, part_relabel, part_length, verbose_level);
1629void geo_parameter::cut_off_some_lines(
geo_parameter &GP2,
int w,
1630 int *&part_relabel,
int *&part_length,
1633 int f_v = (verbose_level >= 1);
1636 cout <<
"geo_parameter::cut_off_some_lines w=" << w << endl;
1638 cut_off(GP2, w, part_relabel, part_length, verbose_level);
1643 int *&part_relabel,
int *&part_length,
1646 int f_v = (verbose_level >= 1);
1647 int f_vv = (verbose_level >= 3);
1648 int i, W, a,
b, c, d, A,
B, C;
1651 cout <<
"geo_parameter::cut_off cutting off "
1652 "w=" << w <<
" columns" << endl;
1655 cout <<
"row_level = " <<
row_level << endl;
1656 cout <<
"col_level = " <<
col_level << endl;
1660 cout <<
"label = " <<
label << endl;
1678 part_relabel[0] = 0;
1687 part_relabel[i] = -1;
1703 cout <<
"new_nb_parts = " << GP2.
nb_parts << endl;
1704 cout <<
"part_relabel:" << endl;
1706 cout << i <<
" : " << part_relabel[i] << endl;
1718 B = part_relabel[
b];
1719 C = part_relabel[c];
1720 if (
B >= 0 && C >= 0) {
1722 cout << a <<
" " <<
b <<
" " << c <<
" " << d
1723 <<
" -> " << A <<
" " <<
B <<
" " << C
1724 <<
" " << d << endl;
1739 cout << a <<
" " <<
b <<
" " << c <<
" " << d
1740 <<
" eliminated" << endl;
1749 cout <<
"new_nb_entries = " << GP2.
nb_entries << endl;
1794 cout <<
"new_part:" << endl;
1795 for (i = 0; i < GP2.
nb_parts; i++) {
1796 cout << GP2.
part[i] <<
" ";
1799 cout <<
"new_entries:" << endl;
1801 for (j = 0; j < 4; j++) {
1802 cout << GP2.
entries[i * 4 + j] <<
" ";
1810 cout <<
"calling GP2.print_schemes" << endl;
1853 cout <<
"geo_parameter::print_schemes" << endl;
1857 int *Part, *Entries;
1872 cout <<
"row_level=" <<
row_level << endl;
1873 cout <<
"col_level=" <<
col_level << endl;
1877 cout <<
"geo_parameter::print_schemes "
1878 "before TDO.init_TDO" << endl;
1890 cout <<
"geo_parameter::print_schemes after "
1891 "TDO.print_all_schemes" << endl;
1898 int h,
int class_first,
int class_len)
1903 for (u = 0; u < class_len; u++) {
1910 int h,
int class_first,
int class_len)
1915 for (u = 0; u < class_len; u++) {
decomposition stack of a linear space or incidence geometry
int input_mode_single(std::ifstream &aStream)
void write(std::ofstream &aStream, std::string &label)
void convert_single_to_stack(int verbose_level)
void write_mode_stack(std::ofstream &aStream, std::string &label)
int partition_number_row(int row_idx)
void append_to_part(int a)
int input(std::ifstream &aStream)
void print_schemes(tdo_scheme_synthetic &G)
int partition_number_col(int col_idx)
void cut_off(geo_parameter &GP2, int w, int *&part_relabel, int *&part_length, int verbose_level)
int input_mode_stack(std::ifstream &aStream, int verbose_level)
void print_scheme_tex(std::ostream &ost, tdo_scheme_synthetic &G, int h)
void convert_single_to_stack_fuse_simple_pt(int verbose_level)
int tdo_scheme_get_row_class_length_fused(tdo_scheme_synthetic &G, int h, int class_first, int class_len)
void copy(geo_parameter &GP2)
void append_to_entries(int a1, int a2, int a3, int a4)
void convert_single_to_stack_fuse_double_pt(int verbose_level)
void print_schemes_tex(tdo_scheme_synthetic &G)
int tdo_scheme_get_col_class_length_fused(tdo_scheme_synthetic &G, int h, int class_first, int class_len)
void init_tdo_scheme(tdo_scheme_synthetic &G, int verbose_level)
void convert_single_to_stack_fuse_simple_bt(int verbose_level)
void write_mode_single(std::ofstream &aStream, std::string &label)
void cut_off_two_lines(geo_parameter &GP2, int *&part_relabel, int *&part_length, int verbose_level)
canonical tactical decomposition of an incidence structure
int nb_col_classes[NUMBER_OF_SCHEMES]
int * col_classes_len[NUMBER_OF_SCHEMES]
void print_scheme_tex_fancy(std::ostream &ost, int h, int f_label, std::string &label)
void print_scheme(int h, int verbose_level)
void init_TDO(int *Part, int *Entries, int Row_level, int Col_level, int Extra_row_level, int Extra_col_level, int Lambda_level, int verbose_level)
int nb_row_classes[NUMBER_OF_SCHEMES]
int level[NUMBER_OF_SCHEMES]
int * row_classes_len[NUMBER_OF_SCHEMES]
void init_partition_stack(int verbose_level)
a collection of functions related to sorted vectors
void sorted_vec_get_first_and_length(int *v, int len, int *class_first, int *class_len, int &nb_classes)
#define POINTANDBLOCKTACTICAL
#define Int_vec_print_integer_matrix_width(A, B, C, D, E, F)
#define Int_vec_print(A, B, C)
the orbiter library for the classification of combinatorial objects