aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/solvers/h48/solve.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/solvers/h48/solve.h b/src/solvers/h48/solve.h
index 92de8a9..1522c0b 100644
--- a/src/solvers/h48/solve.h
+++ b/src/solvers/h48/solve.h
@@ -288,7 +288,6 @@ solve_h48_dfs(dfsarg_solve_h48_t arg[static 1])
288 int64_t ret, n; 288 int64_t ret, n;
289 uint8_t m, nm, nn, ni, target; 289 uint8_t m, nm, nn, ni, target;
290 uint64_t mm_normal, mm_inverse; 290 uint64_t mm_normal, mm_inverse;
291 bool normal;
292 cube_t cube, backup_cube, backup_inverse; 291 cube_t cube, backup_cube, backup_inverse;
293 h48_prune_t prune[NMOVES]; 292 h48_prune_t prune[NMOVES];
294 293
@@ -326,12 +325,10 @@ solve_h48_dfs(dfsarg_solve_h48_t arg[static 1])
326 325
327 backup_cube = arg->cube; 326 backup_cube = arg->cube;
328 backup_inverse = arg->inverse; 327 backup_inverse = arg->inverse;
329 normal = popcount_u32(mm_normal) <= popcount_u32(mm_inverse);
330
331 h48_prune_pipeline(arg, prune, target, normal);
332 328
333 ret = 0; 329 ret = 0;
334 if (normal) { 330 if (popcount_u32(mm_normal) <= popcount_u32(mm_inverse)) {
331 h48_prune_pipeline(arg, prune, target, true);
335 arg->solution_moves->nmoves++; 332 arg->solution_moves->nmoves++;
336 for (m = 0; m < NMOVES; m++) { 333 for (m = 0; m < NMOVES; m++) {
337 if (prune[m].stop) 334 if (prune[m].stop)
@@ -346,6 +343,7 @@ solve_h48_dfs(dfsarg_solve_h48_t arg[static 1])
346 } 343 }
347 arg->solution_moves->nmoves--; 344 arg->solution_moves->nmoves--;
348 } else { 345 } else {
346 h48_prune_pipeline(arg, prune, target, false);
349 arg->solution_moves->npremoves++; 347 arg->solution_moves->npremoves++;
350 for (m = 0; m < NMOVES; m++) { 348 for (m = 0; m < NMOVES; m++) {
351 if (prune[m].stop) 349 if (prune[m].stop)

Generated with cgit - Back to sebastiano.tronto.net