aboutsummaryrefslogtreecommitdiff
path: root/src/core/cube.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-09-05 10:04:34 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-09-05 10:04:34 +0200
commitb17411249b17133f35833c202e6c2e4bf43b3298 (patch)
tree3417a006ee5207b4ff9a2bfcc4bc971853d24577 /src/core/cube.h
parentfd5ddb3db9f50411ca579d84f225f265ca35b56a (diff)
downloadnissy-core-b17411249b17133f35833c202e6c2e4bf43b3298.tar.gz
nissy-core-b17411249b17133f35833c202e6c2e4bf43b3298.zip
More renaming
Diffstat (limited to '')
-rw-r--r--src/core/cube.h33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/core/cube.h b/src/core/cube.h
index 1bb8bd0..2252a85 100644
--- a/src/core/cube.h
+++ b/src/core/cube.h
@@ -1,5 +1,5 @@
1STATIC cube_t solvecube(void);
1STATIC cube_t cubefromarray(uint8_t [static 8], uint8_t [static 12]); 2STATIC cube_t cubefromarray(uint8_t [static 8], uint8_t [static 12]);
2STATIC cube_t solvedcube(void);
3STATIC bool isconsistent(cube_t); 3STATIC bool isconsistent(cube_t);
4STATIC bool issolvable(cube_t); 4STATIC bool issolvable(cube_t);
5STATIC bool issolved(cube_t); 5STATIC bool issolved(cube_t);
@@ -7,19 +7,20 @@ STATIC bool iserror(cube_t);
7STATIC void getcube_fix(int64_t *, int64_t *, int64_t *, int64_t *); 7STATIC void getcube_fix(int64_t *, int64_t *, int64_t *, int64_t *);
8STATIC cube_t getcube(int64_t, int64_t, int64_t, int64_t); 8STATIC cube_t getcube(int64_t, int64_t, int64_t, int64_t);
9 9
10/* This is used only in tests, use SOLVED_CUBE directly everywhere else */
10STATIC cube_t 11STATIC cube_t
11cubefromarray(uint8_t c[static 8], uint8_t e[static 12]) 12solvedcube(void)
12{ 13{
13 return static_cube( 14 return SOLVED_CUBE;
14 c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7],
15 e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7],
16 e[8], e[9], e[10], e[11]);
17} 15}
18 16
19STATIC cube_t 17STATIC cube_t
20solvedcube(void) 18cubefromarray(uint8_t c[static 8], uint8_t e[static 12])
21{ 19{
22 return solved; 20 return STATIC_CUBE(
21 c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7],
22 e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7],
23 e[8], e[9], e[10], e[11]);
23} 24}
24 25
25STATIC bool 26STATIC bool
@@ -127,13 +128,13 @@ issolvable_co:
127bool 128bool
128issolved(cube_t cube) 129issolved(cube_t cube)
129{ 130{
130 return equal(cube, solved); 131 return equal(cube, SOLVED_CUBE);
131} 132}
132 133
133bool 134bool
134iserror(cube_t cube) 135iserror(cube_t cube)
135{ 136{
136 return equal(cube, zero); 137 return equal(cube, ZERO_CUBE);
137} 138}
138 139
139STATIC void 140STATIC void
@@ -149,11 +150,11 @@ getcube_fix(int64_t *ep, int64_t *eo, int64_t *cp, int64_t *co)
149 indextoperm(*ep, 12, e); 150 indextoperm(*ep, 12, e);
150 indextoperm(*cp, 8, c); 151 indextoperm(*cp, 8, c);
151 if (permsign(e, 12) != permsign(c, 8)) { 152 if (permsign(e, 12) != permsign(c, 8)) {
152 _swap(c[0], c[1]); 153 SWAP(c[0], c[1]);
153 *cp = permtoindex(c, 8); 154 *cp = permtoindex(c, 8);
154 155
155 sumzerotodigits(*co, 8, 3, coarr); 156 sumzerotodigits(*co, 8, 3, coarr);
156 _swap(coarr[0], coarr[1]); 157 SWAP(coarr[0], coarr[1]);
157 *co = digitstosumzero(coarr, 8, 3); 158 *co = digitstosumzero(coarr, 8, 3);
158 } 159 }
159} 160}
@@ -164,16 +165,16 @@ getcube(int64_t ep, int64_t eo, int64_t cp, int64_t co)
164 uint8_t i, earr[12], carr[8], eoarr[12], coarr[8]; 165 uint8_t i, earr[12], carr[8], eoarr[12], coarr[8];
165 166
166 sumzerotodigits(eo, 12, 2, eoarr); 167 sumzerotodigits(eo, 12, 2, eoarr);
167 DBG_ASSERT(eoarr[0] != UINT8_ERROR, zero, "Error making EO"); 168 DBG_ASSERT(eoarr[0] != UINT8_ERROR, ZERO_CUBE, "Error making EO");
168 indextoperm(ep, 12, earr); 169 indextoperm(ep, 12, earr);
169 DBG_ASSERT(earr[0] != UINT8_ERROR, zero, "Error making EP"); 170 DBG_ASSERT(earr[0] != UINT8_ERROR, ZERO_CUBE, "Error making EP");
170 for (i = 0; i < 12; i++) 171 for (i = 0; i < 12; i++)
171 earr[i] |= eoarr[i] << EOSHIFT; 172 earr[i] |= eoarr[i] << EOSHIFT;
172 173
173 sumzerotodigits(co, 8, 3, coarr); 174 sumzerotodigits(co, 8, 3, coarr);
174 DBG_ASSERT(coarr[0] != UINT8_ERROR, zero, "Error making CO"); 175 DBG_ASSERT(coarr[0] != UINT8_ERROR, ZERO_CUBE, "Error making CO");
175 indextoperm(cp, 8, carr); 176 indextoperm(cp, 8, carr);
176 DBG_ASSERT(carr[0] != UINT8_ERROR, zero, "Error making CP"); 177 DBG_ASSERT(carr[0] != UINT8_ERROR, ZERO_CUBE, "Error making CP");
177 for (i = 0; i < 8; i++) 178 for (i = 0; i < 8; i++)
178 carr[i] |= coarr[i] << COSHIFT; 179 carr[i] |= coarr[i] << COSHIFT;
179 180

Generated with cgit - Back to sebastiano.tronto.net