aboutsummaryrefslogtreecommitdiff
path: root/src/core
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
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/constant_cubes.h228
-rw-r--r--src/core/cube.h68
-rw-r--r--src/core/io_cube.h98
-rw-r--r--src/core/io_moves.h26
-rw-r--r--src/core/io_trans.h10
-rw-r--r--src/core/moves.h122
-rw-r--r--src/core/transform.h229
-rw-r--r--src/core/transform_with_switch.h616
8 files changed, 688 insertions, 709 deletions
diff --git a/src/core/constant_cubes.h b/src/core/constant_cubes.h
index b7748d8..e6a9e88 100644
--- a/src/core/constant_cubes.h
+++ b/src/core/constant_cubes.h
@@ -1,229 +1,229 @@
1#define _move_cube_U static_cube( \ 1#define MOVE_CUBE_U static_cube( \
2 5, 4, 2, 3, 0, 1, 6, 7, 4, 5, 2, 3, 1, 0, 6, 7, 8, 9, 10, 11) 2 5, 4, 2, 3, 0, 1, 6, 7, 4, 5, 2, 3, 1, 0, 6, 7, 8, 9, 10, 11)
3#define _move_cube_U2 static_cube( \ 3#define MOVE_CUBE_U2 static_cube( \
4 1, 0, 2, 3, 5, 4, 6, 7, 1, 0, 2, 3, 5, 4, 6, 7, 8, 9, 10, 11) 4 1, 0, 2, 3, 5, 4, 6, 7, 1, 0, 2, 3, 5, 4, 6, 7, 8, 9, 10, 11)
5#define _move_cube_U3 static_cube( \ 5#define MOVE_CUBE_U3 static_cube( \
6 4, 5, 2, 3, 1, 0, 6, 7, 5, 4, 2, 3, 0, 1, 6, 7, 8, 9, 10, 11) 6 4, 5, 2, 3, 1, 0, 6, 7, 5, 4, 2, 3, 0, 1, 6, 7, 8, 9, 10, 11)
7#define _move_cube_D static_cube( \ 7#define MOVE_CUBE_D static_cube( \
8 0, 1, 7, 6, 4, 5, 2, 3, 0, 1, 7, 6, 4, 5, 2, 3, 8, 9, 10, 11) 8 0, 1, 7, 6, 4, 5, 2, 3, 0, 1, 7, 6, 4, 5, 2, 3, 8, 9, 10, 11)
9#define _move_cube_D2 static_cube( \ 9#define MOVE_CUBE_D2 static_cube( \
10 0, 1, 3, 2, 4, 5, 7, 6, 0, 1, 3, 2, 4, 5, 7, 6, 8, 9, 10, 11) 10 0, 1, 3, 2, 4, 5, 7, 6, 0, 1, 3, 2, 4, 5, 7, 6, 8, 9, 10, 11)
11#define _move_cube_D3 static_cube( \ 11#define MOVE_CUBE_D3 static_cube( \
12 0, 1, 6, 7, 4, 5, 3, 2, 0, 1, 6, 7, 4, 5, 3, 2, 8, 9, 10, 11) 12 0, 1, 6, 7, 4, 5, 3, 2, 0, 1, 6, 7, 4, 5, 3, 2, 8, 9, 10, 11)
13#define _move_cube_R static_cube( \ 13#define MOVE_CUBE_R static_cube( \
14 70, 1, 2, 69, 4, 32, 35, 7, 0, 1, 2, 3, 8, 5, 6, 11, 7, 9, 10, 4) 14 70, 1, 2, 69, 4, 32, 35, 7, 0, 1, 2, 3, 8, 5, 6, 11, 7, 9, 10, 4)
15#define _move_cube_R2 static_cube( \ 15#define MOVE_CUBE_R2 static_cube( \
16 3, 1, 2, 0, 4, 6, 5, 7, 0, 1, 2, 3, 7, 5, 6, 4, 11, 9, 10, 8) 16 3, 1, 2, 0, 4, 6, 5, 7, 0, 1, 2, 3, 7, 5, 6, 4, 11, 9, 10, 8)
17#define _move_cube_R3 static_cube( \ 17#define MOVE_CUBE_R3 static_cube( \
18 69, 1, 2, 70, 4, 35, 32, 7, 0, 1, 2, 3, 11, 5, 6, 8, 4, 9, 10, 7) 18 69, 1, 2, 70, 4, 35, 32, 7, 0, 1, 2, 3, 11, 5, 6, 8, 4, 9, 10, 7)
19#define _move_cube_L static_cube( \ 19#define MOVE_CUBE_L static_cube( \
20 0, 71, 68, 3, 33, 5, 6, 34, 0, 1, 2, 3, 4, 10, 9, 7, 8, 5, 6, 11) 20 0, 71, 68, 3, 33, 5, 6, 34, 0, 1, 2, 3, 4, 10, 9, 7, 8, 5, 6, 11)
21#define _move_cube_L2 static_cube( \ 21#define MOVE_CUBE_L2 static_cube( \
22 0, 2, 1, 3, 7, 5, 6, 4, 0, 1, 2, 3, 4, 6, 5, 7, 8, 10, 9, 11) 22 0, 2, 1, 3, 7, 5, 6, 4, 0, 1, 2, 3, 4, 6, 5, 7, 8, 10, 9, 11)
23#define _move_cube_L3 static_cube( \ 23#define MOVE_CUBE_L3 static_cube( \
24 0, 68, 71, 3, 34, 5, 6, 33, 0, 1, 2, 3, 4, 9, 10, 7, 8, 6, 5, 11) 24 0, 68, 71, 3, 34, 5, 6, 33, 0, 1, 2, 3, 4, 9, 10, 7, 8, 6, 5, 11)
25#define _move_cube_F static_cube( \ 25#define MOVE_CUBE_F static_cube( \
26 36, 1, 38, 3, 66, 5, 64, 7, 25, 1, 2, 24, 4, 5, 6, 7, 16, 19, 10, 11) 26 36, 1, 38, 3, 66, 5, 64, 7, 25, 1, 2, 24, 4, 5, 6, 7, 16, 19, 10, 11)
27#define _move_cube_F2 static_cube( \ 27#define MOVE_CUBE_F2 static_cube( \
28 2, 1, 0, 3, 6, 5, 4, 7, 3, 1, 2, 0, 4, 5, 6, 7, 9, 8, 10, 11) 28 2, 1, 0, 3, 6, 5, 4, 7, 3, 1, 2, 0, 4, 5, 6, 7, 9, 8, 10, 11)
29#define _move_cube_F3 static_cube( \ 29#define MOVE_CUBE_F3 static_cube( \
30 38, 1, 36, 3, 64, 5, 66, 7, 24, 1, 2, 25, 4, 5, 6, 7, 19, 16, 10, 11) 30 38, 1, 36, 3, 64, 5, 66, 7, 24, 1, 2, 25, 4, 5, 6, 7, 19, 16, 10, 11)
31#define _move_cube_B static_cube( \ 31#define MOVE_CUBE_B static_cube( \
32 0, 37, 2, 39, 4, 67, 6, 65, 0, 27, 26, 3, 4, 5, 6, 7, 8, 9, 17, 18) 32 0, 37, 2, 39, 4, 67, 6, 65, 0, 27, 26, 3, 4, 5, 6, 7, 8, 9, 17, 18)
33#define _move_cube_B2 static_cube( \ 33#define MOVE_CUBE_B2 static_cube( \
34 0, 3, 2, 1, 4, 7, 6, 5, 0, 2, 1, 3, 4, 5, 6, 7, 8, 9, 11, 10) 34 0, 3, 2, 1, 4, 7, 6, 5, 0, 2, 1, 3, 4, 5, 6, 7, 8, 9, 11, 10)
35#define _move_cube_B3 static_cube( \ 35#define MOVE_CUBE_B3 static_cube( \
36 0, 39, 2, 37, 4, 65, 6, 67, 0, 26, 27, 3, 4, 5, 6, 7, 8, 9, 18, 17) 36 0, 39, 2, 37, 4, 65, 6, 67, 0, 26, 27, 3, 4, 5, 6, 7, 8, 9, 18, 17)
37 37
38#define _trans_cube_UFr static_cube( \ 38#define TRANS_CUBE_UFr static_cube( \
39 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) 39 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
40#define _trans_cube_UFr_inverse static_cube( \ 40#define TRANS_CUBE_UFr_INVERSE static_cube( \
41 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) 41 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
42#define _trans_cube_ULr static_cube( \ 42#define TRANS_CUBE_ULr static_cube( \
43 4, 5, 7, 6, 1, 0, 2, 3, 5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24) 43 4, 5, 7, 6, 1, 0, 2, 3, 5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24)
44#define _trans_cube_ULr_inverse static_cube( \ 44#define TRANS_CUBE_ULr_INVERSE static_cube( \
45 5, 4, 6, 7, 0, 1, 3, 2, 4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26) 45 5, 4, 6, 7, 0, 1, 3, 2, 4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26)
46#define _trans_cube_UBr static_cube( \ 46#define TRANS_CUBE_UBr static_cube( \
47 1, 0, 3, 2, 5, 4, 7, 6, 1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9) 47 1, 0, 3, 2, 5, 4, 7, 6, 1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9)
48#define _trans_cube_UBr_inverse static_cube( \ 48#define TRANS_CUBE_UBr_INVERSE static_cube( \
49 1, 0, 3, 2, 5, 4, 7, 6, 1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9) 49 1, 0, 3, 2, 5, 4, 7, 6, 1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9)
50#define _trans_cube_URr static_cube( \ 50#define TRANS_CUBE_URr static_cube( \
51 5, 4, 6, 7, 0, 1, 3, 2, 4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26) 51 5, 4, 6, 7, 0, 1, 3, 2, 4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26)
52#define _trans_cube_URr_inverse static_cube( \ 52#define TRANS_CUBE_URr_INVERSE static_cube( \
53 4, 5, 7, 6, 1, 0, 2, 3, 5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24) 53 4, 5, 7, 6, 1, 0, 2, 3, 5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24)
54#define _trans_cube_DFr static_cube( \ 54#define TRANS_CUBE_DFr static_cube( \
55 2, 3, 0, 1, 6, 7, 4, 5, 3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10) 55 2, 3, 0, 1, 6, 7, 4, 5, 3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10)
56#define _trans_cube_DFr_inverse static_cube( \ 56#define TRANS_CUBE_DFr_INVERSE static_cube( \
57 2, 3, 0, 1, 6, 7, 4, 5, 3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10) 57 2, 3, 0, 1, 6, 7, 4, 5, 3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10)
58#define _trans_cube_DLr static_cube( \ 58#define TRANS_CUBE_DLr static_cube( \
59 7, 6, 4, 5, 2, 3, 1, 0, 6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27) 59 7, 6, 4, 5, 2, 3, 1, 0, 6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27)
60#define _trans_cube_DLr_inverse static_cube( \ 60#define TRANS_CUBE_DLr_INVERSE static_cube( \
61 7, 6, 4, 5, 2, 3, 1, 0, 6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27) 61 7, 6, 4, 5, 2, 3, 1, 0, 6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27)
62#define _trans_cube_DBr static_cube( \ 62#define TRANS_CUBE_DBr static_cube( \
63 3, 2, 1, 0, 7, 6, 5, 4, 2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8) 63 3, 2, 1, 0, 7, 6, 5, 4, 2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8)
64#define _trans_cube_DBr_inverse static_cube( \ 64#define TRANS_CUBE_DBr_INVERSE static_cube( \
65 3, 2, 1, 0, 7, 6, 5, 4, 2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8) 65 3, 2, 1, 0, 7, 6, 5, 4, 2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8)
66#define _trans_cube_DRr static_cube( \ 66#define TRANS_CUBE_DRr static_cube( \
67 6, 7, 5, 4, 3, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25) 67 6, 7, 5, 4, 3, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25)
68#define _trans_cube_DRr_inverse static_cube( \ 68#define TRANS_CUBE_DRr_INVERSE static_cube( \
69 6, 7, 5, 4, 3, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25) 69 6, 7, 5, 4, 3, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25)
70#define _trans_cube_RUr static_cube( \ 70#define TRANS_CUBE_RUr static_cube( \
71 64, 67, 65, 66, 37, 38, 36, 39, 20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3) 71 64, 67, 65, 66, 37, 38, 36, 39, 20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3)
72#define _trans_cube_RUr_inverse static_cube( \ 72#define TRANS_CUBE_RUr_INVERSE static_cube( \
73 32, 34, 35, 33, 70, 68, 69, 71, 8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21) 73 32, 34, 35, 33, 70, 68, 69, 71, 8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21)
74#define _trans_cube_RFr static_cube( \ 74#define TRANS_CUBE_RFr static_cube( \
75 38, 37, 36, 39, 64, 67, 66, 65, 24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18) 75 38, 37, 36, 39, 64, 67, 66, 65, 24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18)
76#define _trans_cube_RFr_inverse static_cube( \ 76#define TRANS_CUBE_RFr_INVERSE static_cube( \
77 36, 39, 38, 37, 66, 65, 64, 67, 25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17) 77 36, 39, 38, 37, 66, 65, 64, 67, 25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17)
78#define _trans_cube_RDr static_cube( \ 78#define TRANS_CUBE_RDr static_cube( \
79 67, 64, 66, 65, 38, 37, 39, 36, 23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1) 79 67, 64, 66, 65, 38, 37, 39, 36, 23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1)
80#define _trans_cube_RDr_inverse static_cube( \ 80#define TRANS_CUBE_RDr_INVERSE static_cube( \
81 33, 35, 34, 32, 71, 69, 68, 70, 10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20) 81 33, 35, 34, 32, 71, 69, 68, 70, 10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20)
82#define _trans_cube_RBr static_cube( \ 82#define TRANS_CUBE_RBr static_cube( \
83 37, 38, 39, 36, 67, 64, 65, 66, 27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16) 83 37, 38, 39, 36, 67, 64, 65, 66, 27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16)
84#define _trans_cube_RBr_inverse static_cube( \ 84#define TRANS_CUBE_RBr_INVERSE static_cube( \
85 37, 38, 39, 36, 67, 64, 65, 66, 27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16) 85 37, 38, 39, 36, 67, 64, 65, 66, 27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16)
86#define _trans_cube_LUr static_cube( \ 86#define TRANS_CUBE_LUr static_cube( \
87 65, 66, 64, 67, 36, 39, 37, 38, 21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2) 87 65, 66, 64, 67, 36, 39, 37, 38, 21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2)
88#define _trans_cube_LUr_inverse static_cube( \ 88#define TRANS_CUBE_LUr_INVERSE static_cube( \
89 34, 32, 33, 35, 68, 70, 71, 69, 9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23) 89 34, 32, 33, 35, 68, 70, 71, 69, 9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23)
90#define _trans_cube_LFr static_cube( \ 90#define TRANS_CUBE_LFr static_cube( \
91 36, 39, 38, 37, 66, 65, 64, 67, 25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17) 91 36, 39, 38, 37, 66, 65, 64, 67, 25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17)
92#define _trans_cube_LFr_inverse static_cube( \ 92#define TRANS_CUBE_LFr_INVERSE static_cube( \
93 38, 37, 36, 39, 64, 67, 66, 65, 24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18) 93 38, 37, 36, 39, 64, 67, 66, 65, 24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18)
94#define _trans_cube_LDr static_cube( \ 94#define TRANS_CUBE_LDr static_cube( \
95 66, 65, 67, 64, 39, 36, 38, 37, 22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0) 95 66, 65, 67, 64, 39, 36, 38, 37, 22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0)
96#define _trans_cube_LDr_inverse static_cube( \ 96#define TRANS_CUBE_LDr_INVERSE static_cube( \
97 35, 33, 32, 34, 69, 71, 70, 68, 11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22) 97 35, 33, 32, 34, 69, 71, 70, 68, 11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22)
98#define _trans_cube_LBr static_cube( \ 98#define TRANS_CUBE_LBr static_cube( \
99 39, 36, 37, 38, 65, 66, 67, 64, 26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19) 99 39, 36, 37, 38, 65, 66, 67, 64, 26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19)
100#define _trans_cube_LBr_inverse static_cube( \ 100#define TRANS_CUBE_LBr_INVERSE static_cube( \
101 39, 36, 37, 38, 65, 66, 67, 64, 26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19) 101 39, 36, 37, 38, 65, 66, 67, 64, 26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19)
102#define _trans_cube_FUr static_cube( \ 102#define TRANS_CUBE_FUr static_cube( \
103 68, 70, 69, 71, 32, 34, 33, 35, 16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6) 103 68, 70, 69, 71, 32, 34, 33, 35, 16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6)
104#define _trans_cube_FUr_inverse static_cube( \ 104#define TRANS_CUBE_FUr_INVERSE static_cube( \
105 68, 70, 69, 71, 32, 34, 33, 35, 16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6) 105 68, 70, 69, 71, 32, 34, 33, 35, 16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6)
106#define _trans_cube_FRr static_cube( \ 106#define TRANS_CUBE_FRr static_cube( \
107 32, 34, 35, 33, 70, 68, 69, 71, 8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21) 107 32, 34, 35, 33, 70, 68, 69, 71, 8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21)
108#define _trans_cube_FRr_inverse static_cube( \ 108#define TRANS_CUBE_FRr_INVERSE static_cube( \
109 64, 67, 65, 66, 37, 38, 36, 39, 20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3) 109 64, 67, 65, 66, 37, 38, 36, 39, 20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3)
110#define _trans_cube_FDr static_cube( \ 110#define TRANS_CUBE_FDr static_cube( \
111 70, 68, 71, 69, 34, 32, 35, 33, 19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4) 111 70, 68, 71, 69, 34, 32, 35, 33, 19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4)
112#define _trans_cube_FDr_inverse static_cube( \ 112#define TRANS_CUBE_FDr_INVERSE static_cube( \
113 69, 71, 68, 70, 33, 35, 32, 34, 17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7) 113 69, 71, 68, 70, 33, 35, 32, 34, 17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7)
114#define _trans_cube_FLr static_cube( \ 114#define TRANS_CUBE_FLr static_cube( \
115 34, 32, 33, 35, 68, 70, 71, 69, 9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23) 115 34, 32, 33, 35, 68, 70, 71, 69, 9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23)
116#define _trans_cube_FLr_inverse static_cube( \ 116#define TRANS_CUBE_FLr_INVERSE static_cube( \
117 65, 66, 64, 67, 36, 39, 37, 38, 21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2) 117 65, 66, 64, 67, 36, 39, 37, 38, 21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2)
118#define _trans_cube_BUr static_cube( \ 118#define TRANS_CUBE_BUr static_cube( \
119 69, 71, 68, 70, 33, 35, 32, 34, 17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7) 119 69, 71, 68, 70, 33, 35, 32, 34, 17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7)
120#define _trans_cube_BUr_inverse static_cube( \ 120#define TRANS_CUBE_BUr_INVERSE static_cube( \
121 70, 68, 71, 69, 34, 32, 35, 33, 19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4) 121 70, 68, 71, 69, 34, 32, 35, 33, 19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4)
122#define _trans_cube_BRr static_cube( \ 122#define TRANS_CUBE_BRr static_cube( \
123 35, 33, 32, 34, 69, 71, 70, 68, 11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22) 123 35, 33, 32, 34, 69, 71, 70, 68, 11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22)
124#define _trans_cube_BRr_inverse static_cube( \ 124#define TRANS_CUBE_BRr_INVERSE static_cube( \
125 66, 65, 67, 64, 39, 36, 38, 37, 22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0) 125 66, 65, 67, 64, 39, 36, 38, 37, 22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0)
126#define _trans_cube_BDr static_cube( \ 126#define TRANS_CUBE_BDr static_cube( \
127 71, 69, 70, 68, 35, 33, 34, 32, 18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5) 127 71, 69, 70, 68, 35, 33, 34, 32, 18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5)
128#define _trans_cube_BDr_inverse static_cube( \ 128#define TRANS_CUBE_BDr_INVERSE static_cube( \
129 71, 69, 70, 68, 35, 33, 34, 32, 18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5) 129 71, 69, 70, 68, 35, 33, 34, 32, 18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5)
130#define _trans_cube_BLr static_cube( \ 130#define TRANS_CUBE_BLr static_cube( \
131 33, 35, 34, 32, 71, 69, 68, 70, 10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20) 131 33, 35, 34, 32, 71, 69, 68, 70, 10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20)
132#define _trans_cube_BLr_inverse static_cube( \ 132#define TRANS_CUBE_BLr_INVERSE static_cube( \
133 67, 64, 66, 65, 38, 37, 39, 36, 23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1) 133 67, 64, 66, 65, 38, 37, 39, 36, 23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1)
134#define _trans_cube_UFm static_cube( \ 134#define TRANS_CUBE_UFm static_cube( \
135 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10) 135 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10)
136#define _trans_cube_UFm_inverse static_cube( \ 136#define TRANS_CUBE_UFm_INVERSE static_cube( \
137 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10) 137 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10)
138#define _trans_cube_ULm static_cube( \ 138#define TRANS_CUBE_ULm static_cube( \
139 0, 1, 3, 2, 5, 4, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25) 139 0, 1, 3, 2, 5, 4, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25)
140#define _trans_cube_ULm_inverse static_cube( \ 140#define TRANS_CUBE_ULm_INVERSE static_cube( \
141 0, 1, 3, 2, 5, 4, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25) 141 0, 1, 3, 2, 5, 4, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25)
142#define _trans_cube_UBm static_cube( \ 142#define TRANS_CUBE_UBm static_cube( \
143 5, 4, 7, 6, 1, 0, 3, 2, 1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8) 143 5, 4, 7, 6, 1, 0, 3, 2, 1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8)
144#define _trans_cube_UBm_inverse static_cube( \ 144#define TRANS_CUBE_UBm_INVERSE static_cube( \
145 5, 4, 7, 6, 1, 0, 3, 2, 1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8) 145 5, 4, 7, 6, 1, 0, 3, 2, 1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8)
146#define _trans_cube_URm static_cube( \ 146#define TRANS_CUBE_URm static_cube( \
147 1, 0, 2, 3, 4, 5, 7, 6, 5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27) 147 1, 0, 2, 3, 4, 5, 7, 6, 5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27)
148#define _trans_cube_URm_inverse static_cube( \ 148#define TRANS_CUBE_URm_INVERSE static_cube( \
149 1, 0, 2, 3, 4, 5, 7, 6, 5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27) 149 1, 0, 2, 3, 4, 5, 7, 6, 5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27)
150#define _trans_cube_DFm static_cube( \ 150#define TRANS_CUBE_DFm static_cube( \
151 6, 7, 4, 5, 2, 3, 0, 1, 3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11) 151 6, 7, 4, 5, 2, 3, 0, 1, 3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11)
152#define _trans_cube_DFm_inverse static_cube( \ 152#define TRANS_CUBE_DFm_INVERSE static_cube( \
153 6, 7, 4, 5, 2, 3, 0, 1, 3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11) 153 6, 7, 4, 5, 2, 3, 0, 1, 3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11)
154#define _trans_cube_DLm static_cube( \ 154#define TRANS_CUBE_DLm static_cube( \
155 3, 2, 0, 1, 6, 7, 5, 4, 7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26) 155 3, 2, 0, 1, 6, 7, 5, 4, 7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26)
156#define _trans_cube_DLm_inverse static_cube( \ 156#define TRANS_CUBE_DLm_INVERSE static_cube( \
157 2, 3, 1, 0, 7, 6, 4, 5, 6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24) 157 2, 3, 1, 0, 7, 6, 4, 5, 6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24)
158#define _trans_cube_DBm static_cube( \ 158#define TRANS_CUBE_DBm static_cube( \
159 7, 6, 5, 4, 3, 2, 1, 0, 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9) 159 7, 6, 5, 4, 3, 2, 1, 0, 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9)
160#define _trans_cube_DBm_inverse static_cube( \ 160#define TRANS_CUBE_DBm_INVERSE static_cube( \
161 7, 6, 5, 4, 3, 2, 1, 0, 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9) 161 7, 6, 5, 4, 3, 2, 1, 0, 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9)
162#define _trans_cube_DRm static_cube( \ 162#define TRANS_CUBE_DRm static_cube( \
163 2, 3, 1, 0, 7, 6, 4, 5, 6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24) 163 2, 3, 1, 0, 7, 6, 4, 5, 6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24)
164#define _trans_cube_DRm_inverse static_cube( \ 164#define TRANS_CUBE_DRm_INVERSE static_cube( \
165 3, 2, 0, 1, 6, 7, 5, 4, 7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26) 165 3, 2, 0, 1, 6, 7, 5, 4, 7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26)
166#define _trans_cube_RUm static_cube( \ 166#define TRANS_CUBE_RUm static_cube( \
167 68, 71, 69, 70, 33, 34, 32, 35, 21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3) 167 68, 71, 69, 70, 33, 34, 32, 35, 21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3)
168#define _trans_cube_RUm_inverse static_cube( \ 168#define TRANS_CUBE_RUm_INVERSE static_cube( \
169 70, 68, 69, 71, 32, 34, 35, 33, 8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22) 169 70, 68, 69, 71, 32, 34, 35, 33, 8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22)
170#define _trans_cube_RFm static_cube( \ 170#define TRANS_CUBE_RFm static_cube( \
171 34, 33, 32, 35, 68, 71, 70, 69, 25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18) 171 34, 33, 32, 35, 68, 71, 70, 69, 25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18)
172#define _trans_cube_RFm_inverse static_cube( \ 172#define TRANS_CUBE_RFm_INVERSE static_cube( \
173 66, 65, 64, 67, 36, 39, 38, 37, 25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18) 173 66, 65, 64, 67, 36, 39, 38, 37, 25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18)
174#define _trans_cube_RDm static_cube( \ 174#define TRANS_CUBE_RDm static_cube( \
175 71, 68, 70, 69, 34, 33, 35, 32, 22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1) 175 71, 68, 70, 69, 34, 33, 35, 32, 22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1)
176#define _trans_cube_RDm_inverse static_cube( \ 176#define TRANS_CUBE_RDm_INVERSE static_cube( \
177 71, 69, 68, 70, 33, 35, 34, 32, 10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23) 177 71, 69, 68, 70, 33, 35, 34, 32, 10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23)
178#define _trans_cube_RBm static_cube( \ 178#define TRANS_CUBE_RBm static_cube( \
179 33, 34, 35, 32, 71, 68, 69, 70, 26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16) 179 33, 34, 35, 32, 71, 68, 69, 70, 26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16)
180#define _trans_cube_RBm_inverse static_cube( \ 180#define TRANS_CUBE_RBm_INVERSE static_cube( \
181 67, 64, 65, 66, 37, 38, 39, 36, 27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19) 181 67, 64, 65, 66, 37, 38, 39, 36, 27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19)
182#define _trans_cube_LUm static_cube( \ 182#define TRANS_CUBE_LUm static_cube( \
183 69, 70, 68, 71, 32, 35, 33, 34, 20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2) 183 69, 70, 68, 71, 32, 35, 33, 34, 20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2)
184#define _trans_cube_LUm_inverse static_cube( \ 184#define TRANS_CUBE_LUm_INVERSE static_cube( \
185 68, 70, 71, 69, 34, 32, 33, 35, 9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20) 185 68, 70, 71, 69, 34, 32, 33, 35, 9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20)
186#define _trans_cube_LFm static_cube( \ 186#define TRANS_CUBE_LFm static_cube( \
187 32, 35, 34, 33, 70, 69, 68, 71, 24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17) 187 32, 35, 34, 33, 70, 69, 68, 71, 24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17)
188#define _trans_cube_LFm_inverse static_cube( \ 188#define TRANS_CUBE_LFm_INVERSE static_cube( \
189 64, 67, 66, 65, 38, 37, 36, 39, 24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17) 189 64, 67, 66, 65, 38, 37, 36, 39, 24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17)
190#define _trans_cube_LDm static_cube( \ 190#define TRANS_CUBE_LDm static_cube( \
191 70, 69, 71, 68, 35, 32, 34, 33, 23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0) 191 70, 69, 71, 68, 35, 32, 34, 33, 23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0)
192#define _trans_cube_LDm_inverse static_cube( \ 192#define TRANS_CUBE_LDm_INVERSE static_cube( \
193 69, 71, 70, 68, 35, 33, 32, 34, 11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21) 193 69, 71, 70, 68, 35, 33, 32, 34, 11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21)
194#define _trans_cube_LBm static_cube( \ 194#define TRANS_CUBE_LBm static_cube( \
195 35, 32, 33, 34, 69, 70, 71, 68, 27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19) 195 35, 32, 33, 34, 69, 70, 71, 68, 27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19)
196#define _trans_cube_LBm_inverse static_cube( \ 196#define TRANS_CUBE_LBm_INVERSE static_cube( \
197 65, 66, 67, 64, 39, 36, 37, 38, 26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16) 197 65, 66, 67, 64, 39, 36, 37, 38, 26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16)
198#define _trans_cube_FUm static_cube( \ 198#define TRANS_CUBE_FUm static_cube( \
199 64, 66, 65, 67, 36, 38, 37, 39, 16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7) 199 64, 66, 65, 67, 36, 38, 37, 39, 16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7)
200#define _trans_cube_FUm_inverse static_cube( \ 200#define TRANS_CUBE_FUm_INVERSE static_cube( \
201 32, 34, 33, 35, 68, 70, 69, 71, 16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7) 201 32, 34, 33, 35, 68, 70, 69, 71, 16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7)
202#define _trans_cube_FRm static_cube( \ 202#define TRANS_CUBE_FRm static_cube( \
203 36, 38, 39, 37, 66, 64, 65, 67, 9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20) 203 36, 38, 39, 37, 66, 64, 65, 67, 9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20)
204#define _trans_cube_FRm_inverse static_cube( \ 204#define TRANS_CUBE_FRm_INVERSE static_cube( \
205 37, 38, 36, 39, 64, 67, 65, 66, 20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2) 205 37, 38, 36, 39, 64, 67, 65, 66, 20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2)
206#define _trans_cube_FDm static_cube( \ 206#define TRANS_CUBE_FDm static_cube( \
207 66, 64, 67, 65, 38, 36, 39, 37, 19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5) 207 66, 64, 67, 65, 38, 36, 39, 37, 19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5)
208#define _trans_cube_FDm_inverse static_cube( \ 208#define TRANS_CUBE_FDm_INVERSE static_cube( \
209 33, 35, 32, 34, 69, 71, 68, 70, 17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6) 209 33, 35, 32, 34, 69, 71, 68, 70, 17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6)
210#define _trans_cube_FLm static_cube( \ 210#define TRANS_CUBE_FLm static_cube( \
211 38, 36, 37, 39, 64, 66, 67, 65, 8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22) 211 38, 36, 37, 39, 64, 66, 67, 65, 8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22)
212#define _trans_cube_FLm_inverse static_cube( \ 212#define TRANS_CUBE_FLm_INVERSE static_cube( \
213 36, 39, 37, 38, 65, 66, 64, 67, 21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3) 213 36, 39, 37, 38, 65, 66, 64, 67, 21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3)
214#define _trans_cube_BUm static_cube( \ 214#define TRANS_CUBE_BUm static_cube( \
215 65, 67, 64, 66, 37, 39, 36, 38, 17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6) 215 65, 67, 64, 66, 37, 39, 36, 38, 17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6)
216#define _trans_cube_BUm_inverse static_cube( \ 216#define TRANS_CUBE_BUm_INVERSE static_cube( \
217 34, 32, 35, 33, 70, 68, 71, 69, 19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5) 217 34, 32, 35, 33, 70, 68, 71, 69, 19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5)
218#define _trans_cube_BRm static_cube( \ 218#define TRANS_CUBE_BRm static_cube( \
219 39, 37, 36, 38, 65, 67, 66, 64, 10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23) 219 39, 37, 36, 38, 65, 67, 66, 64, 10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23)
220#define _trans_cube_BRm_inverse static_cube( \ 220#define TRANS_CUBE_BRm_INVERSE static_cube( \
221 39, 36, 38, 37, 66, 65, 67, 64, 22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1) 221 39, 36, 38, 37, 66, 65, 67, 64, 22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1)
222#define _trans_cube_BDm static_cube( \ 222#define TRANS_CUBE_BDm static_cube( \
223 67, 65, 66, 64, 39, 37, 38, 36, 18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4) 223 67, 65, 66, 64, 39, 37, 38, 36, 18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4)
224#define _trans_cube_BDm_inverse static_cube( \ 224#define TRANS_CUBE_BDm_INVERSE static_cube( \
225 35, 33, 34, 32, 71, 69, 70, 68, 18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4) 225 35, 33, 34, 32, 71, 69, 70, 68, 18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4)
226#define _trans_cube_BLm static_cube( \ 226#define TRANS_CUBE_BLm static_cube( \
227 37, 39, 38, 36, 67, 65, 64, 66, 11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21) 227 37, 39, 38, 36, 67, 65, 64, 66, 11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21)
228#define _trans_cube_BLm_inverse static_cube( \ 228#define TRANS_CUBE_BLm_INVERSE static_cube( \
229 38, 37, 39, 36, 67, 64, 66, 65, 23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0) 229 38, 37, 39, 36, 67, 64, 66, 65, 23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0)
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}
diff --git a/src/core/io_cube.h b/src/core/io_cube.h
index 956494d..cb0e4c7 100644
--- a/src/core/io_cube.h
+++ b/src/core/io_cube.h
@@ -1,23 +1,23 @@
1_static uint8_t readco(const char *); 1STATIC uint8_t readco(const char *);
2_static uint8_t readcp(const char *); 2STATIC uint8_t readcp(const char *);
3_static uint8_t readeo(const char *); 3STATIC uint8_t readeo(const char *);
4_static uint8_t readep(const char *); 4STATIC uint8_t readep(const char *);
5_static cube_t readcube_B32(const char *); 5STATIC cube_t readcube_B32(const char *);
6_static cube_t readcube_H48(const char *); 6STATIC cube_t readcube_H48(const char *);
7_static uint8_t readpiece_LST(const char **); 7STATIC uint8_t readpiece_LST(const char **);
8_static cube_t readcube_LST(const char *); 8STATIC cube_t readcube_LST(const char *);
9 9
10_static int writepiece_LST(uint8_t, char *); 10STATIC int writepiece_LST(uint8_t, char *);
11_static void writecube_B32(cube_t, char *); 11STATIC void writecube_B32(cube_t, char *);
12_static void writecube_H48(cube_t, char *); 12STATIC void writecube_H48(cube_t, char *);
13_static void writecube_LST(cube_t, char *); 13STATIC void writecube_LST(cube_t, char *);
14 14
15_static uint8_t b32toedge(char); 15STATIC uint8_t b32toedge(char);
16_static uint8_t b32tocorner(char); 16STATIC uint8_t b32tocorner(char);
17_static char edgetob32(uint8_t); 17STATIC char edgetob32(uint8_t);
18_static char cornertob32(uint8_t); 18STATIC char cornertob32(uint8_t);
19 19
20_static struct { 20STATIC struct {
21 const char *name; 21 const char *name;
22 cube_t (*read)(const char *); 22 cube_t (*read)(const char *);
23 void (*write)(cube_t, char *); 23 void (*write)(cube_t, char *);
@@ -72,21 +72,21 @@ writecube_error:
72 buf[len+1] = '\0'; 72 buf[len+1] = '\0';
73} 73}
74 74
75_static uint8_t 75STATIC uint8_t
76readco(const char *str) 76readco(const char *str)
77{ 77{
78 if (*str == '0') 78 if (*str == '0')
79 return 0; 79 return 0;
80 if (*str == '1') 80 if (*str == '1')
81 return _ctwist_cw; 81 return CTWIST_CW;
82 if (*str == '2') 82 if (*str == '2')
83 return _ctwist_ccw; 83 return CTWIST_CCW;
84 84
85 LOG("Error reading CO\n"); 85 LOG("Error reading CO\n");
86 return _error; 86 return UINT8_ERROR;
87} 87}
88 88
89_static uint8_t 89STATIC uint8_t
90readcp(const char *str) 90readcp(const char *str)
91{ 91{
92 uint8_t c; 92 uint8_t c;
@@ -97,22 +97,22 @@ readcp(const char *str)
97 return c; 97 return c;
98 98
99 LOG("Error reading CP\n"); 99 LOG("Error reading CP\n");
100 return _error; 100 return UINT8_ERROR;
101} 101}
102 102
103_static uint8_t 103STATIC uint8_t
104readeo(const char *str) 104readeo(const char *str)
105{ 105{
106 if (*str == '0') 106 if (*str == '0')
107 return 0; 107 return 0;
108 if (*str == '1') 108 if (*str == '1')
109 return _eflip; 109 return EFLIP;
110 110
111 LOG("Error reading EO\n"); 111 LOG("Error reading EO\n");
112 return _error; 112 return UINT8_ERROR;
113} 113}
114 114
115_static uint8_t 115STATIC uint8_t
116readep(const char *str) 116readep(const char *str)
117{ 117{
118 uint8_t e; 118 uint8_t e;
@@ -122,10 +122,10 @@ readep(const char *str)
122 return e; 122 return e;
123 123
124 LOG("Error reading EP\n"); 124 LOG("Error reading EP\n");
125 return _error; 125 return UINT8_ERROR;
126} 126}
127 127
128_static cube_t 128STATIC cube_t
129readcube_B32(const char *buf) 129readcube_B32(const char *buf)
130{ 130{
131 int i; 131 int i;
@@ -146,7 +146,7 @@ readcube_B32(const char *buf)
146 return cubefromarray(c, e); 146 return cubefromarray(c, e);
147} 147}
148 148
149_static cube_t 149STATIC cube_t
150readcube_H48(const char *buf) 150readcube_H48(const char *buf)
151{ 151{
152 int i; 152 int i;
@@ -158,10 +158,10 @@ readcube_H48(const char *buf)
158 for (i = 0; i < 12; i++) { 158 for (i = 0; i < 12; i++) {
159 while (*b == ' ' || *b == '\t' || *b == '\n') 159 while (*b == ' ' || *b == '\t' || *b == '\n')
160 b++; 160 b++;
161 if ((piece = readep(b)) == _error) 161 if ((piece = readep(b)) == UINT8_ERROR)
162 return zero; 162 return zero;
163 b += 2; 163 b += 2;
164 if ((orient = readeo(b)) == _error) 164 if ((orient = readeo(b)) == UINT8_ERROR)
165 return zero; 165 return zero;
166 b++; 166 b++;
167 e[i] = piece | orient; 167 e[i] = piece | orient;
@@ -169,10 +169,10 @@ readcube_H48(const char *buf)
169 for (i = 0; i < 8; i++) { 169 for (i = 0; i < 8; i++) {
170 while (*b == ' ' || *b == '\t' || *b == '\n') 170 while (*b == ' ' || *b == '\t' || *b == '\n')
171 b++; 171 b++;
172 if ((piece = readcp(b)) == _error) 172 if ((piece = readcp(b)) == UINT8_ERROR)
173 return zero; 173 return zero;
174 b += 3; 174 b += 3;
175 if ((orient = readco(b)) == _error) 175 if ((orient = readco(b)) == UINT8_ERROR)
176 return zero; 176 return zero;
177 b++; 177 b++;
178 c[i] = piece | orient; 178 c[i] = piece | orient;
@@ -181,7 +181,7 @@ readcube_H48(const char *buf)
181 return cubefromarray(c, e); 181 return cubefromarray(c, e);
182} 182}
183 183
184_static uint8_t 184STATIC uint8_t
185readpiece_LST(const char **b) 185readpiece_LST(const char **b)
186{ 186{
187 uint8_t ret; 187 uint8_t ret;
@@ -195,10 +195,10 @@ readpiece_LST(const char **b)
195 ret = ret * 10 + (**b) - '0'; 195 ret = ret * 10 + (**b) - '0';
196 } 196 }
197 197
198 return read ? ret : _error; 198 return read ? ret : UINT8_ERROR;
199} 199}
200 200
201_static cube_t 201STATIC cube_t
202readcube_LST(const char *buf) 202readcube_LST(const char *buf)
203{ 203{
204 int i; 204 int i;
@@ -213,7 +213,7 @@ readcube_LST(const char *buf)
213 return cubefromarray(c, e); 213 return cubefromarray(c, e);
214} 214}
215 215
216_static int 216STATIC int
217writepiece_LST(uint8_t piece, char *buf) 217writepiece_LST(uint8_t piece, char *buf)
218{ 218{
219 char digits[3]; 219 char digits[3];
@@ -237,7 +237,7 @@ writepiece_LST(uint8_t piece, char *buf)
237 return len+2; 237 return len+2;
238} 238}
239 239
240_static void 240STATIC void
241writecube_B32(cube_t cube, char *buf) 241writecube_B32(cube_t cube, char *buf)
242{ 242{
243 int i; 243 int i;
@@ -256,7 +256,7 @@ writecube_B32(cube_t cube, char *buf)
256 buf[21] = '\0'; 256 buf[21] = '\0';
257} 257}
258 258
259_static void 259STATIC void
260writecube_H48(cube_t cube, char *buf) 260writecube_H48(cube_t cube, char *buf)
261{ 261{
262 uint8_t piece, perm, orient, corner[8], edge[12]; 262 uint8_t piece, perm, orient, corner[8], edge[12];
@@ -266,8 +266,8 @@ writecube_H48(cube_t cube, char *buf)
266 266
267 for (i = 0; i < 12; i++) { 267 for (i = 0; i < 12; i++) {
268 piece = edge[i]; 268 piece = edge[i];
269 perm = piece & _pbits; 269 perm = piece & PBITS;
270 orient = (piece & _eobit) >> _eoshift; 270 orient = (piece & EOBIT) >> EOSHIFT;
271 buf[4*i ] = edgestr[perm][0]; 271 buf[4*i ] = edgestr[perm][0];
272 buf[4*i + 1] = edgestr[perm][1]; 272 buf[4*i + 1] = edgestr[perm][1];
273 buf[4*i + 2] = orient + '0'; 273 buf[4*i + 2] = orient + '0';
@@ -275,8 +275,8 @@ writecube_H48(cube_t cube, char *buf)
275 } 275 }
276 for (i = 0; i < 8; i++) { 276 for (i = 0; i < 8; i++) {
277 piece = corner[i]; 277 piece = corner[i];
278 perm = piece & _pbits; 278 perm = piece & PBITS;
279 orient = (piece & _cobits) >> _coshift; 279 orient = (piece & COBITS) >> COSHIFT;
280 buf[48 + 5*i ] = cornerstr[perm][0]; 280 buf[48 + 5*i ] = cornerstr[perm][0];
281 buf[48 + 5*i + 1] = cornerstr[perm][1]; 281 buf[48 + 5*i + 1] = cornerstr[perm][1];
282 buf[48 + 5*i + 2] = cornerstr[perm][2]; 282 buf[48 + 5*i + 2] = cornerstr[perm][2];
@@ -287,7 +287,7 @@ writecube_H48(cube_t cube, char *buf)
287 buf[48+39] = '\0'; 287 buf[48+39] = '\0';
288} 288}
289 289
290_static void 290STATIC void
291writecube_LST(cube_t cube, char *buf) 291writecube_LST(cube_t cube, char *buf)
292{ 292{
293 int i; 293 int i;
@@ -310,7 +310,7 @@ writecube_LST(cube_t cube, char *buf)
310 *(buf+ptr-2) = 0; 310 *(buf+ptr-2) = 0;
311} 311}
312 312
313_static uint8_t 313STATIC uint8_t
314b32toedge(char c) 314b32toedge(char c)
315{ 315{
316 if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'f'))) 316 if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'f')))
@@ -319,7 +319,7 @@ b32toedge(char c)
319 return c <= 'Z' ? (uint8_t)(c - 'A') : (uint8_t)(c - 'a') + 26; 319 return c <= 'Z' ? (uint8_t)(c - 'A') : (uint8_t)(c - 'a') + 26;
320} 320}
321 321
322_static uint8_t 322STATIC uint8_t
323b32tocorner(char c) { 323b32tocorner(char c) {
324 uint8_t val; 324 uint8_t val;
325 325
@@ -331,13 +331,13 @@ b32tocorner(char c) {
331 return (val & 7) | ((val & 24) << 2); 331 return (val & 7) | ((val & 24) << 2);
332} 332}
333 333
334_static char 334STATIC char
335edgetob32(uint8_t edge) 335edgetob32(uint8_t edge)
336{ 336{
337 return edge < 26 ? 'A' + (char)edge : 'a' + (char)(edge - 26); 337 return edge < 26 ? 'A' + (char)edge : 'a' + (char)(edge - 26);
338} 338}
339 339
340_static char 340STATIC char
341cornertob32(uint8_t corner) 341cornertob32(uint8_t corner)
342{ 342{
343 uint8_t val; 343 uint8_t val;
diff --git a/src/core/io_moves.h b/src/core/io_moves.h
index eb6290e..a49a38b 100644
--- a/src/core/io_moves.h
+++ b/src/core/io_moves.h
@@ -1,29 +1,29 @@
1_static uint8_t readmove(char); 1STATIC uint8_t readmove(char);
2_static uint8_t readmodifier(char); 2STATIC uint8_t readmodifier(char);
3_static int writemoves(uint8_t *, int, char *); 3STATIC int writemoves(uint8_t *, int, char *);
4 4
5_static uint8_t 5STATIC uint8_t
6readmove(char c) 6readmove(char c)
7{ 7{
8 switch (c) { 8 switch (c) {
9 case 'U': 9 case 'U':
10 return _move_U; 10 return MOVE_U;
11 case 'D': 11 case 'D':
12 return _move_D; 12 return MOVE_D;
13 case 'R': 13 case 'R':
14 return _move_R; 14 return MOVE_R;
15 case 'L': 15 case 'L':
16 return _move_L; 16 return MOVE_L;
17 case 'F': 17 case 'F':
18 return _move_F; 18 return MOVE_F;
19 case 'B': 19 case 'B':
20 return _move_B; 20 return MOVE_B;
21 default: 21 default:
22 return _error; 22 return UINT8_ERROR;
23 } 23 }
24} 24}
25 25
26_static uint8_t 26STATIC uint8_t
27readmodifier(char c) 27readmodifier(char c)
28{ 28{
29 switch (c) { 29 switch (c) {
@@ -38,7 +38,7 @@ readmodifier(char c)
38 } 38 }
39} 39}
40 40
41_static int 41STATIC int
42writemoves(uint8_t *m, int n, char *buf) 42writemoves(uint8_t *m, int n, char *buf)
43{ 43{
44 int i; 44 int i;
diff --git a/src/core/io_trans.h b/src/core/io_trans.h
index 7187b7a..d91e9a2 100644
--- a/src/core/io_trans.h
+++ b/src/core/io_trans.h
@@ -1,7 +1,7 @@
1_static uint8_t readtrans(const char *); 1STATIC uint8_t readtrans(const char *);
2_static void writetrans(uint8_t, char *); 2STATIC void writetrans(uint8_t, char *);
3 3
4_static uint8_t 4STATIC uint8_t
5readtrans(const char *buf) 5readtrans(const char *buf)
6{ 6{
7 uint8_t t; 7 uint8_t t;
@@ -11,10 +11,10 @@ readtrans(const char *buf)
11 return t; 11 return t;
12 12
13 LOG("readtrans error\n"); 13 LOG("readtrans error\n");
14 return _error; 14 return UINT8_ERROR;
15} 15}
16 16
17_static void 17STATIC void
18writetrans(uint8_t t, char *buf) 18writetrans(uint8_t t, char *buf)
19{ 19{
20 if (t >= 48) 20 if (t >= 48)
diff --git a/src/core/moves.h b/src/core/moves.h
index 71ef470..45cd804 100644
--- a/src/core/moves.h
+++ b/src/core/moves.h
@@ -1,22 +1,22 @@
1#define _move(M, c) compose(c, _move_cube_ ## M) 1#define _move(M, c) compose(c, MOVE_CUBE_ ## M)
2#define _premove(M, c) compose(_move_cube_ ## M, c) 2#define _premove(M, c) compose(MOVE_CUBE_ ## M, c)
3 3
4_static_inline bool allowednextmove(uint8_t *, uint8_t); 4STATIC_INLINE bool allowednextmove(uint8_t *, uint8_t);
5 5
6_static_inline uint8_t inverse_trans(uint8_t); 6STATIC_INLINE uint8_t inverse_trans(uint8_t);
7_static_inline uint8_t movebase(uint8_t); 7STATIC_INLINE uint8_t movebase(uint8_t);
8_static_inline uint8_t moveaxis(uint8_t); 8STATIC_INLINE uint8_t moveaxis(uint8_t);
9_static_inline uint32_t disable_moves(uint32_t, uint8_t); 9STATIC_INLINE uint32_t disable_moves(uint32_t, uint8_t);
10 10
11_static cube_t move(cube_t, uint8_t); 11STATIC cube_t move(cube_t, uint8_t);
12_static cube_t premove(cube_t, uint8_t); 12STATIC cube_t premove(cube_t, uint8_t);
13_static uint8_t inverse_move(uint8_t); 13STATIC uint8_t inverse_move(uint8_t);
14_static void invertmoves(uint8_t *, uint8_t, uint8_t *); 14STATIC void invertmoves(uint8_t *, uint8_t, uint8_t *);
15 15
16_static cube_t applymoves(cube_t, const char *); 16STATIC cube_t applymoves(cube_t, const char *);
17_static cube_t frommoves(const char *); 17STATIC cube_t frommoves(const char *);
18 18
19_static bool 19STATIC bool
20allowednextmove(uint8_t *moves, uint8_t n) 20allowednextmove(uint8_t *moves, uint8_t n)
21{ 21{
22 uint8_t base[3], axis[3]; 22 uint8_t base[3], axis[3];
@@ -41,69 +41,69 @@ allowednextmove(uint8_t *moves, uint8_t n)
41 return axis[1] != axis[2] || base[0] != base[2]; 41 return axis[1] != axis[2] || base[0] != base[2];
42} 42}
43 43
44_static_inline uint32_t 44STATIC_INLINE uint32_t
45disable_moves(uint32_t current_result, uint8_t base_index) 45disable_moves(uint32_t current_result, uint8_t base_index)
46{ 46{
47 return current_result & ~(7 << base_index); 47 return current_result & ~(7 << base_index);
48} 48}
49 49
50_static_inline uint8_t 50STATIC_INLINE uint8_t
51inverse_trans(uint8_t t) 51inverse_trans(uint8_t t)
52{ 52{
53 return inverse_trans_table[t]; 53 return inverse_trans_table[t];
54} 54}
55 55
56_static_inline uint8_t 56STATIC_INLINE uint8_t
57movebase(uint8_t move) 57movebase(uint8_t move)
58{ 58{
59 return move / 3; 59 return move / 3;
60} 60}
61 61
62_static_inline uint8_t 62STATIC_INLINE uint8_t
63moveaxis(uint8_t move) 63moveaxis(uint8_t move)
64{ 64{
65 return move / 6; 65 return move / 6;
66} 66}
67 67
68_static cube_t 68STATIC cube_t
69move(cube_t c, uint8_t m) 69move(cube_t c, uint8_t m)
70{ 70{
71 switch (m) { 71 switch (m) {
72 case _move_U: 72 case MOVE_U:
73 return _move(U, c); 73 return _move(U, c);
74 case _move_U2: 74 case MOVE_U2:
75 return _move(U2, c); 75 return _move(U2, c);
76 case _move_U3: 76 case MOVE_U3:
77 return _move(U3, c); 77 return _move(U3, c);
78 case _move_D: 78 case MOVE_D:
79 return _move(D, c); 79 return _move(D, c);
80 case _move_D2: 80 case MOVE_D2:
81 return _move(D2, c); 81 return _move(D2, c);
82 case _move_D3: 82 case MOVE_D3:
83 return _move(D3, c); 83 return _move(D3, c);
84 case _move_R: 84 case MOVE_R:
85 return _move(R, c); 85 return _move(R, c);
86 case _move_R2: 86 case MOVE_R2:
87 return _move(R2, c); 87 return _move(R2, c);
88 case _move_R3: 88 case MOVE_R3:
89 return _move(R3, c); 89 return _move(R3, c);
90 case _move_L: 90 case MOVE_L:
91 return _move(L, c); 91 return _move(L, c);
92 case _move_L2: 92 case MOVE_L2:
93 return _move(L2, c); 93 return _move(L2, c);
94 case _move_L3: 94 case MOVE_L3:
95 return _move(L3, c); 95 return _move(L3, c);
96 case _move_F: 96 case MOVE_F:
97 return _move(F, c); 97 return _move(F, c);
98 case _move_F2: 98 case MOVE_F2:
99 return _move(F2, c); 99 return _move(F2, c);
100 case _move_F3: 100 case MOVE_F3:
101 return _move(F3, c); 101 return _move(F3, c);
102 case _move_B: 102 case MOVE_B:
103 return _move(B, c); 103 return _move(B, c);
104 case _move_B2: 104 case MOVE_B2:
105 return _move(B2, c); 105 return _move(B2, c);
106 case _move_B3: 106 case MOVE_B3:
107 return _move(B3, c); 107 return _move(B3, c);
108 default: 108 default:
109 LOG("move error, unknown move\n"); 109 LOG("move error, unknown move\n");
@@ -111,45 +111,45 @@ move(cube_t c, uint8_t m)
111 } 111 }
112} 112}
113 113
114_static cube_t 114STATIC cube_t
115premove(cube_t c, uint8_t m) 115premove(cube_t c, uint8_t m)
116{ 116{
117 switch (m) { 117 switch (m) {
118 case _move_U: 118 case MOVE_U:
119 return _premove(U3, c); 119 return _premove(U3, c);
120 case _move_U2: 120 case MOVE_U2:
121 return _premove(U2, c); 121 return _premove(U2, c);
122 case _move_U3: 122 case MOVE_U3:
123 return _premove(U, c); 123 return _premove(U, c);
124 case _move_D: 124 case MOVE_D:
125 return _premove(D3, c); 125 return _premove(D3, c);
126 case _move_D2: 126 case MOVE_D2:
127 return _premove(D2, c); 127 return _premove(D2, c);
128 case _move_D3: 128 case MOVE_D3:
129 return _premove(D, c); 129 return _premove(D, c);
130 case _move_R: 130 case MOVE_R:
131 return _premove(R3, c); 131 return _premove(R3, c);
132 case _move_R2: 132 case MOVE_R2:
133 return _premove(R2, c); 133 return _premove(R2, c);
134 case _move_R3: 134 case MOVE_R3:
135 return _premove(R, c); 135 return _premove(R, c);
136 case _move_L: 136 case MOVE_L:
137 return _premove(L3, c); 137 return _premove(L3, c);
138 case _move_L2: 138 case MOVE_L2:
139 return _premove(L2, c); 139 return _premove(L2, c);
140 case _move_L3: 140 case MOVE_L3:
141 return _premove(L, c); 141 return _premove(L, c);
142 case _move_F: 142 case MOVE_F:
143 return _premove(F3, c); 143 return _premove(F3, c);
144 case _move_F2: 144 case MOVE_F2:
145 return _premove(F2, c); 145 return _premove(F2, c);
146 case _move_F3: 146 case MOVE_F3:
147 return _premove(F, c); 147 return _premove(F, c);
148 case _move_B: 148 case MOVE_B:
149 return _premove(B3, c); 149 return _premove(B3, c);
150 case _move_B2: 150 case MOVE_B2:
151 return _premove(B2, c); 151 return _premove(B2, c);
152 case _move_B3: 152 case MOVE_B3:
153 return _premove(B, c); 153 return _premove(B, c);
154 default: 154 default:
155 LOG("move error, unknown move\n"); 155 LOG("move error, unknown move\n");
@@ -157,13 +157,13 @@ premove(cube_t c, uint8_t m)
157 } 157 }
158} 158}
159 159
160_static uint8_t 160STATIC uint8_t
161inverse_move(uint8_t m) 161inverse_move(uint8_t m)
162{ 162{
163 return m - 2 * (m % 3) + 2; 163 return m - 2 * (m % 3) + 2;
164} 164}
165 165
166_static void 166STATIC void
167invertmoves(uint8_t *moves, uint8_t nmoves, uint8_t *ret) 167invertmoves(uint8_t *moves, uint8_t nmoves, uint8_t *ret)
168{ 168{
169 uint8_t i; 169 uint8_t i;
@@ -172,7 +172,7 @@ invertmoves(uint8_t *moves, uint8_t nmoves, uint8_t *ret)
172 ret[i] = inverse_move(moves[nmoves - i - 1]); 172 ret[i] = inverse_move(moves[nmoves - i - 1]);
173} 173}
174 174
175_static cube_t 175STATIC cube_t
176applymoves(cube_t cube, const char *buf) 176applymoves(cube_t cube, const char *buf)
177{ 177{
178 uint8_t r, m; 178 uint8_t r, m;
@@ -186,7 +186,7 @@ applymoves(cube_t cube, const char *buf)
186 b++; 186 b++;
187 if (*b == '\0') 187 if (*b == '\0')
188 goto applymoves_finish; 188 goto applymoves_finish;
189 if ((r = readmove(*b)) == _error) 189 if ((r = readmove(*b)) == UINT8_ERROR)
190 goto applymoves_error; 190 goto applymoves_error;
191 if ((m = readmodifier(*(b+1))) != 0) 191 if ((m = readmodifier(*(b+1))) != 0)
192 b++; 192 b++;
@@ -201,7 +201,7 @@ applymoves_error:
201 return zero; 201 return zero;
202} 202}
203 203
204_static cube_t 204STATIC cube_t
205frommoves(const char *buf) 205frommoves(const char *buf)
206{ 206{
207 return applymoves(solved, buf); 207 return applymoves(solved, buf);
diff --git a/src/core/transform.h b/src/core/transform.h
index fa7ce59..a792c25 100644
--- a/src/core/transform.h
+++ b/src/core/transform.h
@@ -1,132 +1,111 @@
1/* TODO: remove these macros, if the below works */ 1STATIC cube_t transform_edges(cube_t, uint8_t);
2 2STATIC cube_t transform_corners(cube_t, uint8_t);
3#define _trans_edges_rotation(T, c) \ 3STATIC cube_t transform(cube_t, uint8_t);
4 compose_edges(compose_edges(_trans_cube_ ## T, c), \ 4STATIC cube_t applytrans(cube_t, const char *);
5 _trans_cube_ ## T ## _inverse)
6#define _trans_edges_mirrored(T, c) _trans_edges_rotation(T, c)
7
8#define _trans_corners_rotation(T, c) \
9 compose_corners(compose_corners(_trans_cube_ ## T, c), \
10 _trans_cube_ ## T ## _inverse)
11#define _trans_corners_mirrored(T, c) \
12 invertco(compose_corners( \
13 compose_corners(_trans_cube_ ## T, c), _trans_cube_ ## T ## _inverse))
14
15#define _trans_rotation(T, c) \
16 compose(compose(_trans_cube_ ## T, c), \
17 _trans_cube_ ## T ## _inverse)
18#define _trans_mirrored(T, c) \
19 invertco(compose(compose(_trans_cube_ ## T, c), \
20 _trans_cube_ ## T ## _inverse))
21
22_static cube_t transform_edges(cube_t, uint8_t);
23_static cube_t transform_corners(cube_t, uint8_t);
24_static cube_t transform(cube_t, uint8_t);
25_static cube_t applytrans(cube_t, const char *);
26 5
27static cube_t cube_trans_table[48] = { 6static cube_t cube_trans_table[48] = {
28 [_trans_UFr] = _trans_cube_UFr, 7 [TRANS_UFr] = TRANS_CUBE_UFr,
29 [_trans_UFm] = _trans_cube_UFm, 8 [TRANS_UFm] = TRANS_CUBE_UFm,
30 [_trans_ULr] = _trans_cube_URr, 9 [TRANS_ULr] = TRANS_CUBE_URr,
31 [_trans_ULm] = _trans_cube_ULm, 10 [TRANS_ULm] = TRANS_CUBE_ULm,
32 [_trans_UBr] = _trans_cube_UBr, 11 [TRANS_UBr] = TRANS_CUBE_UBr,
33 [_trans_UBm] = _trans_cube_UBm, 12 [TRANS_UBm] = TRANS_CUBE_UBm,
34 [_trans_URr] = _trans_cube_ULr, 13 [TRANS_URr] = TRANS_CUBE_ULr,
35 [_trans_URm] = _trans_cube_URm, 14 [TRANS_URm] = TRANS_CUBE_URm,
36 [_trans_DFr] = _trans_cube_DFr, 15 [TRANS_DFr] = TRANS_CUBE_DFr,
37 [_trans_DFm] = _trans_cube_DFm, 16 [TRANS_DFm] = TRANS_CUBE_DFm,
38 [_trans_DLr] = _trans_cube_DLr, 17 [TRANS_DLr] = TRANS_CUBE_DLr,
39 [_trans_DLm] = _trans_cube_DRm, 18 [TRANS_DLm] = TRANS_CUBE_DRm,
40 [_trans_DBr] = _trans_cube_DBr, 19 [TRANS_DBr] = TRANS_CUBE_DBr,
41 [_trans_DBm] = _trans_cube_DBm, 20 [TRANS_DBm] = TRANS_CUBE_DBm,
42 [_trans_DRr] = _trans_cube_DRr, 21 [TRANS_DRr] = TRANS_CUBE_DRr,
43 [_trans_DRm] = _trans_cube_DLm, 22 [TRANS_DRm] = TRANS_CUBE_DLm,
44 [_trans_RUr] = _trans_cube_FRr, 23 [TRANS_RUr] = TRANS_CUBE_FRr,
45 [_trans_RUm] = _trans_cube_FLm, 24 [TRANS_RUm] = TRANS_CUBE_FLm,
46 [_trans_RFr] = _trans_cube_LFr, 25 [TRANS_RFr] = TRANS_CUBE_LFr,
47 [_trans_RFm] = _trans_cube_RFm, 26 [TRANS_RFm] = TRANS_CUBE_RFm,
48 [_trans_RDr] = _trans_cube_BLr, 27 [TRANS_RDr] = TRANS_CUBE_BLr,
49 [_trans_RDm] = _trans_cube_BRm, 28 [TRANS_RDm] = TRANS_CUBE_BRm,
50 [_trans_RBr] = _trans_cube_RBr, 29 [TRANS_RBr] = TRANS_CUBE_RBr,
51 [_trans_RBm] = _trans_cube_LBm, 30 [TRANS_RBm] = TRANS_CUBE_LBm,
52 [_trans_LUr] = _trans_cube_FLr, 31 [TRANS_LUr] = TRANS_CUBE_FLr,
53 [_trans_LUm] = _trans_cube_FRm, 32 [TRANS_LUm] = TRANS_CUBE_FRm,
54 [_trans_LFr] = _trans_cube_RFr, 33 [TRANS_LFr] = TRANS_CUBE_RFr,
55 [_trans_LFm] = _trans_cube_LFm, 34 [TRANS_LFm] = TRANS_CUBE_LFm,
56 [_trans_LDr] = _trans_cube_BRr, 35 [TRANS_LDr] = TRANS_CUBE_BRr,
57 [_trans_LDm] = _trans_cube_BLm, 36 [TRANS_LDm] = TRANS_CUBE_BLm,
58 [_trans_LBr] = _trans_cube_LBr, 37 [TRANS_LBr] = TRANS_CUBE_LBr,
59 [_trans_LBm] = _trans_cube_RBm, 38 [TRANS_LBm] = TRANS_CUBE_RBm,
60 [_trans_FUr] = _trans_cube_FUr, 39 [TRANS_FUr] = TRANS_CUBE_FUr,
61 [_trans_FUm] = _trans_cube_FUm, 40 [TRANS_FUm] = TRANS_CUBE_FUm,
62 [_trans_FRr] = _trans_cube_RUr, 41 [TRANS_FRr] = TRANS_CUBE_RUr,
63 [_trans_FRm] = _trans_cube_LUm, 42 [TRANS_FRm] = TRANS_CUBE_LUm,
64 [_trans_FDr] = _trans_cube_BUr, 43 [TRANS_FDr] = TRANS_CUBE_BUr,
65 [_trans_FDm] = _trans_cube_BUm, 44 [TRANS_FDm] = TRANS_CUBE_BUm,
66 [_trans_FLr] = _trans_cube_LUr, 45 [TRANS_FLr] = TRANS_CUBE_LUr,
67 [_trans_FLm] = _trans_cube_RUm, 46 [TRANS_FLm] = TRANS_CUBE_RUm,
68 [_trans_BUr] = _trans_cube_FDr, 47 [TRANS_BUr] = TRANS_CUBE_FDr,
69 [_trans_BUm] = _trans_cube_FDm, 48 [TRANS_BUm] = TRANS_CUBE_FDm,
70 [_trans_BRr] = _trans_cube_LDr, 49 [TRANS_BRr] = TRANS_CUBE_LDr,
71 [_trans_BRm] = _trans_cube_RDm, 50 [TRANS_BRm] = TRANS_CUBE_RDm,
72 [_trans_BDr] = _trans_cube_BDr, 51 [TRANS_BDr] = TRANS_CUBE_BDr,
73 [_trans_BDm] = _trans_cube_BDm, 52 [TRANS_BDm] = TRANS_CUBE_BDm,
74 [_trans_BLr] = _trans_cube_RDr, 53 [TRANS_BLr] = TRANS_CUBE_RDr,
75 [_trans_BLm] = _trans_cube_LDm, 54 [TRANS_BLm] = TRANS_CUBE_LDm,
76}; 55};
77 56
78static cube_t cube_trans_table_inverse[48] = { 57static cube_t cube_trans_table_inverse[48] = {
79 [_trans_UFr] = _trans_cube_UFr_inverse, 58 [TRANS_UFr] = TRANS_CUBE_UFr_inverse,
80 [_trans_UFm] = _trans_cube_UFm_inverse, 59 [TRANS_UFm] = TRANS_CUBE_UFm_inverse,
81 [_trans_ULr] = _trans_cube_URr_inverse, 60 [TRANS_ULr] = TRANS_CUBE_URr_inverse,
82 [_trans_ULm] = _trans_cube_ULm_inverse, 61 [TRANS_ULm] = TRANS_CUBE_ULm_inverse,
83 [_trans_UBr] = _trans_cube_UBr_inverse, 62 [TRANS_UBr] = TRANS_CUBE_UBr_inverse,
84 [_trans_UBm] = _trans_cube_UBm_inverse, 63 [TRANS_UBm] = TRANS_CUBE_UBm_inverse,
85 [_trans_URr] = _trans_cube_ULr_inverse, 64 [TRANS_URr] = TRANS_CUBE_ULr_inverse,
86 [_trans_URm] = _trans_cube_URm_inverse, 65 [TRANS_URm] = TRANS_CUBE_URm_inverse,
87 [_trans_DFr] = _trans_cube_DFr_inverse, 66 [TRANS_DFr] = TRANS_CUBE_DFr_inverse,
88 [_trans_DFm] = _trans_cube_DFm_inverse, 67 [TRANS_DFm] = TRANS_CUBE_DFm_inverse,
89 [_trans_DLr] = _trans_cube_DLr_inverse, 68 [TRANS_DLr] = TRANS_CUBE_DLr_inverse,
90 [_trans_DLm] = _trans_cube_DRm_inverse, 69 [TRANS_DLm] = TRANS_CUBE_DRm_inverse,
91 [_trans_DBr] = _trans_cube_DBr_inverse, 70 [TRANS_DBr] = TRANS_CUBE_DBr_inverse,
92 [_trans_DBm] = _trans_cube_DBm_inverse, 71 [TRANS_DBm] = TRANS_CUBE_DBm_inverse,
93 [_trans_DRr] = _trans_cube_DRr_inverse, 72 [TRANS_DRr] = TRANS_CUBE_DRr_inverse,
94 [_trans_DRm] = _trans_cube_DLm_inverse, 73 [TRANS_DRm] = TRANS_CUBE_DLm_inverse,
95 [_trans_RUr] = _trans_cube_FRr_inverse, 74 [TRANS_RUr] = TRANS_CUBE_FRr_inverse,
96 [_trans_RUm] = _trans_cube_FLm_inverse, 75 [TRANS_RUm] = TRANS_CUBE_FLm_inverse,
97 [_trans_RFr] = _trans_cube_LFr_inverse, 76 [TRANS_RFr] = TRANS_CUBE_LFr_inverse,
98 [_trans_RFm] = _trans_cube_RFm_inverse, 77 [TRANS_RFm] = TRANS_CUBE_RFm_inverse,
99 [_trans_RDr] = _trans_cube_BLr_inverse, 78 [TRANS_RDr] = TRANS_CUBE_BLr_inverse,
100 [_trans_RDm] = _trans_cube_BRm_inverse, 79 [TRANS_RDm] = TRANS_CUBE_BRm_inverse,
101 [_trans_RBr] = _trans_cube_RBr_inverse, 80 [TRANS_RBr] = TRANS_CUBE_RBr_inverse,
102 [_trans_RBm] = _trans_cube_LBm_inverse, 81 [TRANS_RBm] = TRANS_CUBE_LBm_inverse,
103 [_trans_LUr] = _trans_cube_FLr_inverse, 82 [TRANS_LUr] = TRANS_CUBE_FLr_inverse,
104 [_trans_LUm] = _trans_cube_FRm_inverse, 83 [TRANS_LUm] = TRANS_CUBE_FRm_inverse,
105 [_trans_LFr] = _trans_cube_RFr_inverse, 84 [TRANS_LFr] = TRANS_CUBE_RFr_inverse,
106 [_trans_LFm] = _trans_cube_LFm_inverse, 85 [TRANS_LFm] = TRANS_CUBE_LFm_inverse,
107 [_trans_LDr] = _trans_cube_BRr_inverse, 86 [TRANS_LDr] = TRANS_CUBE_BRr_inverse,
108 [_trans_LDm] = _trans_cube_BLm_inverse, 87 [TRANS_LDm] = TRANS_CUBE_BLm_inverse,
109 [_trans_LBr] = _trans_cube_LBr_inverse, 88 [TRANS_LBr] = TRANS_CUBE_LBr_inverse,
110 [_trans_LBm] = _trans_cube_RBm_inverse, 89 [TRANS_LBm] = TRANS_CUBE_RBm_inverse,
111 [_trans_FUr] = _trans_cube_FUr_inverse, 90 [TRANS_FUr] = TRANS_CUBE_FUr_inverse,
112 [_trans_FUm] = _trans_cube_FUm_inverse, 91 [TRANS_FUm] = TRANS_CUBE_FUm_inverse,
113 [_trans_FRr] = _trans_cube_RUr_inverse, 92 [TRANS_FRr] = TRANS_CUBE_RUr_inverse,
114 [_trans_FRm] = _trans_cube_LUm_inverse, 93 [TRANS_FRm] = TRANS_CUBE_LUm_inverse,
115 [_trans_FDr] = _trans_cube_BUr_inverse, 94 [TRANS_FDr] = TRANS_CUBE_BUr_inverse,
116 [_trans_FDm] = _trans_cube_BUm_inverse, 95 [TRANS_FDm] = TRANS_CUBE_BUm_inverse,
117 [_trans_FLr] = _trans_cube_LUr_inverse, 96 [TRANS_FLr] = TRANS_CUBE_LUr_inverse,
118 [_trans_FLm] = _trans_cube_RUm_inverse, 97 [TRANS_FLm] = TRANS_CUBE_RUm_inverse,
119 [_trans_BUr] = _trans_cube_FDr_inverse, 98 [TRANS_BUr] = TRANS_CUBE_FDr_inverse,
120 [_trans_BUm] = _trans_cube_FDm_inverse, 99 [TRANS_BUm] = TRANS_CUBE_FDm_inverse,
121 [_trans_BRr] = _trans_cube_LDr_inverse, 100 [TRANS_BRr] = TRANS_CUBE_LDr_inverse,
122 [_trans_BRm] = _trans_cube_RDm_inverse, 101 [TRANS_BRm] = TRANS_CUBE_RDm_inverse,
123 [_trans_BDr] = _trans_cube_BDr_inverse, 102 [TRANS_BDr] = TRANS_CUBE_BDr_inverse,
124 [_trans_BDm] = _trans_cube_BDm_inverse, 103 [TRANS_BDm] = TRANS_CUBE_BDm_inverse,
125 [_trans_BLr] = _trans_cube_RDr_inverse, 104 [TRANS_BLr] = TRANS_CUBE_RDr_inverse,
126 [_trans_BLm] = _trans_cube_LDm_inverse, 105 [TRANS_BLm] = TRANS_CUBE_LDm_inverse,
127}; 106};
128 107
129_static cube_t 108STATIC cube_t
130transform_edges(cube_t c, uint8_t t) 109transform_edges(cube_t c, uint8_t t)
131{ 110{
132 cube_t ret, trans_cube, trans_inv; 111 cube_t ret, trans_cube, trans_inv;
@@ -144,7 +123,7 @@ transform_edges(cube_t c, uint8_t t)
144 return ret; 123 return ret;
145} 124}
146 125
147_static cube_t 126STATIC cube_t
148transform_corners(cube_t c, uint8_t t) 127transform_corners(cube_t c, uint8_t t)
149{ 128{
150 cube_t ret, trans_cube, trans_inv; 129 cube_t ret, trans_cube, trans_inv;
@@ -162,7 +141,7 @@ transform_corners(cube_t c, uint8_t t)
162 return t < 24 ? ret : invertco(ret); 141 return t < 24 ? ret : invertco(ret);
163} 142}
164 143
165_static cube_t 144STATIC cube_t
166transform(cube_t c, uint8_t t) 145transform(cube_t c, uint8_t t)
167{ 146{
168 cube_t ret, trans_cube, trans_inv; 147 cube_t ret, trans_cube, trans_inv;
@@ -180,7 +159,7 @@ transform(cube_t c, uint8_t t)
180 return t < 24 ? ret : invertco(ret); 159 return t < 24 ? ret : invertco(ret);
181} 160}
182 161
183_static cube_t 162STATIC cube_t
184applytrans(cube_t cube, const char *buf) 163applytrans(cube_t cube, const char *buf)
185{ 164{
186 uint8_t t; 165 uint8_t t;
diff --git a/src/core/transform_with_switch.h b/src/core/transform_with_switch.h
index 429e656..3ffd9af 100644
--- a/src/core/transform_with_switch.h
+++ b/src/core/transform_with_switch.h
@@ -1,346 +1,346 @@
1#define _trans_edges_rotation(T, c) \ 1#define TRANS_EDGES_ROTATION(T, c) \
2 compose_edges(compose_edges(_trans_cube_ ## T, c), \ 2 compose_edges(compose_edges(TRANS_CUBE_ ## T, c), \
3 _trans_cube_ ## T ## _inverse) 3 TRANS_CUBE_ ## T ## _INVERSE)
4#define _trans_edges_mirrored(T, c) _trans_edges_rotation(T, c) 4#define TRANS_EDGES_MIRRORED(T, c) TRANS_EDGES_ROTATION(T, c)
5 5
6#define _trans_corners_rotation(T, c) \ 6#define TRANS_CORNERS_ROTATION(T, c) \
7 compose_corners(compose_corners(_trans_cube_ ## T, c), \ 7 compose_corners(compose_corners(TRANS_CUBE_ ## T, c), \
8 _trans_cube_ ## T ## _inverse) 8 TRANS_CUBE_ ## T ## _INVERSE)
9#define _trans_corners_mirrored(T, c) \ 9#define TRANS_CORNERS_MIRRORED(T, c) \
10 invertco(compose_corners( \ 10 invertco(compose_corners( \
11 compose_corners(_trans_cube_ ## T, c), _trans_cube_ ## T ## _inverse)) 11 compose_corners(TRANS_CUBE_ ## T, c), TRANS_CUBE_ ## T ## _INVERSE))
12 12
13#define _trans_rotation(T, c) \ 13#define TRANS_ROTATION(T, c) \
14 compose(compose(_trans_cube_ ## T, c), \ 14 compose(compose(TRANS_CUBE_ ## T, c), \
15 _trans_cube_ ## T ## _inverse) 15 TRANS_CUBE_ ## T ## _INVERSE)
16#define _trans_mirrored(T, c) \ 16#define TRANS_MIRRORED(T, c) \
17 invertco(compose(compose(_trans_cube_ ## T, c), \ 17 invertco(compose(compose(TRANS_CUBE_ ## T, c), \
18 _trans_cube_ ## T ## _inverse)) 18 TRANS_CUBE_ ## T ## _INVERSE))
19 19
20_static cube_t transform_edges(cube_t, uint8_t); 20STATIC cube_t transform_edges(cube_t, uint8_t);
21_static cube_t transform_corners(cube_t, uint8_t); 21STATIC cube_t transform_corners(cube_t, uint8_t);
22_static cube_t transform(cube_t, uint8_t); 22STATIC cube_t transform(cube_t, uint8_t);
23_static cube_t applytrans(cube_t, const char *); 23STATIC cube_t applytrans(cube_t, const char *);
24 24
25_static cube_t 25STATIC cube_t
26transform_edges(cube_t c, uint8_t t) 26transform_edges(cube_t c, uint8_t t)
27{ 27{
28 switch (t) { 28 switch (t) {
29 case _trans_UFr: 29 case TRANS_UFr:
30 return c; 30 return c;
31 case _trans_ULr: 31 case TRANS_ULr:
32 return _trans_edges_rotation(ULr, c); 32 return TRANS_EDGES_ROTATION(ULr, c);
33 case _trans_UBr: 33 case TRANS_UBr:
34 return _trans_edges_rotation(UBr, c); 34 return TRANS_EDGES_ROTATION(UBr, c);
35 case _trans_URr: 35 case TRANS_URr:
36 return _trans_edges_rotation(URr, c); 36 return TRANS_EDGES_ROTATION(URr, c);
37 case _trans_DFr: 37 case TRANS_DFr:
38 return _trans_edges_rotation(DFr, c); 38 return TRANS_EDGES_ROTATION(DFr, c);
39 case _trans_DLr: 39 case TRANS_DLr:
40 return _trans_edges_rotation(DLr, c); 40 return TRANS_EDGES_ROTATION(DLr, c);
41 case _trans_DBr: 41 case TRANS_DBr:
42 return _trans_edges_rotation(DBr, c); 42 return TRANS_EDGES_ROTATION(DBr, c);
43 case _trans_DRr: 43 case TRANS_DRr:
44 return _trans_edges_rotation(DRr, c); 44 return TRANS_EDGES_ROTATION(DRr, c);
45 case _trans_RUr: 45 case TRANS_RUr:
46 return _trans_edges_rotation(RUr, c); 46 return TRANS_EDGES_ROTATION(RUr, c);
47 case _trans_RFr: 47 case TRANS_RFr:
48 return _trans_edges_rotation(RFr, c); 48 return TRANS_EDGES_ROTATION(RFr, c);
49 case _trans_RDr: 49 case TRANS_RDr:
50 return _trans_edges_rotation(RDr, c); 50 return TRANS_EDGES_ROTATION(RDr, c);
51 case _trans_RBr: 51 case TRANS_RBr:
52 return _trans_edges_rotation(RBr, c); 52 return TRANS_EDGES_ROTATION(RBr, c);
53 case _trans_LUr: 53 case TRANS_LUr:
54 return _trans_edges_rotation(LUr, c); 54 return TRANS_EDGES_ROTATION(LUr, c);
55 case _trans_LFr: 55 case TRANS_LFr:
56 return _trans_edges_rotation(LFr, c); 56 return TRANS_EDGES_ROTATION(LFr, c);
57 case _trans_LDr: 57 case TRANS_LDr:
58 return _trans_edges_rotation(LDr, c); 58 return TRANS_EDGES_ROTATION(LDr, c);
59 case _trans_LBr: 59 case TRANS_LBr:
60 return _trans_edges_rotation(LBr, c); 60 return TRANS_EDGES_ROTATION(LBr, c);
61 case _trans_FUr: 61 case TRANS_FUr:
62 return _trans_edges_rotation(FUr, c); 62 return TRANS_EDGES_ROTATION(FUr, c);
63 case _trans_FRr: 63 case TRANS_FRr:
64 return _trans_edges_rotation(FRr, c); 64 return TRANS_EDGES_ROTATION(FRr, c);
65 case _trans_FDr: 65 case TRANS_FDr:
66 return _trans_edges_rotation(FDr, c); 66 return TRANS_EDGES_ROTATION(FDr, c);
67 case _trans_FLr: 67 case TRANS_FLr:
68 return _trans_edges_rotation(FLr, c); 68 return TRANS_EDGES_ROTATION(FLr, c);
69 case _trans_BUr: 69 case TRANS_BUr:
70 return _trans_edges_rotation(BUr, c); 70 return TRANS_EDGES_ROTATION(BUr, c);
71 case _trans_BRr: 71 case TRANS_BRr:
72 return _trans_edges_rotation(BRr, c); 72 return TRANS_EDGES_ROTATION(BRr, c);
73 case _trans_BDr: 73 case TRANS_BDr:
74 return _trans_edges_rotation(BDr, c); 74 return TRANS_EDGES_ROTATION(BDr, c);
75 case _trans_BLr: 75 case TRANS_BLr:
76 return _trans_edges_rotation(BLr, c); 76 return TRANS_EDGES_ROTATION(BLr, c);
77 case _trans_UFm: 77 case TRANS_UFm:
78 return _trans_edges_mirrored(UFm, c); 78 return TRANS_EDGES_MIRRORED(UFm, c);
79 case _trans_ULm: 79 case TRANS_ULm:
80 return _trans_edges_mirrored(ULm, c); 80 return TRANS_EDGES_MIRRORED(ULm, c);
81 case _trans_UBm: 81 case TRANS_UBm:
82 return _trans_edges_mirrored(UBm, c); 82 return TRANS_EDGES_MIRRORED(UBm, c);
83 case _trans_URm: 83 case TRANS_URm:
84 return _trans_edges_mirrored(URm, c); 84 return TRANS_EDGES_MIRRORED(URm, c);
85 case _trans_DFm: 85 case TRANS_DFm:
86 return _trans_edges_mirrored(DFm, c); 86 return TRANS_EDGES_MIRRORED(DFm, c);
87 case _trans_DLm: 87 case TRANS_DLm:
88 return _trans_edges_mirrored(DLm, c); 88 return TRANS_EDGES_MIRRORED(DLm, c);
89 case _trans_DBm: 89 case TRANS_DBm:
90 return _trans_edges_mirrored(DBm, c); 90 return TRANS_EDGES_MIRRORED(DBm, c);
91 case _trans_DRm: 91 case TRANS_DRm:
92 return _trans_edges_mirrored(DRm, c); 92 return TRANS_EDGES_MIRRORED(DRm, c);
93 case _trans_RUm: 93 case TRANS_RUm:
94 return _trans_edges_mirrored(RUm, c); 94 return TRANS_EDGES_MIRRORED(RUm, c);
95 case _trans_RFm: 95 case TRANS_RFm:
96 return _trans_edges_mirrored(RFm, c); 96 return TRANS_EDGES_MIRRORED(RFm, c);
97 case _trans_RDm: 97 case TRANS_RDm:
98 return _trans_edges_mirrored(RDm, c); 98 return TRANS_EDGES_MIRRORED(RDm, c);
99 case _trans_RBm: 99 case TRANS_RBm:
100 return _trans_edges_mirrored(RBm, c); 100 return TRANS_EDGES_MIRRORED(RBm, c);
101 case _trans_LUm: 101 case TRANS_LUm:
102 return _trans_edges_mirrored(LUm, c); 102 return TRANS_EDGES_MIRRORED(LUm, c);
103 case _trans_LFm: 103 case TRANS_LFm:
104 return _trans_edges_mirrored(LFm, c); 104 return TRANS_EDGES_MIRRORED(LFm, c);
105 case _trans_LDm: 105 case TRANS_LDm:
106 return _trans_edges_mirrored(LDm, c); 106 return TRANS_EDGES_MIRRORED(LDm, c);
107 case _trans_LBm: 107 case TRANS_LBm:
108 return _trans_edges_mirrored(LBm, c); 108 return TRANS_EDGES_MIRRORED(LBm, c);
109 case _trans_FUm: 109 case TRANS_FUm:
110 return _trans_edges_mirrored(FUm, c); 110 return TRANS_EDGES_MIRRORED(FUm, c);
111 case _trans_FRm: 111 case TRANS_FRm:
112 return _trans_edges_mirrored(FRm, c); 112 return TRANS_EDGES_MIRRORED(FRm, c);
113 case _trans_FDm: 113 case TRANS_FDm:
114 return _trans_edges_mirrored(FDm, c); 114 return TRANS_EDGES_MIRRORED(FDm, c);
115 case _trans_FLm: 115 case TRANS_FLm:
116 return _trans_edges_mirrored(FLm, c); 116 return TRANS_EDGES_MIRRORED(FLm, c);
117 case _trans_BUm: 117 case TRANS_BUm:
118 return _trans_edges_mirrored(BUm, c); 118 return TRANS_EDGES_MIRRORED(BUm, c);
119 case _trans_BRm: 119 case TRANS_BRm:
120 return _trans_edges_mirrored(BRm, c); 120 return TRANS_EDGES_MIRRORED(BRm, c);
121 case _trans_BDm: 121 case TRANS_BDm:
122 return _trans_edges_mirrored(BDm, c); 122 return TRANS_EDGES_MIRRORED(BDm, c);
123 case _trans_BLm: 123 case TRANS_BLm:
124 return _trans_edges_mirrored(BLm, c); 124 return TRANS_EDGES_MIRRORED(BLm, c);
125 default: 125 default:
126 LOG("transform error, unknown transformation %" PRIu8 "\n", t); 126 LOG("transform error, unknown transformation %" PRIu8 "\n", t);
127 return zero; 127 return zero;
128 } 128 }
129} 129}
130 130
131_static cube_t 131STATIC cube_t
132transform_corners(cube_t c, uint8_t t) 132transform_corners(cube_t c, uint8_t t)
133{ 133{
134 switch (t) { 134 switch (t) {
135 case _trans_UFr: 135 case TRANS_UFr:
136 return c; 136 return c;
137 case _trans_ULr: 137 case TRANS_ULr:
138 return _trans_corners_rotation(ULr, c); 138 return TRANS_CORNERS_ROTATION(ULr, c);
139 case _trans_UBr: 139 case TRANS_UBr:
140 return _trans_corners_rotation(UBr, c); 140 return TRANS_CORNERS_ROTATION(UBr, c);
141 case _trans_URr: 141 case TRANS_URr:
142 return _trans_corners_rotation(URr, c); 142 return TRANS_CORNERS_ROTATION(URr, c);
143 case _trans_DFr: 143 case TRANS_DFr:
144 return _trans_corners_rotation(DFr, c); 144 return TRANS_CORNERS_ROTATION(DFr, c);
145 case _trans_DLr: 145 case TRANS_DLr:
146 return _trans_corners_rotation(DLr, c); 146 return TRANS_CORNERS_ROTATION(DLr, c);
147 case _trans_DBr: 147 case TRANS_DBr:
148 return _trans_corners_rotation(DBr, c); 148 return TRANS_CORNERS_ROTATION(DBr, c);
149 case _trans_DRr: 149 case TRANS_DRr:
150 return _trans_corners_rotation(DRr, c); 150 return TRANS_CORNERS_ROTATION(DRr, c);
151 case _trans_RUr: 151 case TRANS_RUr:
152 return _trans_corners_rotation(RUr, c); 152 return TRANS_CORNERS_ROTATION(RUr, c);
153 case _trans_RFr: 153 case TRANS_RFr:
154 return _trans_corners_rotation(RFr, c); 154 return TRANS_CORNERS_ROTATION(RFr, c);
155 case _trans_RDr: 155 case TRANS_RDr:
156 return _trans_corners_rotation(RDr, c); 156 return TRANS_CORNERS_ROTATION(RDr, c);
157 case _trans_RBr: 157 case TRANS_RBr:
158 return _trans_corners_rotation(RBr, c); 158 return TRANS_CORNERS_ROTATION(RBr, c);
159 case _trans_LUr: 159 case TRANS_LUr:
160 return _trans_corners_rotation(LUr, c); 160 return TRANS_CORNERS_ROTATION(LUr, c);
161 case _trans_LFr: 161 case TRANS_LFr:
162 return _trans_corners_rotation(LFr, c); 162 return TRANS_CORNERS_ROTATION(LFr, c);
163 case _trans_LDr: 163 case TRANS_LDr:
164 return _trans_corners_rotation(LDr, c); 164 return TRANS_CORNERS_ROTATION(LDr, c);
165 case _trans_LBr: 165 case TRANS_LBr:
166 return _trans_corners_rotation(LBr, c); 166 return TRANS_CORNERS_ROTATION(LBr, c);
167 case _trans_FUr: 167 case TRANS_FUr:
168 return _trans_corners_rotation(FUr, c); 168 return TRANS_CORNERS_ROTATION(FUr, c);
169 case _trans_FRr: 169 case TRANS_FRr:
170 return _trans_corners_rotation(FRr, c); 170 return TRANS_CORNERS_ROTATION(FRr, c);
171 case _trans_FDr: 171 case TRANS_FDr:
172 return _trans_corners_rotation(FDr, c); 172 return TRANS_CORNERS_ROTATION(FDr, c);
173 case _trans_FLr: 173 case TRANS_FLr:
174 return _trans_corners_rotation(FLr, c); 174 return TRANS_CORNERS_ROTATION(FLr, c);
175 case _trans_BUr: 175 case TRANS_BUr:
176 return _trans_corners_rotation(BUr, c); 176 return TRANS_CORNERS_ROTATION(BUr, c);
177 case _trans_BRr: 177 case TRANS_BRr:
178 return _trans_corners_rotation(BRr, c); 178 return TRANS_CORNERS_ROTATION(BRr, c);
179 case _trans_BDr: 179 case TRANS_BDr:
180 return _trans_corners_rotation(BDr, c); 180 return TRANS_CORNERS_ROTATION(BDr, c);
181 case _trans_BLr: 181 case TRANS_BLr:
182 return _trans_corners_rotation(BLr, c); 182 return TRANS_CORNERS_ROTATION(BLr, c);
183 case _trans_UFm: 183 case TRANS_UFm:
184 return _trans_corners_mirrored(UFm, c); 184 return TRANS_CORNERS_MIRRORED(UFm, c);
185 case _trans_ULm: 185 case TRANS_ULm:
186 return _trans_corners_mirrored(ULm, c); 186 return TRANS_CORNERS_MIRRORED(ULm, c);
187 case _trans_UBm: 187 case TRANS_UBm:
188 return _trans_corners_mirrored(UBm, c); 188 return TRANS_CORNERS_MIRRORED(UBm, c);
189 case _trans_URm: 189 case TRANS_URm:
190 return _trans_corners_mirrored(URm, c); 190 return TRANS_CORNERS_MIRRORED(URm, c);
191 case _trans_DFm: 191 case TRANS_DFm:
192 return _trans_corners_mirrored(DFm, c); 192 return TRANS_CORNERS_MIRRORED(DFm, c);
193 case _trans_DLm: 193 case TRANS_DLm:
194 return _trans_corners_mirrored(DLm, c); 194 return TRANS_CORNERS_MIRRORED(DLm, c);
195 case _trans_DBm: 195 case TRANS_DBm:
196 return _trans_corners_mirrored(DBm, c); 196 return TRANS_CORNERS_MIRRORED(DBm, c);
197 case _trans_DRm: 197 case TRANS_DRm:
198 return _trans_corners_mirrored(DRm, c); 198 return TRANS_CORNERS_MIRRORED(DRm, c);
199 case _trans_RUm: 199 case TRANS_RUm:
200 return _trans_corners_mirrored(RUm, c); 200 return TRANS_CORNERS_MIRRORED(RUm, c);
201 case _trans_RFm: 201 case TRANS_RFm:
202 return _trans_corners_mirrored(RFm, c); 202 return TRANS_CORNERS_MIRRORED(RFm, c);
203 case _trans_RDm: 203 case TRANS_RDm:
204 return _trans_corners_mirrored(RDm, c); 204 return TRANS_CORNERS_MIRRORED(RDm, c);
205 case _trans_RBm: 205 case TRANS_RBm:
206 return _trans_corners_mirrored(RBm, c); 206 return TRANS_CORNERS_MIRRORED(RBm, c);
207 case _trans_LUm: 207 case TRANS_LUm:
208 return _trans_corners_mirrored(LUm, c); 208 return TRANS_CORNERS_MIRRORED(LUm, c);
209 case _trans_LFm: 209 case TRANS_LFm:
210 return _trans_corners_mirrored(LFm, c); 210 return TRANS_CORNERS_MIRRORED(LFm, c);
211 case _trans_LDm: 211 case TRANS_LDm:
212 return _trans_corners_mirrored(LDm, c); 212 return TRANS_CORNERS_MIRRORED(LDm, c);
213 case _trans_LBm: 213 case TRANS_LBm:
214 return _trans_corners_mirrored(LBm, c); 214 return TRANS_CORNERS_MIRRORED(LBm, c);
215 case _trans_FUm: 215 case TRANS_FUm:
216 return _trans_corners_mirrored(FUm, c); 216 return TRANS_CORNERS_MIRRORED(FUm, c);
217 case _trans_FRm: 217 case TRANS_FRm:
218 return _trans_corners_mirrored(FRm, c); 218 return TRANS_CORNERS_MIRRORED(FRm, c);
219 case _trans_FDm: 219 case TRANS_FDm:
220 return _trans_corners_mirrored(FDm, c); 220 return TRANS_CORNERS_MIRRORED(FDm, c);
221 case _trans_FLm: 221 case TRANS_FLm:
222 return _trans_corners_mirrored(FLm, c); 222 return TRANS_CORNERS_MIRRORED(FLm, c);
223 case _trans_BUm: 223 case TRANS_BUm:
224 return _trans_corners_mirrored(BUm, c); 224 return TRANS_CORNERS_MIRRORED(BUm, c);
225 case _trans_BRm: 225 case TRANS_BRm:
226 return _trans_corners_mirrored(BRm, c); 226 return TRANS_CORNERS_MIRRORED(BRm, c);
227 case _trans_BDm: 227 case TRANS_BDm:
228 return _trans_corners_mirrored(BDm, c); 228 return TRANS_CORNERS_MIRRORED(BDm, c);
229 case _trans_BLm: 229 case TRANS_BLm:
230 return _trans_corners_mirrored(BLm, c); 230 return TRANS_CORNERS_MIRRORED(BLm, c);
231 default: 231 default:
232 LOG("transform error, unknown transformation %" PRIu8 "\n", t); 232 LOG("transform error, unknown transformation %" PRIu8 "\n", t);
233 return zero; 233 return zero;
234 } 234 }
235} 235}
236 236
237_static cube_t 237STATIC cube_t
238transform(cube_t c, uint8_t t) 238transform(cube_t c, uint8_t t)
239{ 239{
240 switch (t) { 240 switch (t) {
241 case _trans_UFr: 241 case TRANS_UFr:
242 return c; 242 return c;
243 case _trans_ULr: 243 case TRANS_ULr:
244 return _trans_rotation(ULr, c); 244 return TRANS_ROTATION(ULr, c);
245 case _trans_UBr: 245 case TRANS_UBr:
246 return _trans_rotation(UBr, c); 246 return TRANS_ROTATION(UBr, c);
247 case _trans_URr: 247 case TRANS_URr:
248 return _trans_rotation(URr, c); 248 return TRANS_ROTATION(URr, c);
249 case _trans_DFr: 249 case TRANS_DFr:
250 return _trans_rotation(DFr, c); 250 return TRANS_ROTATION(DFr, c);
251 case _trans_DLr: 251 case TRANS_DLr:
252 return _trans_rotation(DLr, c); 252 return TRANS_ROTATION(DLr, c);
253 case _trans_DBr: 253 case TRANS_DBr:
254 return _trans_rotation(DBr, c); 254 return TRANS_ROTATION(DBr, c);
255 case _trans_DRr: 255 case TRANS_DRr:
256 return _trans_rotation(DRr, c); 256 return TRANS_ROTATION(DRr, c);
257 case _trans_RUr: 257 case TRANS_RUr:
258 return _trans_rotation(RUr, c); 258 return TRANS_ROTATION(RUr, c);
259 case _trans_RFr: 259 case TRANS_RFr:
260 return _trans_rotation(RFr, c); 260 return TRANS_ROTATION(RFr, c);
261 case _trans_RDr: 261 case TRANS_RDr:
262 return _trans_rotation(RDr, c); 262 return TRANS_ROTATION(RDr, c);
263 case _trans_RBr: 263 case TRANS_RBr:
264 return _trans_rotation(RBr, c); 264 return TRANS_ROTATION(RBr, c);
265 case _trans_LUr: 265 case TRANS_LUr:
266 return _trans_rotation(LUr, c); 266 return TRANS_ROTATION(LUr, c);
267 case _trans_LFr: 267 case TRANS_LFr:
268 return _trans_rotation(LFr, c); 268 return TRANS_ROTATION(LFr, c);
269 case _trans_LDr: 269 case TRANS_LDr:
270 return _trans_rotation(LDr, c); 270 return TRANS_ROTATION(LDr, c);
271 case _trans_LBr: 271 case TRANS_LBr:
272 return _trans_rotation(LBr, c); 272 return TRANS_ROTATION(LBr, c);
273 case _trans_FUr: 273 case TRANS_FUr:
274 return _trans_rotation(FUr, c); 274 return TRANS_ROTATION(FUr, c);
275 case _trans_FRr: 275 case TRANS_FRr:
276 return _trans_rotation(FRr, c); 276 return TRANS_ROTATION(FRr, c);
277 case _trans_FDr: 277 case TRANS_FDr:
278 return _trans_rotation(FDr, c); 278 return TRANS_ROTATION(FDr, c);
279 case _trans_FLr: 279 case TRANS_FLr:
280 return _trans_rotation(FLr, c); 280 return TRANS_ROTATION(FLr, c);
281 case _trans_BUr: 281 case TRANS_BUr:
282 return _trans_rotation(BUr, c); 282 return TRANS_ROTATION(BUr, c);
283 case _trans_BRr: 283 case TRANS_BRr:
284 return _trans_rotation(BRr, c); 284 return TRANS_ROTATION(BRr, c);
285 case _trans_BDr: 285 case TRANS_BDr:
286 return _trans_rotation(BDr, c); 286 return TRANS_ROTATION(BDr, c);
287 case _trans_BLr: 287 case TRANS_BLr:
288 return _trans_rotation(BLr, c); 288 return TRANS_ROTATION(BLr, c);
289 case _trans_UFm: 289 case TRANS_UFm:
290 return _trans_mirrored(UFm, c); 290 return TRANS_MIRRORED(UFm, c);
291 case _trans_ULm: 291 case TRANS_ULm:
292 return _trans_mirrored(ULm, c); 292 return TRANS_MIRRORED(ULm, c);
293 case _trans_UBm: 293 case TRANS_UBm:
294 return _trans_mirrored(UBm, c); 294 return TRANS_MIRRORED(UBm, c);
295 case _trans_URm: 295 case TRANS_URm:
296 return _trans_mirrored(URm, c); 296 return TRANS_MIRRORED(URm, c);
297 case _trans_DFm: 297 case TRANS_DFm:
298 return _trans_mirrored(DFm, c); 298 return TRANS_MIRRORED(DFm, c);
299 case _trans_DLm: 299 case TRANS_DLm:
300 return _trans_mirrored(DLm, c); 300 return TRANS_MIRRORED(DLm, c);
301 case _trans_DBm: 301 case TRANS_DBm:
302 return _trans_mirrored(DBm, c); 302 return TRANS_MIRRORED(DBm, c);
303 case _trans_DRm: 303 case TRANS_DRm:
304 return _trans_mirrored(DRm, c); 304 return TRANS_MIRRORED(DRm, c);
305 case _trans_RUm: 305 case TRANS_RUm:
306 return _trans_mirrored(RUm, c); 306 return TRANS_MIRRORED(RUm, c);
307 case _trans_RFm: 307 case TRANS_RFm:
308 return _trans_mirrored(RFm, c); 308 return TRANS_MIRRORED(RFm, c);
309 case _trans_RDm: 309 case TRANS_RDm:
310 return _trans_mirrored(RDm, c); 310 return TRANS_MIRRORED(RDm, c);
311 case _trans_RBm: 311 case TRANS_RBm:
312 return _trans_mirrored(RBm, c); 312 return TRANS_MIRRORED(RBm, c);
313 case _trans_LUm: 313 case TRANS_LUm:
314 return _trans_mirrored(LUm, c); 314 return TRANS_MIRRORED(LUm, c);
315 case _trans_LFm: 315 case TRANS_LFm:
316 return _trans_mirrored(LFm, c); 316 return TRANS_MIRRORED(LFm, c);
317 case _trans_LDm: 317 case TRANS_LDm:
318 return _trans_mirrored(LDm, c); 318 return TRANS_MIRRORED(LDm, c);
319 case _trans_LBm: 319 case TRANS_LBm:
320 return _trans_mirrored(LBm, c); 320 return TRANS_MIRRORED(LBm, c);
321 case _trans_FUm: 321 case TRANS_FUm:
322 return _trans_mirrored(FUm, c); 322 return TRANS_MIRRORED(FUm, c);
323 case _trans_FRm: 323 case TRANS_FRm:
324 return _trans_mirrored(FRm, c); 324 return TRANS_MIRRORED(FRm, c);
325 case _trans_FDm: 325 case TRANS_FDm:
326 return _trans_mirrored(FDm, c); 326 return TRANS_MIRRORED(FDm, c);
327 case _trans_FLm: 327 case TRANS_FLm:
328 return _trans_mirrored(FLm, c); 328 return TRANS_MIRRORED(FLm, c);
329 case _trans_BUm: 329 case TRANS_BUm:
330 return _trans_mirrored(BUm, c); 330 return TRANS_MIRRORED(BUm, c);
331 case _trans_BRm: 331 case TRANS_BRm:
332 return _trans_mirrored(BRm, c); 332 return TRANS_MIRRORED(BRm, c);
333 case _trans_BDm: 333 case TRANS_BDm:
334 return _trans_mirrored(BDm, c); 334 return TRANS_MIRRORED(BDm, c);
335 case _trans_BLm: 335 case TRANS_BLm:
336 return _trans_mirrored(BLm, c); 336 return TRANS_MIRRORED(BLm, c);
337 default: 337 default:
338 LOG("transform error, unknown transformation %" PRIu8 "\n", t); 338 LOG("transform error, unknown transformation %" PRIu8 "\n", t);
339 return zero; 339 return zero;
340 } 340 }
341} 341}
342 342
343_static cube_t 343STATIC cube_t
344applytrans(cube_t cube, const char *buf) 344applytrans(cube_t cube, const char *buf)
345{ 345{
346 uint8_t t; 346 uint8_t t;

Generated with cgit - Back to sebastiano.tronto.net