aboutsummaryrefslogtreecommitdiff
path: root/src/solvers/coord/common.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-08-06 16:34:21 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2025-08-06 16:52:12 +0200
commit57a7520545134ab95f7bb0397dcbe991c906a3e9 (patch)
tree689e20a92ec3830533d2fb868e5dc141dec45877 /src/solvers/coord/common.h
parenta5c9b857a346343443baf49679eebf12c18b4008 (diff)
downloadnissy-core-57a7520545134ab95f7bb0397dcbe991c906a3e9.tar.gz
nissy-core-57a7520545134ab95f7bb0397dcbe991c906a3e9.zip
Added HTR solver
Diffstat (limited to 'src/solvers/coord/common.h')
-rw-r--r--src/solvers/coord/common.h24
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 *,
12STATIC bool coord_is_solved( 12STATIC 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
15STATIC cube_t coordinate_merge_ce(cube_t, cube_t);
16STATIC cube_t coordinate_merge_ec(cube_t, cube_t);
17
15STATIC uint64_t 18STATIC uint64_t
16coord_coord_generic( 19coord_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
202STATIC cube_t
203coordinate_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
213STATIC cube_t
214coordinate_merge_ec(cube_t edges, cube_t corners)
215{
216 return coordinate_merge_ce(corners, edges);
217}

Generated with cgit - Back to sebastiano.tronto.net