diff options
Diffstat (limited to 'src/cubetypes.h')
| -rw-r--r-- | src/cubetypes.h | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/src/cubetypes.h b/src/cubetypes.h index 8d38904..3752019 100644 --- a/src/cubetypes.h +++ b/src/cubetypes.h | |||
| @@ -89,7 +89,7 @@ typedef struct command Command; | |||
| 89 | typedef struct commandargs CommandArgs; | 89 | typedef struct commandargs CommandArgs; |
| 90 | typedef struct coordinate Coordinate; | 90 | typedef struct coordinate Coordinate; |
| 91 | typedef struct cube Cube; | 91 | typedef struct cube Cube; |
| 92 | typedef struct dfsarg DfsArg; | 92 | /*typedef struct dfsarg DfsArg;*/ |
| 93 | typedef struct fstcube FstCube; | 93 | typedef struct fstcube FstCube; |
| 94 | typedef struct indexer Indexer; | 94 | typedef struct indexer Indexer; |
| 95 | typedef struct movable Movable; | 95 | typedef struct movable Movable; |
| @@ -104,9 +104,9 @@ typedef struct transgroup TransGroup; | |||
| 104 | 104 | ||
| 105 | typedef bool (*Checker) (Cube *); | 105 | typedef bool (*Checker) (Cube *); |
| 106 | typedef bool (*CubeTester) (Cube *, Alg *); | 106 | typedef bool (*CubeTester) (Cube *, Alg *); |
| 107 | typedef bool (*DfsMover) (DfsArg *); | 107 | /*typedef bool (*DfsMover) (DfsArg *);*/ |
| 108 | typedef void (*DfsExtraCopier) (void *, void *); | 108 | typedef void (*DfsExtraCopier) (void *, void *); |
| 109 | typedef bool (*Validator) (Alg *); | 109 | typedef Alg * (*Validator) (Alg *); |
| 110 | typedef void (*Exec) (CommandArgs *); | 110 | typedef void (*Exec) (CommandArgs *); |
| 111 | typedef CommandArgs * (*ArgParser) (int, char **); | 111 | typedef CommandArgs * (*ArgParser) (int, char **); |
| 112 | typedef bool (*Tester) (void); | 112 | typedef bool (*Tester) (void); |
| @@ -206,13 +206,16 @@ cube | |||
| 206 | int xp[6]; | 206 | int xp[6]; |
| 207 | }; | 207 | }; |
| 208 | 208 | ||
| 209 | /* | ||
| 209 | struct | 210 | struct |
| 210 | movable | 211 | movable |
| 211 | { | 212 | { |
| 212 | uint64_t val; | 213 | uint64_t val; |
| 213 | Trans t; | 214 | Trans t; |
| 214 | }; | 215 | }; |
| 216 | */ | ||
| 215 | 217 | ||
| 218 | /* | ||
| 216 | struct | 219 | struct |
| 217 | dfsarg | 220 | dfsarg |
| 218 | { | 221 | { |
| @@ -224,13 +227,28 @@ dfsarg | |||
| 224 | int d; | 227 | int d; |
| 225 | int bound; | 228 | int bound; |
| 226 | bool niss; | 229 | bool niss; |
| 227 | Move last[2]; | ||
| 228 | Move lastinv[2]; | ||
| 229 | AlgList * sols; | 230 | AlgList * sols; |
| 230 | pthread_mutex_t * sols_mutex; | 231 | pthread_mutex_t * sols_mutex; |
| 231 | Alg * current_alg; | 232 | Alg * current_alg; |
| 232 | void * extra; | 233 | void * extra; |
| 233 | }; | 234 | }; |
| 235 | */ | ||
| 236 | |||
| 237 | /* | ||
| 238 | struct | ||
| 239 | dfsarg | ||
| 240 | { | ||
| 241 | void * cube_data; | ||
| 242 | SolveOptions * opts; | ||
| 243 | int d; | ||
| 244 | int bound; | ||
| 245 | bool niss; | ||
| 246 | AlgList * sols; | ||
| 247 | Alg * current_alg; | ||
| 248 | Solver * solver; | ||
| 249 | Threader * threader; | ||
| 250 | }; | ||
| 251 | */ | ||
| 234 | 252 | ||
| 235 | struct | 253 | struct |
| 236 | fstcube | 254 | fstcube |
| @@ -260,9 +278,9 @@ moveset | |||
| 260 | { | 278 | { |
| 261 | char * name; | 279 | char * name; |
| 262 | bool (*allowed)(Move); | 280 | bool (*allowed)(Move); |
| 263 | bool (*allowed_next)(Move, Move, Move); | 281 | bool (*can_append)(Alg *, Move, bool); |
| 282 | bool (*cancel_niss)(Alg *); | ||
| 264 | Move sorted_moves[NMOVES+1]; | 283 | Move sorted_moves[NMOVES+1]; |
| 265 | uint64_t mask[NMOVES][NMOVES]; | ||
| 266 | }; | 284 | }; |
| 267 | 285 | ||
| 268 | struct | 286 | struct |
| @@ -304,10 +322,11 @@ step | |||
| 304 | PruneData * pd[MAX_N_COORD]; | 322 | PruneData * pd[MAX_N_COORD]; |
| 305 | bool pd_compact[MAX_N_COORD]; | 323 | bool pd_compact[MAX_N_COORD]; |
| 306 | Validator is_valid; | 324 | Validator is_valid; |
| 307 | DfsMover custom_move_checkstop; | 325 | /*DfsMover custom_move_checkstop;*/ |
| 308 | DfsExtraCopier copy_extra; | 326 | DfsExtraCopier copy_extra; |
| 309 | }; | 327 | }; |
| 310 | 328 | ||
| 329 | /* | ||
| 311 | struct | 330 | struct |
| 312 | threaddatasolve | 331 | threaddatasolve |
| 313 | { | 332 | { |
| @@ -317,6 +336,7 @@ threaddatasolve | |||
| 317 | AlgListNode ** node; | 336 | AlgListNode ** node; |
| 318 | pthread_mutex_t * start_mutex; | 337 | pthread_mutex_t * start_mutex; |
| 319 | }; | 338 | }; |
| 339 | */ | ||
| 320 | 340 | ||
| 321 | struct | 341 | struct |
| 322 | threaddatagenpt | 342 | threaddatagenpt |
