diff options
Diffstat (limited to 'src/solvers/coord/common.h')
| -rw-r--r-- | src/solvers/coord/common.h | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/solvers/coord/common.h b/src/solvers/coord/common.h index 5b5f57b..5f2435d 100644 --- a/src/solvers/coord/common.h +++ b/src/solvers/coord/common.h | |||
| @@ -12,6 +12,9 @@ STATIC bool coord_can_switch(const coord_t [static 1], const unsigned char *, | |||
| 12 | STATIC bool coord_is_solved( | 12 | STATIC bool coord_is_solved( |
| 13 | const coord_t [static 1], uint64_t, const unsigned char *); | 13 | const coord_t [static 1], uint64_t, const unsigned char *); |
| 14 | 14 | ||
| 15 | STATIC cube_t coordinate_merge_ce(cube_t, cube_t); | ||
| 16 | STATIC cube_t coordinate_merge_ec(cube_t, cube_t); | ||
| 17 | |||
| 15 | STATIC uint64_t | 18 | STATIC uint64_t |
| 16 | coord_coord_generic( | 19 | coord_coord_generic( |
| 17 | const coord_t coord[static 1], | 20 | const coord_t coord[static 1], |
| @@ -19,13 +22,11 @@ coord_coord_generic( | |||
| 19 | const unsigned char *data | 22 | const unsigned char *data |
| 20 | ) | 23 | ) |
| 21 | { | 24 | { |
| 22 | const unsigned char *datanoinfo; | ||
| 23 | const uint32_t *data32; | 25 | const uint32_t *data32; |
| 24 | uint32_t d; | 26 | uint32_t d; |
| 25 | cube_t tr; | 27 | cube_t tr; |
| 26 | 28 | ||
| 27 | datanoinfo = data + INFOSIZE; | 29 | data32 = (const uint32_t *)(data + INFOSIZE); |
| 28 | data32 = (const uint32_t *)datanoinfo; | ||
| 29 | d = data32[coord->sym.coord(c)]; | 30 | d = data32[coord->sym.coord(c)]; |
| 30 | tr = transform(c, COORD_TTREP(d)); | 31 | tr = transform(c, COORD_TTREP(d)); |
| 31 | 32 | ||
| @@ -197,3 +198,20 @@ coord_is_solved( | |||
| 197 | { | 198 | { |
| 198 | return coord->is_solved == NULL ? i == 0 : coord->is_solved(i, data); | 199 | return coord->is_solved == NULL ? i == 0 : coord->is_solved(i, data); |
| 199 | } | 200 | } |
| 201 | |||
| 202 | STATIC cube_t | ||
| 203 | coordinate_merge_ce(cube_t corners, cube_t edges) | ||
| 204 | { | ||
| 205 | cube_t merged; | ||
| 206 | |||
| 207 | merged = corners; | ||
| 208 | copy_edges(&merged, edges); | ||
| 209 | |||
| 210 | return merged; | ||
| 211 | } | ||
| 212 | |||
| 213 | STATIC cube_t | ||
| 214 | coordinate_merge_ec(cube_t edges, cube_t corners) | ||
| 215 | { | ||
| 216 | return coordinate_merge_ce(corners, edges); | ||
| 217 | } | ||
