aboutsummaryrefslogtreecommitdiff
path: root/src/_moves_arr.c
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2023-11-01 19:26:09 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2023-11-01 19:26:09 +0100
commit08efbd62ef956327924aaea1fcfa97fde4dc1678 (patch)
tree656d9f6ab50eee73a6e7fd79098e0dcfa1fc9034 /src/_moves_arr.c
parentd65ce8e86b517ef3f7d48cf5ded1101444e05b2b (diff)
downloadnissy-core-08efbd62ef956327924aaea1fcfa97fde4dc1678.tar.gz
nissy-core-08efbd62ef956327924aaea1fcfa97fde4dc1678.zip
Reworked moves and transformations, moved some stuff
Diffstat (limited to '')
-rw-r--r--src/_moves_arr.c (renamed from src/_move_logic_arr.c)167
1 files changed, 141 insertions, 26 deletions
diff --git a/src/_move_logic_arr.c b/src/_moves_arr.c
index d8aec10..bea0fee 100644
--- a/src/_move_logic_arr.c
+++ b/src/_moves_arr.c
@@ -27,79 +27,164 @@
27 r[k] ^= _eobit; \ 27 r[k] ^= _eobit; \
28 r[l] ^= _eobit; 28 r[l] ^= _eobit;
29 29
30uint8_t aux, auy, auz; 30static inline cube_t
31cube_t ret = c; 31inline_move_U(cube_t c)
32{
33 uint8_t aux;
34 cube_t ret = c;
32 35
33switch (m) {
34case U:
35 PERM4(ret.e, _e_uf, _e_ul, _e_ub, _e_ur) 36 PERM4(ret.e, _e_uf, _e_ul, _e_ub, _e_ur)
36 PERM4(ret.c, _c_ufr, _c_ufl, _c_ubl, _c_ubr) 37 PERM4(ret.c, _c_ufr, _c_ufl, _c_ubl, _c_ubr)
37 38
38 return ret; 39 return ret;
39case U2: 40}
41
42static inline cube_t
43inline_move_U2(cube_t c)
44{
45 uint8_t aux;
46 cube_t ret = c;
47
40 PERM22(ret.e, _e_uf, _e_ub, _e_ul, _e_ur) 48 PERM22(ret.e, _e_uf, _e_ub, _e_ul, _e_ur)
41 PERM22(ret.c, _c_ufr, _c_ubl, _c_ufl, _c_ubr) 49 PERM22(ret.c, _c_ufr, _c_ubl, _c_ufl, _c_ubr)
42 50
43 return ret; 51 return ret;
44case U3: 52}
53
54static inline cube_t
55inline_move_U3(cube_t c)
56{
57 uint8_t aux;
58 cube_t ret = c;
59
45 PERM4(ret.e, _e_uf, _e_ur, _e_ub, _e_ul) 60 PERM4(ret.e, _e_uf, _e_ur, _e_ub, _e_ul)
46 PERM4(ret.c, _c_ufr, _c_ubr, _c_ubl, _c_ufl) 61 PERM4(ret.c, _c_ufr, _c_ubr, _c_ubl, _c_ufl)
47 62
48 return ret; 63 return ret;
49case D: 64}
65
66static inline cube_t
67inline_move_D(cube_t c)
68{
69 uint8_t aux;
70 cube_t ret = c;
71
50 PERM4(ret.e, _e_df, _e_dr, _e_db, _e_dl) 72 PERM4(ret.e, _e_df, _e_dr, _e_db, _e_dl)
51 PERM4(ret.c, _c_dfr, _c_dbr, _c_dbl, _c_dfl) 73 PERM4(ret.c, _c_dfr, _c_dbr, _c_dbl, _c_dfl)
52 74
53 return ret; 75 return ret;
54case D2: 76}
77
78static inline cube_t
79inline_move_D2(cube_t c)
80{
81 uint8_t aux;
82 cube_t ret = c;
83
55 PERM22(ret.e, _e_df, _e_db, _e_dr, _e_dl) 84 PERM22(ret.e, _e_df, _e_db, _e_dr, _e_dl)
56 PERM22(ret.c, _c_dfr, _c_dbl, _c_dbr, _c_dfl) 85 PERM22(ret.c, _c_dfr, _c_dbl, _c_dbr, _c_dfl)
57 86
58 return ret; 87 return ret;
59case D3: 88}
89
90static inline cube_t
91inline_move_D3(cube_t c)
92{
93 uint8_t aux;
94 cube_t ret = c;
95
60 PERM4(ret.e, _e_df, _e_dl, _e_db, _e_dr) 96 PERM4(ret.e, _e_df, _e_dl, _e_db, _e_dr)
61 PERM4(ret.c, _c_dfr, _c_dfl, _c_dbl, _c_dbr) 97 PERM4(ret.c, _c_dfr, _c_dfl, _c_dbl, _c_dbr)
62 98
63 return ret; 99 return ret;
64case R: 100}
101
102static inline cube_t
103inline_move_R(cube_t c)
104{
105 uint8_t aux, auy, auz;
106 cube_t ret = c;
107
65 PERM4(ret.e, _e_ur, _e_br, _e_dr, _e_fr) 108 PERM4(ret.e, _e_ur, _e_br, _e_dr, _e_fr)
66 PERM4(ret.c, _c_ufr, _c_ubr, _c_dbr, _c_dfr) 109 PERM4(ret.c, _c_ufr, _c_ubr, _c_dbr, _c_dfr)
67 110
68 CO4(ret.c, _c_ubr, _c_dfr, _c_ufr, _c_dbr) 111 CO4(ret.c, _c_ubr, _c_dfr, _c_ufr, _c_dbr)
69 112
70 return ret; 113 return ret;
71case R2: 114}
115
116static inline cube_t
117inline_move_R2(cube_t c)
118{
119 uint8_t aux;
120 cube_t ret = c;
121
72 PERM22(ret.e, _e_ur, _e_dr, _e_fr, _e_br) 122 PERM22(ret.e, _e_ur, _e_dr, _e_fr, _e_br)
73 PERM22(ret.c, _c_ufr, _c_dbr, _c_ubr, _c_dfr) 123 PERM22(ret.c, _c_ufr, _c_dbr, _c_ubr, _c_dfr)
74 124
75 return ret; 125 return ret;
76case R3: 126}
127
128static inline cube_t
129inline_move_R3(cube_t c)
130{
131 uint8_t aux, auy, auz;
132 cube_t ret = c;
133
77 PERM4(ret.e, _e_ur, _e_fr, _e_dr, _e_br) 134 PERM4(ret.e, _e_ur, _e_fr, _e_dr, _e_br)
78 PERM4(ret.c, _c_ufr, _c_dfr, _c_dbr, _c_ubr) 135 PERM4(ret.c, _c_ufr, _c_dfr, _c_dbr, _c_ubr)
79 136
80 CO4(ret.c, _c_ubr, _c_dfr, _c_ufr, _c_dbr) 137 CO4(ret.c, _c_ubr, _c_dfr, _c_ufr, _c_dbr)
81 138
82 return ret; 139 return ret;
83case L: 140}
141
142static inline cube_t
143inline_move_L(cube_t c)
144{
145 uint8_t aux, auy, auz;
146 cube_t ret = c;
147
84 PERM4(ret.e, _e_ul, _e_fl, _e_dl, _e_bl) 148 PERM4(ret.e, _e_ul, _e_fl, _e_dl, _e_bl)
85 PERM4(ret.c, _c_ufl, _c_dfl, _c_dbl, _c_ubl) 149 PERM4(ret.c, _c_ufl, _c_dfl, _c_dbl, _c_ubl)
86 150
87 CO4(ret.c, _c_ufl, _c_dbl, _c_dfl, _c_ubl) 151 CO4(ret.c, _c_ufl, _c_dbl, _c_dfl, _c_ubl)
88 152
89 return ret; 153 return ret;
90case L2: 154}
155
156static inline cube_t
157inline_move_L2(cube_t c)
158{
159 uint8_t aux;
160 cube_t ret = c;
161
91 PERM22(ret.e, _e_ul, _e_dl, _e_fl, _e_bl) 162 PERM22(ret.e, _e_ul, _e_dl, _e_fl, _e_bl)
92 PERM22(ret.c, _c_ufl, _c_dbl, _c_ubl, _c_dfl) 163 PERM22(ret.c, _c_ufl, _c_dbl, _c_ubl, _c_dfl)
93 164
94 return ret; 165 return ret;
95case L3: 166}
167
168static inline cube_t
169inline_move_L3(cube_t c)
170{
171 uint8_t aux, auy, auz;
172 cube_t ret = c;
173
96 PERM4(ret.e, _e_ul, _e_bl, _e_dl, _e_fl) 174 PERM4(ret.e, _e_ul, _e_bl, _e_dl, _e_fl)
97 PERM4(ret.c, _c_ufl, _c_ubl, _c_dbl, _c_dfl) 175 PERM4(ret.c, _c_ufl, _c_ubl, _c_dbl, _c_dfl)
98 176
99 CO4(ret.c, _c_ufl, _c_dbl, _c_dfl, _c_ubl) 177 CO4(ret.c, _c_ufl, _c_dbl, _c_dfl, _c_ubl)
100 178
101 return ret; 179 return ret;
102case F: 180}
181
182static inline cube_t
183inline_move_F(cube_t c)
184{
185 uint8_t aux, auy, auz;
186 cube_t ret = c;
187
103 PERM4(ret.e, _e_uf, _e_fr, _e_df, _e_fl) 188 PERM4(ret.e, _e_uf, _e_fr, _e_df, _e_fl)
104 PERM4(ret.c, _c_ufr, _c_dfr, _c_dfl, _c_ufl) 189 PERM4(ret.c, _c_ufr, _c_dfr, _c_dfl, _c_ufl)
105 190
@@ -107,12 +192,26 @@ case F:
107 CO4(ret.c, _c_ufr, _c_dfl, _c_dfr, _c_ufl) 192 CO4(ret.c, _c_ufr, _c_dfl, _c_dfr, _c_ufl)
108 193
109 return ret; 194 return ret;
110case F2: 195}
196
197static inline cube_t
198inline_move_F2(cube_t c)
199{
200 uint8_t aux;
201 cube_t ret = c;
202
111 PERM22(ret.e, _e_uf, _e_df, _e_fr, _e_fl) 203 PERM22(ret.e, _e_uf, _e_df, _e_fr, _e_fl)
112 PERM22(ret.c, _c_ufr, _c_dfl, _c_ufl, _c_dfr) 204 PERM22(ret.c, _c_ufr, _c_dfl, _c_ufl, _c_dfr)
113 205
114 return ret; 206 return ret;
115case F3: 207}
208
209static inline cube_t
210inline_move_F3(cube_t c)
211{
212 uint8_t aux, auy, auz;
213 cube_t ret = c;
214
116 PERM4(ret.e, _e_uf, _e_fl, _e_df, _e_fr) 215 PERM4(ret.e, _e_uf, _e_fl, _e_df, _e_fr)
117 PERM4(ret.c, _c_ufr, _c_ufl, _c_dfl, _c_dfr) 216 PERM4(ret.c, _c_ufr, _c_ufl, _c_dfl, _c_dfr)
118 217
@@ -120,7 +219,14 @@ case F3:
120 CO4(ret.c, _c_ufr, _c_dfl, _c_dfr, _c_ufl) 219 CO4(ret.c, _c_ufr, _c_dfl, _c_dfr, _c_ufl)
121 220
122 return ret; 221 return ret;
123case B: 222}
223
224static inline cube_t
225inline_move_B(cube_t c)
226{
227 uint8_t aux, auy, auz;
228 cube_t ret = c;
229
124 PERM4(ret.e, _e_ub, _e_bl, _e_db, _e_br) 230 PERM4(ret.e, _e_ub, _e_bl, _e_db, _e_br)
125 PERM4(ret.c, _c_ubr, _c_ubl, _c_dbl, _c_dbr) 231 PERM4(ret.c, _c_ubr, _c_ubl, _c_dbl, _c_dbr)
126 232
@@ -128,12 +234,26 @@ case B:
128 CO4(ret.c, _c_ubl, _c_dbr, _c_dbl, _c_ubr) 234 CO4(ret.c, _c_ubl, _c_dbr, _c_dbl, _c_ubr)
129 235
130 return ret; 236 return ret;
131case B2: 237}
238
239static inline cube_t
240inline_move_B2(cube_t c)
241{
242 uint8_t aux;
243 cube_t ret = c;
244
132 PERM22(ret.e, _e_ub, _e_db, _e_br, _e_bl) 245 PERM22(ret.e, _e_ub, _e_db, _e_br, _e_bl)
133 PERM22(ret.c, _c_ubr, _c_dbl, _c_ubl, _c_dbr) 246 PERM22(ret.c, _c_ubr, _c_dbl, _c_ubl, _c_dbr)
134 247
135 return ret; 248 return ret;
136case B3: 249}
250
251static inline cube_t
252inline_move_B3(cube_t c)
253{
254 uint8_t aux, auy, auz;
255 cube_t ret = c;
256
137 PERM4(ret.e, _e_ub, _e_br, _e_db, _e_bl) 257 PERM4(ret.e, _e_ub, _e_br, _e_db, _e_bl)
138 PERM4(ret.c, _c_ubr, _c_dbr, _c_dbl, _c_ubl) 258 PERM4(ret.c, _c_ubr, _c_dbr, _c_dbl, _c_ubl)
139 259
@@ -141,9 +261,4 @@ case B3:
141 CO4(ret.c, _c_ubl, _c_dbr, _c_dbl, _c_ubr) 261 CO4(ret.c, _c_ubl, _c_dbr, _c_dbl, _c_ubr)
142 262
143 return ret; 263 return ret;
144default:
145#ifdef DEBUG
146 fprintf(stderr, "mover error, unknown move\n");
147#endif
148 goto move_error;
149} 264}

Generated with cgit - Back to sebastiano.tronto.net