aboutsummaryrefslogtreecommitdiff
path: root/src/constants.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-05-10 09:10:12 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-05-10 09:10:12 +0200
commita660922d738b78b11fc78207daabea031058f710 (patch)
treedb46bd95bffeb330cea6066c77f2709f96c033aa /src/constants.h
parent75966319fd5891c2c1bd35b1f7c93eab172fd28e (diff)
downloadnissy-core-a660922d738b78b11fc78207daabea031058f710.tar.gz
nissy-core-a660922d738b78b11fc78207daabea031058f710.zip
Split into .h files
Diffstat (limited to '')
-rw-r--r--src/constants.h530
1 files changed, 530 insertions, 0 deletions
diff --git a/src/constants.h b/src/constants.h
new file mode 100644
index 0000000..df444b1
--- /dev/null
+++ b/src/constants.h
@@ -0,0 +1,530 @@
1#define _2p11 2048U
2#define _2p12 4096U
3#define _3p7 2187U
4#define _3p8 6561U
5#define _12c4 495U
6#define _8c4 70U
7
8#define COCSEP_CLASSES 3393U
9
10_static int64_t binomial[12][12] = {
11 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
12 {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
13 {1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
14 {1, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0},
15 {1, 4, 6, 4, 1, 0, 0, 0, 0, 0, 0, 0},
16 {1, 5, 10, 10, 5, 1, 0, 0, 0, 0, 0, 0},
17 {1, 6, 15, 20, 15, 6, 1, 0, 0, 0, 0, 0},
18 {1, 7, 21, 35, 35, 21, 7, 1, 0, 0, 0, 0},
19 {1, 8, 28, 56, 70, 56, 28, 8, 1, 0, 0, 0},
20 {1, 9, 36, 84, 126, 126, 84, 36, 9, 1, 0, 0},
21 {1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1, 0},
22 {1, 11, 55, 165, 330, 462, 462, 330, 165, 55, 11, 1},
23};
24
25#define _move_U 0U
26#define _move_U2 1U
27#define _move_U3 2U
28#define _move_D 3U
29#define _move_D2 4U
30#define _move_D3 5U
31#define _move_R 6U
32#define _move_R2 7U
33#define _move_R3 8U
34#define _move_L 9U
35#define _move_L2 10U
36#define _move_L3 11U
37#define _move_F 12U
38#define _move_F2 13U
39#define _move_F3 14U
40#define _move_B 15U
41#define _move_B2 16U
42#define _move_B3 17U
43
44#define _trans_UFr 0
45#define _trans_ULr 1
46#define _trans_UBr 2
47#define _trans_URr 3
48#define _trans_DFr 4
49#define _trans_DLr 5
50#define _trans_DBr 6
51#define _trans_DRr 7
52#define _trans_RUr 8
53#define _trans_RFr 9
54#define _trans_RDr 10
55#define _trans_RBr 11
56#define _trans_LUr 12
57#define _trans_LFr 13
58#define _trans_LDr 14
59#define _trans_LBr 15
60#define _trans_FUr 16
61#define _trans_FRr 17
62#define _trans_FDr 18
63#define _trans_FLr 19
64#define _trans_BUr 20
65#define _trans_BRr 21
66#define _trans_BDr 22
67#define _trans_BLr 23
68
69#define _trans_UFm 24
70#define _trans_ULm 25
71#define _trans_UBm 26
72#define _trans_URm 27
73#define _trans_DFm 28
74#define _trans_DLm 29
75#define _trans_DBm 30
76#define _trans_DRm 31
77#define _trans_RUm 32
78#define _trans_RFm 33
79#define _trans_RDm 34
80#define _trans_RBm 35
81#define _trans_LUm 36
82#define _trans_LFm 37
83#define _trans_LDm 38
84#define _trans_LBm 39
85#define _trans_FUm 40
86#define _trans_FRm 41
87#define _trans_FDm 42
88#define _trans_FLm 43
89#define _trans_BUm 44
90#define _trans_BRm 45
91#define _trans_BDm 46
92#define _trans_BLm 47
93
94#define _c_ufr 0U
95#define _c_ubl 1U
96#define _c_dfl 2U
97#define _c_dbr 3U
98#define _c_ufl 4U
99#define _c_ubr 5U
100#define _c_dfr 6U
101#define _c_dbl 7U
102
103#define _e_uf 0U
104#define _e_ub 1U
105#define _e_db 2U
106#define _e_df 3U
107#define _e_ur 4U
108#define _e_ul 5U
109#define _e_dl 6U
110#define _e_dr 7U
111#define _e_fr 8U
112#define _e_fl 9U
113#define _e_bl 10U
114#define _e_br 11U
115
116#define _eoshift 4U
117#define _coshift 5U
118
119#define _pbits 0xFU
120#define _esepbit1 0x4U
121#define _esepbit2 0x8U
122#define _csepbit 0x4U
123#define _eobit 0x10U
124#define _cobits 0xF0U
125#define _cobits2 0x60U
126#define _ctwist_cw 0x20U
127#define _ctwist_ccw 0x40U
128#define _eflip 0x10U
129#define _error 0xFFU
130
131_static cube_t zero = { .corner = {0}, .edge = {0} };
132_static cube_t solved = {
133 .corner = {0, 1, 2, 3, 4, 5, 6, 7},
134 .edge = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
135};
136
137#define zero_fast fastcube( \
138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
139#define solved_fast fastcube( \
140 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
141
142#define _move_cube_U fastcube( \
143 5, 4, 2, 3, 0, 1, 6, 7, 4, 5, 2, 3, 1, 0, 6, 7, 8, 9, 10, 11)
144#define _move_cube_U2 fastcube( \
145 1, 0, 2, 3, 5, 4, 6, 7, 1, 0, 2, 3, 5, 4, 6, 7, 8, 9, 10, 11)
146#define _move_cube_U3 fastcube( \
147 4, 5, 2, 3, 1, 0, 6, 7, 5, 4, 2, 3, 0, 1, 6, 7, 8, 9, 10, 11)
148#define _move_cube_D fastcube( \
149 0, 1, 7, 6, 4, 5, 2, 3, 0, 1, 7, 6, 4, 5, 2, 3, 8, 9, 10, 11)
150#define _move_cube_D2 fastcube( \
151 0, 1, 3, 2, 4, 5, 7, 6, 0, 1, 3, 2, 4, 5, 7, 6, 8, 9, 10, 11)
152#define _move_cube_D3 fastcube( \
153 0, 1, 6, 7, 4, 5, 3, 2, 0, 1, 6, 7, 4, 5, 3, 2, 8, 9, 10, 11)
154#define _move_cube_R fastcube( \
155 70, 1, 2, 69, 4, 32, 35, 7, 0, 1, 2, 3, 8, 5, 6, 11, 7, 9, 10, 4)
156#define _move_cube_R2 fastcube( \
157 3, 1, 2, 0, 4, 6, 5, 7, 0, 1, 2, 3, 7, 5, 6, 4, 11, 9, 10, 8)
158#define _move_cube_R3 fastcube( \
159 69, 1, 2, 70, 4, 35, 32, 7, 0, 1, 2, 3, 11, 5, 6, 8, 4, 9, 10, 7)
160#define _move_cube_L fastcube( \
161 0, 71, 68, 3, 33, 5, 6, 34, 0, 1, 2, 3, 4, 10, 9, 7, 8, 5, 6, 11)
162#define _move_cube_L2 fastcube( \
163 0, 2, 1, 3, 7, 5, 6, 4, 0, 1, 2, 3, 4, 6, 5, 7, 8, 10, 9, 11)
164#define _move_cube_L3 fastcube( \
165 0, 68, 71, 3, 34, 5, 6, 33, 0, 1, 2, 3, 4, 9, 10, 7, 8, 6, 5, 11)
166#define _move_cube_F fastcube( \
167 36, 1, 38, 3, 66, 5, 64, 7, 25, 1, 2, 24, 4, 5, 6, 7, 16, 19, 10, 11)
168#define _move_cube_F2 fastcube( \
169 2, 1, 0, 3, 6, 5, 4, 7, 3, 1, 2, 0, 4, 5, 6, 7, 9, 8, 10, 11)
170#define _move_cube_F3 fastcube( \
171 38, 1, 36, 3, 64, 5, 66, 7, 24, 1, 2, 25, 4, 5, 6, 7, 19, 16, 10, 11)
172#define _move_cube_B fastcube( \
173 0, 37, 2, 39, 4, 67, 6, 65, 0, 27, 26, 3, 4, 5, 6, 7, 8, 9, 17, 18)
174#define _move_cube_B2 fastcube( \
175 0, 3, 2, 1, 4, 7, 6, 5, 0, 2, 1, 3, 4, 5, 6, 7, 8, 9, 11, 10)
176#define _move_cube_B3 fastcube( \
177 0, 39, 2, 37, 4, 65, 6, 67, 0, 26, 27, 3, 4, 5, 6, 7, 8, 9, 18, 17)
178
179#define _trans_cube_UFr fastcube( \
180 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
181#define _trans_cube_UFr_inverse fastcube( \
182 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
183#define _trans_cube_ULr fastcube( \
184 4, 5, 7, 6, 1, 0, 2, 3, 5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24)
185#define _trans_cube_ULr_inverse fastcube( \
186 5, 4, 6, 7, 0, 1, 3, 2, 4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26)
187#define _trans_cube_UBr fastcube( \
188 1, 0, 3, 2, 5, 4, 7, 6, 1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9)
189#define _trans_cube_UBr_inverse fastcube( \
190 1, 0, 3, 2, 5, 4, 7, 6, 1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9)
191#define _trans_cube_URr fastcube( \
192 5, 4, 6, 7, 0, 1, 3, 2, 4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26)
193#define _trans_cube_URr_inverse fastcube( \
194 4, 5, 7, 6, 1, 0, 2, 3, 5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24)
195#define _trans_cube_DFr fastcube( \
196 2, 3, 0, 1, 6, 7, 4, 5, 3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10)
197#define _trans_cube_DFr_inverse fastcube( \
198 2, 3, 0, 1, 6, 7, 4, 5, 3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10)
199#define _trans_cube_DLr fastcube( \
200 7, 6, 4, 5, 2, 3, 1, 0, 6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27)
201#define _trans_cube_DLr_inverse fastcube( \
202 7, 6, 4, 5, 2, 3, 1, 0, 6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27)
203#define _trans_cube_DBr fastcube( \
204 3, 2, 1, 0, 7, 6, 5, 4, 2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8)
205#define _trans_cube_DBr_inverse fastcube( \
206 3, 2, 1, 0, 7, 6, 5, 4, 2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8)
207#define _trans_cube_DRr fastcube( \
208 6, 7, 5, 4, 3, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25)
209#define _trans_cube_DRr_inverse fastcube( \
210 6, 7, 5, 4, 3, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25)
211#define _trans_cube_RUr fastcube( \
212 64, 67, 65, 66, 37, 38, 36, 39, 20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3)
213#define _trans_cube_RUr_inverse fastcube( \
214 32, 34, 35, 33, 70, 68, 69, 71, 8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21)
215#define _trans_cube_RFr fastcube( \
216 38, 37, 36, 39, 64, 67, 66, 65, 24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18)
217#define _trans_cube_RFr_inverse fastcube( \
218 36, 39, 38, 37, 66, 65, 64, 67, 25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17)
219#define _trans_cube_RDr fastcube( \
220 67, 64, 66, 65, 38, 37, 39, 36, 23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1)
221#define _trans_cube_RDr_inverse fastcube( \
222 33, 35, 34, 32, 71, 69, 68, 70, 10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20)
223#define _trans_cube_RBr fastcube( \
224 37, 38, 39, 36, 67, 64, 65, 66, 27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16)
225#define _trans_cube_RBr_inverse fastcube( \
226 37, 38, 39, 36, 67, 64, 65, 66, 27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16)
227#define _trans_cube_LUr fastcube( \
228 65, 66, 64, 67, 36, 39, 37, 38, 21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2)
229#define _trans_cube_LUr_inverse fastcube( \
230 34, 32, 33, 35, 68, 70, 71, 69, 9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23)
231#define _trans_cube_LFr fastcube( \
232 36, 39, 38, 37, 66, 65, 64, 67, 25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17)
233#define _trans_cube_LFr_inverse fastcube( \
234 38, 37, 36, 39, 64, 67, 66, 65, 24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18)
235#define _trans_cube_LDr fastcube( \
236 66, 65, 67, 64, 39, 36, 38, 37, 22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0)
237#define _trans_cube_LDr_inverse fastcube( \
238 35, 33, 32, 34, 69, 71, 70, 68, 11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22)
239#define _trans_cube_LBr fastcube( \
240 39, 36, 37, 38, 65, 66, 67, 64, 26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19)
241#define _trans_cube_LBr_inverse fastcube( \
242 39, 36, 37, 38, 65, 66, 67, 64, 26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19)
243#define _trans_cube_FUr fastcube( \
244 68, 70, 69, 71, 32, 34, 33, 35, 16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6)
245#define _trans_cube_FUr_inverse fastcube( \
246 68, 70, 69, 71, 32, 34, 33, 35, 16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6)
247#define _trans_cube_FRr fastcube( \
248 32, 34, 35, 33, 70, 68, 69, 71, 8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21)
249#define _trans_cube_FRr_inverse fastcube( \
250 64, 67, 65, 66, 37, 38, 36, 39, 20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3)
251#define _trans_cube_FDr fastcube( \
252 70, 68, 71, 69, 34, 32, 35, 33, 19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4)
253#define _trans_cube_FDr_inverse fastcube( \
254 69, 71, 68, 70, 33, 35, 32, 34, 17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7)
255#define _trans_cube_FLr fastcube( \
256 34, 32, 33, 35, 68, 70, 71, 69, 9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23)
257#define _trans_cube_FLr_inverse fastcube( \
258 65, 66, 64, 67, 36, 39, 37, 38, 21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2)
259#define _trans_cube_BUr fastcube( \
260 69, 71, 68, 70, 33, 35, 32, 34, 17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7)
261#define _trans_cube_BUr_inverse fastcube( \
262 70, 68, 71, 69, 34, 32, 35, 33, 19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4)
263#define _trans_cube_BRr fastcube( \
264 35, 33, 32, 34, 69, 71, 70, 68, 11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22)
265#define _trans_cube_BRr_inverse fastcube( \
266 66, 65, 67, 64, 39, 36, 38, 37, 22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0)
267#define _trans_cube_BDr fastcube( \
268 71, 69, 70, 68, 35, 33, 34, 32, 18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5)
269#define _trans_cube_BDr_inverse fastcube( \
270 71, 69, 70, 68, 35, 33, 34, 32, 18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5)
271#define _trans_cube_BLr fastcube( \
272 33, 35, 34, 32, 71, 69, 68, 70, 10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20)
273#define _trans_cube_BLr_inverse fastcube( \
274 67, 64, 66, 65, 38, 37, 39, 36, 23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1)
275#define _trans_cube_UFm fastcube( \
276 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10)
277#define _trans_cube_UFm_inverse fastcube( \
278 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10)
279#define _trans_cube_ULm fastcube( \
280 0, 1, 3, 2, 5, 4, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25)
281#define _trans_cube_ULm_inverse fastcube( \
282 0, 1, 3, 2, 5, 4, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25)
283#define _trans_cube_UBm fastcube( \
284 5, 4, 7, 6, 1, 0, 3, 2, 1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8)
285#define _trans_cube_UBm_inverse fastcube( \
286 5, 4, 7, 6, 1, 0, 3, 2, 1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8)
287#define _trans_cube_URm fastcube( \
288 1, 0, 2, 3, 4, 5, 7, 6, 5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27)
289#define _trans_cube_URm_inverse fastcube( \
290 1, 0, 2, 3, 4, 5, 7, 6, 5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27)
291#define _trans_cube_DFm fastcube( \
292 6, 7, 4, 5, 2, 3, 0, 1, 3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11)
293#define _trans_cube_DFm_inverse fastcube( \
294 6, 7, 4, 5, 2, 3, 0, 1, 3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11)
295#define _trans_cube_DLm fastcube( \
296 3, 2, 0, 1, 6, 7, 5, 4, 7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26)
297#define _trans_cube_DLm_inverse fastcube( \
298 2, 3, 1, 0, 7, 6, 4, 5, 6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24)
299#define _trans_cube_DBm fastcube( \
300 7, 6, 5, 4, 3, 2, 1, 0, 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9)
301#define _trans_cube_DBm_inverse fastcube( \
302 7, 6, 5, 4, 3, 2, 1, 0, 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9)
303#define _trans_cube_DRm fastcube( \
304 2, 3, 1, 0, 7, 6, 4, 5, 6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24)
305#define _trans_cube_DRm_inverse fastcube( \
306 3, 2, 0, 1, 6, 7, 5, 4, 7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26)
307#define _trans_cube_RUm fastcube( \
308 68, 71, 69, 70, 33, 34, 32, 35, 21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3)
309#define _trans_cube_RUm_inverse fastcube( \
310 70, 68, 69, 71, 32, 34, 35, 33, 8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22)
311#define _trans_cube_RFm fastcube( \
312 34, 33, 32, 35, 68, 71, 70, 69, 25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18)
313#define _trans_cube_RFm_inverse fastcube( \
314 66, 65, 64, 67, 36, 39, 38, 37, 25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18)
315#define _trans_cube_RDm fastcube( \
316 71, 68, 70, 69, 34, 33, 35, 32, 22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1)
317#define _trans_cube_RDm_inverse fastcube( \
318 71, 69, 68, 70, 33, 35, 34, 32, 10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23)
319#define _trans_cube_RBm fastcube( \
320 33, 34, 35, 32, 71, 68, 69, 70, 26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16)
321#define _trans_cube_RBm_inverse fastcube( \
322 67, 64, 65, 66, 37, 38, 39, 36, 27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19)
323#define _trans_cube_LUm fastcube( \
324 69, 70, 68, 71, 32, 35, 33, 34, 20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2)
325#define _trans_cube_LUm_inverse fastcube( \
326 68, 70, 71, 69, 34, 32, 33, 35, 9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20)
327#define _trans_cube_LFm fastcube( \
328 32, 35, 34, 33, 70, 69, 68, 71, 24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17)
329#define _trans_cube_LFm_inverse fastcube( \
330 64, 67, 66, 65, 38, 37, 36, 39, 24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17)
331#define _trans_cube_LDm fastcube( \
332 70, 69, 71, 68, 35, 32, 34, 33, 23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0)
333#define _trans_cube_LDm_inverse fastcube( \
334 69, 71, 70, 68, 35, 33, 32, 34, 11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21)
335#define _trans_cube_LBm fastcube( \
336 35, 32, 33, 34, 69, 70, 71, 68, 27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19)
337#define _trans_cube_LBm_inverse fastcube( \
338 65, 66, 67, 64, 39, 36, 37, 38, 26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16)
339#define _trans_cube_FUm fastcube( \
340 64, 66, 65, 67, 36, 38, 37, 39, 16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7)
341#define _trans_cube_FUm_inverse fastcube( \
342 32, 34, 33, 35, 68, 70, 69, 71, 16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7)
343#define _trans_cube_FRm fastcube( \
344 36, 38, 39, 37, 66, 64, 65, 67, 9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20)
345#define _trans_cube_FRm_inverse fastcube( \
346 37, 38, 36, 39, 64, 67, 65, 66, 20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2)
347#define _trans_cube_FDm fastcube( \
348 66, 64, 67, 65, 38, 36, 39, 37, 19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5)
349#define _trans_cube_FDm_inverse fastcube( \
350 33, 35, 32, 34, 69, 71, 68, 70, 17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6)
351#define _trans_cube_FLm fastcube( \
352 38, 36, 37, 39, 64, 66, 67, 65, 8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22)
353#define _trans_cube_FLm_inverse fastcube( \
354 36, 39, 37, 38, 65, 66, 64, 67, 21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3)
355#define _trans_cube_BUm fastcube( \
356 65, 67, 64, 66, 37, 39, 36, 38, 17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6)
357#define _trans_cube_BUm_inverse fastcube( \
358 34, 32, 35, 33, 70, 68, 71, 69, 19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5)
359#define _trans_cube_BRm fastcube( \
360 39, 37, 36, 38, 65, 67, 66, 64, 10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23)
361#define _trans_cube_BRm_inverse fastcube( \
362 39, 36, 38, 37, 66, 65, 67, 64, 22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1)
363#define _trans_cube_BDm fastcube( \
364 67, 65, 66, 64, 39, 37, 38, 36, 18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4)
365#define _trans_cube_BDm_inverse fastcube( \
366 35, 33, 34, 32, 71, 69, 70, 68, 18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4)
367#define _trans_cube_BLm fastcube( \
368 37, 39, 38, 36, 67, 65, 64, 66, 11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21)
369#define _trans_cube_BLm_inverse fastcube( \
370 38, 37, 39, 36, 67, 64, 66, 65, 23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0)
371
372_static const char *cornerstr[] = {
373 [_c_ufr] = "UFR",
374 [_c_ubl] = "UBL",
375 [_c_dfl] = "DFL",
376 [_c_dbr] = "DBR",
377 [_c_ufl] = "UFL",
378 [_c_ubr] = "UBR",
379 [_c_dfr] = "DFR",
380 [_c_dbl] = "DBL"
381};
382
383_static const char *cornerstralt[] = {
384 [_c_ufr] = "URF",
385 [_c_ubl] = "ULB",
386 [_c_dfl] = "DLF",
387 [_c_dbr] = "DRB",
388 [_c_ufl] = "ULF",
389 [_c_ubr] = "URB",
390 [_c_dfr] = "DRF",
391 [_c_dbl] = "DLB"
392};
393
394_static const char *edgestr[] = {
395 [_e_uf] = "UF",
396 [_e_ub] = "UB",
397 [_e_db] = "DB",
398 [_e_df] = "DF",
399 [_e_ur] = "UR",
400 [_e_ul] = "UL",
401 [_e_dl] = "DL",
402 [_e_dr] = "DR",
403 [_e_fr] = "FR",
404 [_e_fl] = "FL",
405 [_e_bl] = "BL",
406 [_e_br] = "BR"
407};
408
409_static const char *movestr[] = {
410 [_move_U] = "U",
411 [_move_U2] = "U2",
412 [_move_U3] = "U'",
413 [_move_D] = "D",
414 [_move_D2] = "D2",
415 [_move_D3] = "D'",
416 [_move_R] = "R",
417 [_move_R2] = "R2",
418 [_move_R3] = "R'",
419 [_move_L] = "L",
420 [_move_L2] = "L2",
421 [_move_L3] = "L'",
422 [_move_F] = "F",
423 [_move_F2] = "F2",
424 [_move_F3] = "F'",
425 [_move_B] = "B",
426 [_move_B2] = "B2",
427 [_move_B3] = "B'",
428};
429
430_static const char *transstr[] = {
431 [_trans_UFr] = "rotation UF",
432 [_trans_UFm] = "mirrored UF",
433 [_trans_ULr] = "rotation UL",
434 [_trans_ULm] = "mirrored UL",
435 [_trans_UBr] = "rotation UB",
436 [_trans_UBm] = "mirrored UB",
437 [_trans_URr] = "rotation UR",
438 [_trans_URm] = "mirrored UR",
439 [_trans_DFr] = "rotation DF",
440 [_trans_DFm] = "mirrored DF",
441 [_trans_DLr] = "rotation DL",
442 [_trans_DLm] = "mirrored DL",
443 [_trans_DBr] = "rotation DB",
444 [_trans_DBm] = "mirrored DB",
445 [_trans_DRr] = "rotation DR",
446 [_trans_DRm] = "mirrored DR",
447 [_trans_RUr] = "rotation RU",
448 [_trans_RUm] = "mirrored RU",
449 [_trans_RFr] = "rotation RF",
450 [_trans_RFm] = "mirrored RF",
451 [_trans_RDr] = "rotation RD",
452 [_trans_RDm] = "mirrored RD",
453 [_trans_RBr] = "rotation RB",
454 [_trans_RBm] = "mirrored RB",
455 [_trans_LUr] = "rotation LU",
456 [_trans_LUm] = "mirrored LU",
457 [_trans_LFr] = "rotation LF",
458 [_trans_LFm] = "mirrored LF",
459 [_trans_LDr] = "rotation LD",
460 [_trans_LDm] = "mirrored LD",
461 [_trans_LBr] = "rotation LB",
462 [_trans_LBm] = "mirrored LB",
463 [_trans_FUr] = "rotation FU",
464 [_trans_FUm] = "mirrored FU",
465 [_trans_FRr] = "rotation FR",
466 [_trans_FRm] = "mirrored FR",
467 [_trans_FDr] = "rotation FD",
468 [_trans_FDm] = "mirrored FD",
469 [_trans_FLr] = "rotation FL",
470 [_trans_FLm] = "mirrored FL",
471 [_trans_BUr] = "rotation BU",
472 [_trans_BUm] = "mirrored BU",
473 [_trans_BRr] = "rotation BR",
474 [_trans_BRm] = "mirrored BR",
475 [_trans_BDr] = "rotation BD",
476 [_trans_BDm] = "mirrored BD",
477 [_trans_BLr] = "rotation BL",
478 [_trans_BLm] = "mirrored BL",
479};
480
481static uint8_t inverse_trans_table[48] = {
482 [_trans_UFr] = _trans_UFr,
483 [_trans_UFm] = _trans_UFm,
484 [_trans_ULr] = _trans_URr,
485 [_trans_ULm] = _trans_ULm,
486 [_trans_UBr] = _trans_UBr,
487 [_trans_UBm] = _trans_UBm,
488 [_trans_URr] = _trans_ULr,
489 [_trans_URm] = _trans_URm,
490 [_trans_DFr] = _trans_DFr,
491 [_trans_DFm] = _trans_DFm,
492 [_trans_DLr] = _trans_DLr,
493 [_trans_DLm] = _trans_DRm,
494 [_trans_DBr] = _trans_DBr,
495 [_trans_DBm] = _trans_DBm,
496 [_trans_DRr] = _trans_DRr,
497 [_trans_DRm] = _trans_DLm,
498 [_trans_RUr] = _trans_FRr,
499 [_trans_RUm] = _trans_FLm,
500 [_trans_RFr] = _trans_LFr,
501 [_trans_RFm] = _trans_RFm,
502 [_trans_RDr] = _trans_BLr,
503 [_trans_RDm] = _trans_BRm,
504 [_trans_RBr] = _trans_RBr,
505 [_trans_RBm] = _trans_LBm,
506 [_trans_LUr] = _trans_FLr,
507 [_trans_LUm] = _trans_FRm,
508 [_trans_LFr] = _trans_RFr,
509 [_trans_LFm] = _trans_LFm,
510 [_trans_LDr] = _trans_BRr,
511 [_trans_LDm] = _trans_BLm,
512 [_trans_LBr] = _trans_LBr,
513 [_trans_LBm] = _trans_RBm,
514 [_trans_FUr] = _trans_FUr,
515 [_trans_FUm] = _trans_FUm,
516 [_trans_FRr] = _trans_RUr,
517 [_trans_FRm] = _trans_LUm,
518 [_trans_FDr] = _trans_BUr,
519 [_trans_FDm] = _trans_BUm,
520 [_trans_FLr] = _trans_LUr,
521 [_trans_FLm] = _trans_RUm,
522 [_trans_BUr] = _trans_FDr,
523 [_trans_BUm] = _trans_FDm,
524 [_trans_BRr] = _trans_LDr,
525 [_trans_BRm] = _trans_RDm,
526 [_trans_BDr] = _trans_BDr,
527 [_trans_BDm] = _trans_BDm,
528 [_trans_BLr] = _trans_RDr,
529 [_trans_BLm] = _trans_LDm,
530};

Generated with cgit - Back to sebastiano.tronto.net