diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2025-03-09 07:43:37 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2025-03-09 07:43:37 +0100 |
| commit | 11e6aeeaf5f08839c6effb8f68710081acf491bf (patch) | |
| tree | 8aab442a637fd35bb457946926fd9bc749ee0467 /src/solvers/h48/solve.h | |
| parent | 110e079f81277b40ec76be0b86b074a632496109 (diff) | |
| download | nissy-core-11e6aeeaf5f08839c6effb8f68710081acf491bf.tar.gz nissy-core-11e6aeeaf5f08839c6effb8f68710081acf491bf.zip | |
Working (?) version of coordinate solver
Diffstat (limited to 'src/solvers/h48/solve.h')
| -rw-r--r-- | src/solvers/h48/solve.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/solvers/h48/solve.h b/src/solvers/h48/solve.h index 44f6a89..182beee 100644 --- a/src/solvers/h48/solve.h +++ b/src/solvers/h48/solve.h | |||
| @@ -145,8 +145,7 @@ solve_h48_appendallsym(dfsarg_solve_h48_t *arg) | |||
| 145 | goto solve_h48_appendallsym_error; | 145 | goto solve_h48_appendallsym_error; |
| 146 | 146 | ||
| 147 | (*arg->nsols)++; | 147 | (*arg->nsols)++; |
| 148 | *arg->shortest_sol = | 148 | *arg->shortest_sol = MIN(*arg->shortest_sol, n); |
| 149 | MIN(*arg->shortest_sol, arg->nmoves + arg->npremoves); | ||
| 150 | ret++; | 149 | ret++; |
| 151 | } | 150 | } |
| 152 | 151 | ||
| @@ -291,7 +290,7 @@ solve_h48_dfs(dfsarg_solve_h48_t *arg) | |||
| 291 | if (popcount_u32(mm_normal) <= popcount_u32(mm_inverse)) { | 290 | if (popcount_u32(mm_normal) <= popcount_u32(mm_inverse)) { |
| 292 | arg->nmoves++; | 291 | arg->nmoves++; |
| 293 | for (m = 0; m < 18; m++) { | 292 | for (m = 0; m < 18; m++) { |
| 294 | if (!(mm_normal & (1 << m))) | 293 | if (!(mm_normal & (UINT32_C(1) << (uint32_t)m))) |
| 295 | continue; | 294 | continue; |
| 296 | arg->moves[arg->nmoves-1] = m; | 295 | arg->moves[arg->nmoves-1] = m; |
| 297 | arg->cube = move(backup_cube, m); | 296 | arg->cube = move(backup_cube, m); |
| @@ -308,7 +307,7 @@ solve_h48_dfs(dfsarg_solve_h48_t *arg) | |||
| 308 | } else { | 307 | } else { |
| 309 | arg->npremoves++; | 308 | arg->npremoves++; |
| 310 | for (m = 0; m < 18; m++) { | 309 | for (m = 0; m < 18; m++) { |
| 311 | if(!(mm_inverse & (1 << m))) | 310 | if(!(mm_inverse & (UINT32_C(1) << (uint32_t)m))) |
| 312 | continue; | 311 | continue; |
| 313 | arg->premoves[arg->npremoves-1] = m; | 312 | arg->premoves[arg->npremoves-1] = m; |
| 314 | arg->inverse = move(backup_inverse, m); | 313 | arg->inverse = move(backup_inverse, m); |
