diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2025-04-23 14:42:28 +0200 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2025-04-23 14:52:58 +0200 |
| commit | 039267a278bb9e0580e8aebd85ef5f3ed774688f (patch) | |
| tree | e569101b585a9aa0426d3a5afbfe3bbddfae0e60 /src/solvers/coord/solve.h | |
| parent | d969dc0ad57d3e1e346df719cf9f2708ee87d2e7 (diff) | |
| download | nissy-core-039267a278bb9e0580e8aebd85ef5f3ed774688f.tar.gz nissy-core-039267a278bb9e0580e8aebd85ef5f3ed774688f.zip | |
Adjusted solvers, fixed bug
Diffstat (limited to 'src/solvers/coord/solve.h')
| -rw-r--r-- | src/solvers/coord/solve.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/solvers/coord/solve.h b/src/solvers/coord/solve.h index fb996ac..48cc704 100644 --- a/src/solvers/coord/solve.h +++ b/src/solvers/coord/solve.h | |||
| @@ -12,12 +12,12 @@ typedef struct { | |||
| 12 | const unsigned char *ptable; | 12 | const unsigned char *ptable; |
| 13 | } dfsarg_solve_coord_t; | 13 | } dfsarg_solve_coord_t; |
| 14 | 14 | ||
| 15 | STATIC int64_t solve_coord(cube_t, coord_t [static 1], uint8_t, uint8_t, | 15 | STATIC int64_t solve_coord(oriented_cube_t, coord_t [static 1], uint8_t, |
| 16 | uint8_t, uint8_t, uint8_t, uint64_t, uint8_t, uint8_t, uint64_t, | ||
| 17 | const unsigned char *, size_t n, char [n]); | ||
| 18 | STATIC int64_t solve_coord_dispatch(oriented_cube_t, const char *, uint8_t, | ||
| 16 | uint8_t, uint8_t, uint64_t, uint8_t, uint8_t, uint64_t, | 19 | uint8_t, uint8_t, uint64_t, uint8_t, uint8_t, uint64_t, |
| 17 | const unsigned char *, size_t n, char [n]); | 20 | const unsigned char *, size_t n, char [n]); |
| 18 | STATIC int64_t solve_coord_dispatch(cube_t, const char *, uint8_t, uint8_t, | ||
| 19 | uint8_t, uint64_t, uint8_t, uint8_t, uint64_t, const unsigned char *, | ||
| 20 | size_t n, char [n]); | ||
| 21 | STATIC bool coord_solution_admissible(const dfsarg_solve_coord_t [static 1]); | 21 | STATIC bool coord_solution_admissible(const dfsarg_solve_coord_t [static 1]); |
| 22 | STATIC bool solve_coord_dfs_stop(const dfsarg_solve_coord_t [static 1]); | 22 | STATIC bool solve_coord_dfs_stop(const dfsarg_solve_coord_t [static 1]); |
| 23 | STATIC bool coord_continue_onnormal(const dfsarg_solve_coord_t [static 1]); | 23 | STATIC bool coord_continue_onnormal(const dfsarg_solve_coord_t [static 1]); |
| @@ -200,7 +200,7 @@ solve_coord_dfs(dfsarg_solve_coord_t arg[static 1]) | |||
| 200 | 200 | ||
| 201 | STATIC int64_t | 201 | STATIC int64_t |
| 202 | solve_coord_dispatch( | 202 | solve_coord_dispatch( |
| 203 | cube_t cube, | 203 | oriented_cube_t oc, |
| 204 | const char *coord_and_axis, | 204 | const char *coord_and_axis, |
| 205 | uint8_t nissflag, | 205 | uint8_t nissflag, |
| 206 | uint8_t minmoves, | 206 | uint8_t minmoves, |
| @@ -231,14 +231,14 @@ solve_coord_dispatch( | |||
| 231 | return NISSY_ERROR_INVALID_SOLVER; | 231 | return NISSY_ERROR_INVALID_SOLVER; |
| 232 | } | 232 | } |
| 233 | 233 | ||
| 234 | return solve_coord(cube, coord, axis, nissflag, minmoves, maxmoves, | 234 | return solve_coord(oc, coord, axis, nissflag, minmoves, maxmoves, |
| 235 | maxsolutions, optimal, threads, data_size, data, | 235 | maxsolutions, optimal, threads, data_size, data, |
| 236 | solutions_size, sols); | 236 | solutions_size, sols); |
| 237 | } | 237 | } |
| 238 | 238 | ||
| 239 | STATIC int64_t | 239 | STATIC int64_t |
| 240 | solve_coord( | 240 | solve_coord( |
| 241 | cube_t cube, | 241 | oriented_cube_t oc, |
| 242 | coord_t coord [static 1], | 242 | coord_t coord [static 1], |
| 243 | uint8_t axis, | 243 | uint8_t axis, |
| 244 | uint8_t nissflag, | 244 | uint8_t nissflag, |
| @@ -266,7 +266,7 @@ solve_coord( | |||
| 266 | solution_list_t solution_list; | 266 | solution_list_t solution_list; |
| 267 | 267 | ||
| 268 | t = coord->axistrans[axis]; | 268 | t = coord->axistrans[axis]; |
| 269 | c = transform(cube, t); | 269 | c = transform(oc.cube, t); |
| 270 | 270 | ||
| 271 | if (!coord->is_solvable(c)) | 271 | if (!coord->is_solvable(c)) |
| 272 | goto solve_coord_error_unsolvable; | 272 | goto solve_coord_error_unsolvable; |
| @@ -295,6 +295,7 @@ solve_coord( | |||
| 295 | .maxmoves = maxmoves, | 295 | .maxmoves = maxmoves, |
| 296 | .maxsolutions = maxsolutions, | 296 | .maxsolutions = maxsolutions, |
| 297 | .optimal = optimal, | 297 | .optimal = optimal, |
| 298 | .orientation = oc.orientation, | ||
| 298 | }; | 299 | }; |
| 299 | 300 | ||
| 300 | arg = (dfsarg_solve_coord_t) { | 301 | arg = (dfsarg_solve_coord_t) { |
