From 849edbb69700a9f7520e159d94333ef5b798685b Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Wed, 8 Dec 2021 21:50:35 +0100 Subject: Just refortmatting and added one type --- src/pruning.c | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) (limited to 'src/pruning.c') diff --git a/src/pruning.c b/src/pruning.c index 50299f0..8c6858d 100644 --- a/src/pruning.c +++ b/src/pruning.c @@ -2,6 +2,7 @@ static void genptable_bfs(PruneData *pd, int d, Move *ms); static void genptable_branch(PruneData *pd,uint64_t ind,int d,Move *ms); +static void genptable_fixnasty(PruneData *pd, int d); static void ptable_update(PruneData *pd, Cube cube, int m); static void ptable_update_index(PruneData *pd, uint64_t ind, int m); static int ptableval_index(PruneData *pd, uint64_t ind); @@ -114,6 +115,7 @@ genptable(PruneData *pd) 0, pd->n - oldn, pd->n, pd->coord->max); oldn = 1; for (d = 0; d < 15 && pd->n < pd->coord->max; d++) { + genptable_fixnasty(pd, d); genptable_bfs(pd, d, ms); fprintf(stderr, "Depth %d done, generated %" PRIu64 "\t(%" PRIu64 "/%" PRIu64 ")\n", @@ -131,25 +133,7 @@ genptable(PruneData *pd) static void genptable_bfs(PruneData *pd, int d, Move *ms) { - int j, n; uint64_t i; - Cube c, cc; - Trans t[NTRANS]; - - for (i = 0; i < pd->coord->max; i++) { - if (ptableval_index(pd, i) == d) { - n = pd->coord->trans(i, t); - if (n == 1) - continue; - - c = pd->coord->cube(i); - for (j = 0; j < n; j++) { - cc = apply_trans(t[j], c); - if (ptableval(pd, cc) > d) - ptable_update(pd, cc, d); - } - } - } for (i = 0; i < pd->coord->max; i++) if (ptableval_index(pd, i) == d) @@ -171,6 +155,30 @@ genptable_branch(PruneData *pd, uint64_t ind, int d, Move *ms) } } +static void +genptable_fixnasty(PruneData *pd, int d) +{ + uint64_t i; + int j, n; + Cube c, cc; + Trans t[NTRANS]; + + for (i = 0; i < pd->coord->max; i++) { + if (ptableval_index(pd, i) == d) { + n = pd->coord->trans(i, t); + if (n == 1) + continue; + + c = pd->coord->cube(i); + for (j = 0; j < n; j++) { + cc = apply_trans(t[j], c); + if (ptableval(pd, cc) > d) + ptable_update(pd, cc, d); + } + } + } +} + void print_ptable(PruneData *pd) { -- cgit v1.3