diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2025-04-29 10:08:04 +0200 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2025-04-29 10:08:04 +0200 |
| commit | 8d3fc9f5f9c0593fcae9c451efe6c89c64dcbe84 (patch) | |
| tree | 8c0182f9bf94aaa8afe5126988e07af82c4409fd /src/solvers/coord/solve.h | |
| parent | cdf46d85efe7fa54e8c302a255214341c567b4af (diff) | |
| download | nissy-core-8d3fc9f5f9c0593fcae9c451efe6c89c64dcbe84.tar.gz nissy-core-8d3fc9f5f9c0593fcae9c451efe6c89c64dcbe84.zip | |
Added stop / pause / resume solve to API
Diffstat (limited to 'src/solvers/coord/solve.h')
| -rw-r--r-- | src/solvers/coord/solve.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/solvers/coord/solve.h b/src/solvers/coord/solve.h index 48cc704..8eb3e9d 100644 --- a/src/solvers/coord/solve.h +++ b/src/solvers/coord/solve.h | |||
| @@ -14,10 +14,10 @@ typedef struct { | |||
| 14 | 14 | ||
| 15 | STATIC int64_t solve_coord(oriented_cube_t, coord_t [static 1], 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, | 16 | uint8_t, uint8_t, uint8_t, uint64_t, uint8_t, uint8_t, uint64_t, |
| 17 | const unsigned char *, size_t n, char [n]); | 17 | const unsigned char *, size_t n, char [n], int (*)(void *), void *); |
| 18 | STATIC int64_t solve_coord_dispatch(oriented_cube_t, const char *, uint8_t, | 18 | STATIC int64_t solve_coord_dispatch(oriented_cube_t, const char *, uint8_t, |
| 19 | 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, |
| 20 | const unsigned char *, size_t n, char [n]); | 20 | const unsigned char *, size_t n, char [n], int (*)(void *), void *); |
| 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]); |
| @@ -211,7 +211,9 @@ solve_coord_dispatch( | |||
| 211 | uint64_t data_size, | 211 | uint64_t data_size, |
| 212 | const unsigned char *data, | 212 | const unsigned char *data, |
| 213 | size_t solutions_size, | 213 | size_t solutions_size, |
| 214 | char sols[solutions_size] | 214 | char sols[solutions_size], |
| 215 | int (*poll_status)(void *), | ||
| 216 | void *poll_status_data | ||
| 215 | ) | 217 | ) |
| 216 | { | 218 | { |
| 217 | coord_t *coord; | 219 | coord_t *coord; |
| @@ -233,7 +235,7 @@ solve_coord_dispatch( | |||
| 233 | 235 | ||
| 234 | return solve_coord(oc, coord, axis, nissflag, minmoves, maxmoves, | 236 | return solve_coord(oc, coord, axis, nissflag, minmoves, maxmoves, |
| 235 | maxsolutions, optimal, threads, data_size, data, | 237 | maxsolutions, optimal, threads, data_size, data, |
| 236 | solutions_size, sols); | 238 | solutions_size, sols, poll_status, poll_status_data); |
| 237 | } | 239 | } |
| 238 | 240 | ||
| 239 | STATIC int64_t | 241 | STATIC int64_t |
| @@ -250,7 +252,9 @@ solve_coord( | |||
| 250 | uint64_t data_size, | 252 | uint64_t data_size, |
| 251 | const unsigned char *data, | 253 | const unsigned char *data, |
| 252 | size_t solutions_size, | 254 | size_t solutions_size, |
| 253 | char sols[solutions_size] | 255 | char sols[solutions_size], |
| 256 | int (*poll_status)(void *), | ||
| 257 | void *poll_status_data | ||
| 254 | ) | 258 | ) |
| 255 | { | 259 | { |
| 256 | int8_t d; | 260 | int8_t d; |
