aboutsummaryrefslogtreecommitdiff
path: root/src/core/cube.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-09-05 08:53:38 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-09-05 08:55:25 +0200
commitfd5ddb3db9f50411ca579d84f225f265ca35b56a (patch)
treeb659112cc0e2abd6c7edb08b0938c0d2de4ca066 /src/core/cube.h
parentc9e2d6466e42d6b779ac9ffa7c5ee9a9c7558df8 (diff)
downloadnissy-core-fd5ddb3db9f50411ca579d84f225f265ca35b56a.tar.gz
nissy-core-fd5ddb3db9f50411ca579d84f225f265ca35b56a.zip
Rename constants from _underscore to CAPS
Diffstat (limited to '')
-rw-r--r--src/core/cube.h68
1 files changed, 34 insertions, 34 deletions
diff --git a/src/core/cube.h b/src/core/cube.h
index df5161a..1bb8bd0 100644
--- a/src/core/cube.h
+++ b/src/core/cube.h
@@ -1,13 +1,13 @@
1_static cube_t cubefromarray(uint8_t [static 8], uint8_t [static 12]); 1STATIC cube_t cubefromarray(uint8_t [static 8], uint8_t [static 12]);
2_static cube_t solvedcube(void); 2STATIC cube_t solvedcube(void);
3_static bool isconsistent(cube_t); 3STATIC bool isconsistent(cube_t);
4_static bool issolvable(cube_t); 4STATIC bool issolvable(cube_t);
5_static bool issolved(cube_t); 5STATIC bool issolved(cube_t);
6_static bool iserror(cube_t); 6STATIC bool iserror(cube_t);
7_static void getcube_fix(int64_t *, int64_t *, int64_t *, int64_t *); 7STATIC void getcube_fix(int64_t *, int64_t *, int64_t *, int64_t *);
8_static 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_static cube_t 10STATIC cube_t
11cubefromarray(uint8_t c[static 8], uint8_t e[static 12]) 11cubefromarray(uint8_t c[static 8], uint8_t e[static 12])
12{ 12{
13 return static_cube( 13 return static_cube(
@@ -16,13 +16,13 @@ cubefromarray(uint8_t c[static 8], uint8_t e[static 12])
16 e[8], e[9], e[10], e[11]); 16 e[8], e[9], e[10], e[11]);
17} 17}
18 18
19_static cube_t 19STATIC cube_t
20solvedcube(void) 20solvedcube(void)
21{ 21{
22 return solved; 22 return solved;
23} 23}
24 24
25_static bool 25STATIC bool
26isconsistent(cube_t cube) 26isconsistent(cube_t cube)
27{ 27{
28 uint8_t i, p, e, piece, corner[8], edge[12]; 28 uint8_t i, p, e, piece, corner[8], edge[12];
@@ -34,11 +34,11 @@ isconsistent(cube_t cube)
34 found[i] = false; 34 found[i] = false;
35 for (i = 0; i < 12; i++) { 35 for (i = 0; i < 12; i++) {
36 piece = edge[i]; 36 piece = edge[i];
37 p = piece & _pbits; 37 p = piece & PBITS;
38 e = piece & _eobit; 38 e = piece & EOBIT;
39 if (p >= 12) 39 if (p >= 12)
40 goto inconsistent_ep; 40 goto inconsistent_ep;
41 if (e != 0 && e != _eobit) 41 if (e != 0 && e != EOBIT)
42 goto inconsistent_eo; 42 goto inconsistent_eo;
43 found[p] = true; 43 found[p] = true;
44 } 44 }
@@ -50,11 +50,11 @@ isconsistent(cube_t cube)
50 found[i] = false; 50 found[i] = false;
51 for (i = 0; i < 8; i++) { 51 for (i = 0; i < 8; i++) {
52 piece = corner[i]; 52 piece = corner[i];
53 p = piece & _pbits; 53 p = piece & PBITS;
54 e = piece & _cobits; 54 e = piece & COBITS;
55 if (p >= 8) 55 if (p >= 8)
56 goto inconsistent_cp; 56 goto inconsistent_cp;
57 if (e != 0 && e != _ctwist_cw && e != _ctwist_ccw) 57 if (e != 0 && e != CTWIST_CW && e != CTWIST_CCW)
58 goto inconsistent_co; 58 goto inconsistent_co;
59 found[p] = true; 59 found[p] = true;
60 } 60 }
@@ -78,7 +78,7 @@ inconsistent_co:
78 return false; 78 return false;
79} 79}
80 80
81_static bool 81STATIC bool
82issolvable(cube_t cube) 82issolvable(cube_t cube)
83{ 83{
84 uint8_t i, eo, co, piece, edge[12], corner[8], ep[12], cp[8]; 84 uint8_t i, eo, co, piece, edge[12], corner[8], ep[12], cp[8];
@@ -88,9 +88,9 @@ issolvable(cube_t cube)
88 88
89 pieces(&cube, corner, edge); 89 pieces(&cube, corner, edge);
90 for (i = 0; i < 12; i++) 90 for (i = 0; i < 12; i++)
91 ep[i] = edge[i] & _pbits; 91 ep[i] = edge[i] & PBITS;
92 for (i = 0; i < 8; i++) 92 for (i = 0; i < 8; i++)
93 cp[i] = corner[i] & _pbits; 93 cp[i] = corner[i] & PBITS;
94 94
95 if (permsign(ep, 12) != permsign(cp, 8)) 95 if (permsign(ep, 12) != permsign(cp, 8))
96 goto issolvable_parity; 96 goto issolvable_parity;
@@ -98,7 +98,7 @@ issolvable(cube_t cube)
98 eo = 0; 98 eo = 0;
99 for (i = 0; i < 12; i++) { 99 for (i = 0; i < 12; i++) {
100 piece = edge[i]; 100 piece = edge[i];
101 eo += (piece & _eobit) >> _eoshift; 101 eo += (piece & EOBIT) >> EOSHIFT;
102 } 102 }
103 if (eo % 2 != 0) 103 if (eo % 2 != 0)
104 goto issolvable_eo; 104 goto issolvable_eo;
@@ -106,7 +106,7 @@ issolvable(cube_t cube)
106 co = 0; 106 co = 0;
107 for (i = 0; i < 8; i++) { 107 for (i = 0; i < 8; i++) {
108 piece = corner[i]; 108 piece = corner[i];
109 co += (piece & _cobits) >> _coshift; 109 co += (piece & COBITS) >> COSHIFT;
110 } 110 }
111 if (co % 3 != 0) 111 if (co % 3 != 0)
112 goto issolvable_co; 112 goto issolvable_co;
@@ -136,15 +136,15 @@ iserror(cube_t cube)
136 return equal(cube, zero); 136 return equal(cube, zero);
137} 137}
138 138
139_static void 139STATIC void
140getcube_fix(int64_t *ep, int64_t *eo, int64_t *cp, int64_t *co) 140getcube_fix(int64_t *ep, int64_t *eo, int64_t *cp, int64_t *co)
141{ 141{
142 uint8_t e[12], c[8], coarr[8]; 142 uint8_t e[12], c[8], coarr[8];
143 143
144 *ep = (*ep % _12f + _12f) % _12f; 144 *ep = (*ep % FACT_12 + FACT_12) % FACT_12;
145 *eo = (*eo % _2p11 + _2p11) % _2p11; 145 *eo = (*eo % POW_2_11 + POW_2_11) % POW_2_11;
146 *cp = (*cp % _8f + _8f) % _8f; 146 *cp = (*cp % FACT_8 + FACT_8) % FACT_8;
147 *co = (*cp % _3p7 + _3p7) % _3p7; 147 *co = (*cp % POW_3_7 + POW_3_7) % POW_3_7;
148 148
149 indextoperm(*ep, 12, e); 149 indextoperm(*ep, 12, e);
150 indextoperm(*cp, 8, c); 150 indextoperm(*cp, 8, c);
@@ -158,24 +158,24 @@ getcube_fix(int64_t *ep, int64_t *eo, int64_t *cp, int64_t *co)
158 } 158 }
159} 159}
160 160
161_static cube_t 161STATIC cube_t
162getcube(int64_t ep, int64_t eo, int64_t cp, int64_t co) 162getcube(int64_t ep, int64_t eo, int64_t cp, int64_t co)
163{ 163{
164 uint8_t i, earr[12], carr[8], eoarr[12], coarr[8]; 164 uint8_t i, earr[12], carr[8], eoarr[12], coarr[8];
165 165
166 sumzerotodigits(eo, 12, 2, eoarr); 166 sumzerotodigits(eo, 12, 2, eoarr);
167 DBG_ASSERT(eoarr[0] != _error, zero, "Error making EO"); 167 DBG_ASSERT(eoarr[0] != UINT8_ERROR, zero, "Error making EO");
168 indextoperm(ep, 12, earr); 168 indextoperm(ep, 12, earr);
169 DBG_ASSERT(earr[0] != _error, zero, "Error making EP"); 169 DBG_ASSERT(earr[0] != UINT8_ERROR, zero, "Error making EP");
170 for (i = 0; i < 12; i++) 170 for (i = 0; i < 12; i++)
171 earr[i] |= eoarr[i] << _eoshift; 171 earr[i] |= eoarr[i] << EOSHIFT;
172 172
173 sumzerotodigits(co, 8, 3, coarr); 173 sumzerotodigits(co, 8, 3, coarr);
174 DBG_ASSERT(coarr[0] != _error, zero, "Error making CO"); 174 DBG_ASSERT(coarr[0] != UINT8_ERROR, zero, "Error making CO");
175 indextoperm(cp, 8, carr); 175 indextoperm(cp, 8, carr);
176 DBG_ASSERT(carr[0] != _error, zero, "Error making CP"); 176 DBG_ASSERT(carr[0] != UINT8_ERROR, zero, "Error making CP");
177 for (i = 0; i < 8; i++) 177 for (i = 0; i < 8; i++)
178 carr[i] |= coarr[i] << _coshift; 178 carr[i] |= coarr[i] << COSHIFT;
179 179
180 return cubefromarray(carr, earr); 180 return cubefromarray(carr, earr);
181} 181}

Generated with cgit - Back to sebastiano.tronto.net