aboutsummaryrefslogtreecommitdiff
path: root/src/solvers/coord/solve.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-04-23 14:42:28 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2025-04-23 14:52:58 +0200
commit039267a278bb9e0580e8aebd85ef5f3ed774688f (patch)
treee569101b585a9aa0426d3a5afbfe3bbddfae0e60 /src/solvers/coord/solve.h
parentd969dc0ad57d3e1e346df719cf9f2708ee87d2e7 (diff)
downloadnissy-core-039267a278bb9e0580e8aebd85ef5f3ed774688f.tar.gz
nissy-core-039267a278bb9e0580e8aebd85ef5f3ed774688f.zip
Adjusted solvers, fixed bug
Diffstat (limited to '')
-rw-r--r--src/solvers/coord/solve.h17
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
15STATIC int64_t solve_coord(cube_t, coord_t [static 1], uint8_t, uint8_t, 15STATIC 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]);
18STATIC 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]);
18STATIC 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]);
21STATIC bool coord_solution_admissible(const dfsarg_solve_coord_t [static 1]); 21STATIC bool coord_solution_admissible(const dfsarg_solve_coord_t [static 1]);
22STATIC bool solve_coord_dfs_stop(const dfsarg_solve_coord_t [static 1]); 22STATIC bool solve_coord_dfs_stop(const dfsarg_solve_coord_t [static 1]);
23STATIC bool coord_continue_onnormal(const dfsarg_solve_coord_t [static 1]); 23STATIC 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
201STATIC int64_t 201STATIC int64_t
202solve_coord_dispatch( 202solve_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
239STATIC int64_t 239STATIC int64_t
240solve_coord( 240solve_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) {

Generated with cgit - Back to sebastiano.tronto.net