aboutsummaryrefslogtreecommitdiff
path: root/src/_moves_arr.c
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2023-11-05 16:29:14 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2023-11-05 16:37:39 +0100
commit1964938ca6abef6e5c81d9dccdf42c55abacb5e9 (patch)
tree9908417751ddf22e45ea68da0f209083249ac08e /src/_moves_arr.c
parent9c1659d91a331735f88c127aa236a59153e23dfc (diff)
downloadnissy-core-1964938ca6abef6e5c81d9dccdf42c55abacb5e9.tar.gz
nissy-core-1964938ca6abef6e5c81d9dccdf42c55abacb5e9.zip
Refactoring
Diffstat (limited to 'src/_moves_arr.c')
-rw-r--r--src/_moves_arr.c264
1 files changed, 0 insertions, 264 deletions
diff --git a/src/_moves_arr.c b/src/_moves_arr.c
deleted file mode 100644
index bea0fee..0000000
--- a/src/_moves_arr.c
+++ /dev/null
@@ -1,264 +0,0 @@
1#define PERM4(r, i, j, k, l) \
2 aux = r[i]; \
3 r[i] = r[l]; \
4 r[l] = r[k]; \
5 r[k] = r[j]; \
6 r[j] = aux;
7#define PERM22(r, i, j, k, l) \
8 aux = r[i]; \
9 r[i] = r[j]; \
10 r[j] = aux; \
11 aux = r[k]; \
12 r[k] = r[l]; \
13 r[l] = aux;
14#define CO(a, b) \
15 aux = (a & _cobits) + (b & _cobits); \
16 auy = (aux + _ctwist_cw) >> 2U; \
17 auz = (aux + auy) & _cobits2; \
18 a = (a & _pbits) | auz;
19#define CO4(r, i, j, k, l) \
20 CO(r[i], _ctwist_cw) \
21 CO(r[j], _ctwist_cw) \
22 CO(r[k], _ctwist_ccw) \
23 CO(r[l], _ctwist_ccw)
24#define EO4(r, i, j, k, l) \
25 r[i] ^= _eobit; \
26 r[j] ^= _eobit; \
27 r[k] ^= _eobit; \
28 r[l] ^= _eobit;
29
30static inline cube_t
31inline_move_U(cube_t c)
32{
33 uint8_t aux;
34 cube_t ret = c;
35
36 PERM4(ret.e, _e_uf, _e_ul, _e_ub, _e_ur)
37 PERM4(ret.c, _c_ufr, _c_ufl, _c_ubl, _c_ubr)
38
39 return ret;
40}
41
42static inline cube_t
43inline_move_U2(cube_t c)
44{
45 uint8_t aux;
46 cube_t ret = c;
47
48 PERM22(ret.e, _e_uf, _e_ub, _e_ul, _e_ur)
49 PERM22(ret.c, _c_ufr, _c_ubl, _c_ufl, _c_ubr)
50
51 return ret;
52}
53
54static inline cube_t
55inline_move_U3(cube_t c)
56{
57 uint8_t aux;
58 cube_t ret = c;
59
60 PERM4(ret.e, _e_uf, _e_ur, _e_ub, _e_ul)
61 PERM4(ret.c, _c_ufr, _c_ubr, _c_ubl, _c_ufl)
62
63 return ret;
64}
65
66static inline cube_t
67inline_move_D(cube_t c)
68{
69 uint8_t aux;
70 cube_t ret = c;
71
72 PERM4(ret.e, _e_df, _e_dr, _e_db, _e_dl)
73 PERM4(ret.c, _c_dfr, _c_dbr, _c_dbl, _c_dfl)
74
75 return ret;
76}
77
78static inline cube_t
79inline_move_D2(cube_t c)
80{
81 uint8_t aux;
82 cube_t ret = c;
83
84 PERM22(ret.e, _e_df, _e_db, _e_dr, _e_dl)
85 PERM22(ret.c, _c_dfr, _c_dbl, _c_dbr, _c_dfl)
86
87 return ret;
88}
89
90static inline cube_t
91inline_move_D3(cube_t c)
92{
93 uint8_t aux;
94 cube_t ret = c;
95
96 PERM4(ret.e, _e_df, _e_dl, _e_db, _e_dr)
97 PERM4(ret.c, _c_dfr, _c_dfl, _c_dbl, _c_dbr)
98
99 return ret;
100}
101
102static inline cube_t
103inline_move_R(cube_t c)
104{
105 uint8_t aux, auy, auz;
106 cube_t ret = c;
107
108 PERM4(ret.e, _e_ur, _e_br, _e_dr, _e_fr)
109 PERM4(ret.c, _c_ufr, _c_ubr, _c_dbr, _c_dfr)
110
111 CO4(ret.c, _c_ubr, _c_dfr, _c_ufr, _c_dbr)
112
113 return ret;
114}
115
116static inline cube_t
117inline_move_R2(cube_t c)
118{
119 uint8_t aux;
120 cube_t ret = c;
121
122 PERM22(ret.e, _e_ur, _e_dr, _e_fr, _e_br)
123 PERM22(ret.c, _c_ufr, _c_dbr, _c_ubr, _c_dfr)
124
125 return ret;
126}
127
128static inline cube_t
129inline_move_R3(cube_t c)
130{
131 uint8_t aux, auy, auz;
132 cube_t ret = c;
133
134 PERM4(ret.e, _e_ur, _e_fr, _e_dr, _e_br)
135 PERM4(ret.c, _c_ufr, _c_dfr, _c_dbr, _c_ubr)
136
137 CO4(ret.c, _c_ubr, _c_dfr, _c_ufr, _c_dbr)
138
139 return ret;
140}
141
142static inline cube_t
143inline_move_L(cube_t c)
144{
145 uint8_t aux, auy, auz;
146 cube_t ret = c;
147
148 PERM4(ret.e, _e_ul, _e_fl, _e_dl, _e_bl)
149 PERM4(ret.c, _c_ufl, _c_dfl, _c_dbl, _c_ubl)
150
151 CO4(ret.c, _c_ufl, _c_dbl, _c_dfl, _c_ubl)
152
153 return ret;
154}
155
156static inline cube_t
157inline_move_L2(cube_t c)
158{
159 uint8_t aux;
160 cube_t ret = c;
161
162 PERM22(ret.e, _e_ul, _e_dl, _e_fl, _e_bl)
163 PERM22(ret.c, _c_ufl, _c_dbl, _c_ubl, _c_dfl)
164
165 return ret;
166}
167
168static inline cube_t
169inline_move_L3(cube_t c)
170{
171 uint8_t aux, auy, auz;
172 cube_t ret = c;
173
174 PERM4(ret.e, _e_ul, _e_bl, _e_dl, _e_fl)
175 PERM4(ret.c, _c_ufl, _c_ubl, _c_dbl, _c_dfl)
176
177 CO4(ret.c, _c_ufl, _c_dbl, _c_dfl, _c_ubl)
178
179 return ret;
180}
181
182static inline cube_t
183inline_move_F(cube_t c)
184{
185 uint8_t aux, auy, auz;
186 cube_t ret = c;
187
188 PERM4(ret.e, _e_uf, _e_fr, _e_df, _e_fl)
189 PERM4(ret.c, _c_ufr, _c_dfr, _c_dfl, _c_ufl)
190
191 EO4(ret.e, _e_uf, _e_fr, _e_df, _e_fl)
192 CO4(ret.c, _c_ufr, _c_dfl, _c_dfr, _c_ufl)
193
194 return ret;
195}
196
197static inline cube_t
198inline_move_F2(cube_t c)
199{
200 uint8_t aux;
201 cube_t ret = c;
202
203 PERM22(ret.e, _e_uf, _e_df, _e_fr, _e_fl)
204 PERM22(ret.c, _c_ufr, _c_dfl, _c_ufl, _c_dfr)
205
206 return ret;
207}
208
209static inline cube_t
210inline_move_F3(cube_t c)
211{
212 uint8_t aux, auy, auz;
213 cube_t ret = c;
214
215 PERM4(ret.e, _e_uf, _e_fl, _e_df, _e_fr)
216 PERM4(ret.c, _c_ufr, _c_ufl, _c_dfl, _c_dfr)
217
218 EO4(ret.e, _e_uf, _e_fr, _e_df, _e_fl)
219 CO4(ret.c, _c_ufr, _c_dfl, _c_dfr, _c_ufl)
220
221 return ret;
222}
223
224static inline cube_t
225inline_move_B(cube_t c)
226{
227 uint8_t aux, auy, auz;
228 cube_t ret = c;
229
230 PERM4(ret.e, _e_ub, _e_bl, _e_db, _e_br)
231 PERM4(ret.c, _c_ubr, _c_ubl, _c_dbl, _c_dbr)
232
233 EO4(ret.e, _e_ub, _e_br, _e_db, _e_bl)
234 CO4(ret.c, _c_ubl, _c_dbr, _c_dbl, _c_ubr)
235
236 return ret;
237}
238
239static inline cube_t
240inline_move_B2(cube_t c)
241{
242 uint8_t aux;
243 cube_t ret = c;
244
245 PERM22(ret.e, _e_ub, _e_db, _e_br, _e_bl)
246 PERM22(ret.c, _c_ubr, _c_dbl, _c_ubl, _c_dbr)
247
248 return ret;
249}
250
251static inline cube_t
252inline_move_B3(cube_t c)
253{
254 uint8_t aux, auy, auz;
255 cube_t ret = c;
256
257 PERM4(ret.e, _e_ub, _e_br, _e_db, _e_bl)
258 PERM4(ret.c, _c_ubr, _c_dbr, _c_dbl, _c_ubl)
259
260 EO4(ret.e, _e_ub, _e_br, _e_db, _e_bl)
261 CO4(ret.c, _c_ubl, _c_dbr, _c_dbl, _c_ubr)
262
263 return ret;
264}

Generated with cgit - Back to sebastiano.tronto.net