aboutsummaryrefslogtreecommitdiff
path: root/src/cube_portable.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-06-09 20:06:19 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-06-09 20:06:19 +0200
commit0b1930307f41db3ea7552d6b2f4666b33c64d26a (patch)
tree6a2558e391f5cc14fa22770cb2791e4a85d84e5e /src/cube_portable.h
parentb218c803ae1110b08b4896be0a59177e280c9091 (diff)
downloadnissy-core-0b1930307f41db3ea7552d6b2f4666b33c64d26a.tar.gz
nissy-core-0b1930307f41db3ea7552d6b2f4666b33c64d26a.zip
More cleanup
Diffstat (limited to 'src/cube_portable.h')
-rw-r--r--src/cube_portable.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/cube_portable.h b/src/cube_portable.h
index 71a7e41..77e803b 100644
--- a/src/cube_portable.h
+++ b/src/cube_portable.h
@@ -22,6 +22,7 @@ _static_inline void compose_corners_inplace(cube_t, cube_t, cube_t *);
22_static_inline cube_t compose_edges(cube_t, cube_t); 22_static_inline cube_t compose_edges(cube_t, cube_t);
23_static_inline cube_t compose_corners(cube_t, cube_t); 23_static_inline cube_t compose_corners(cube_t, cube_t);
24_static_inline cube_t compose(cube_t, cube_t); 24_static_inline cube_t compose(cube_t, cube_t);
25_static_inline cube_t inverse(cube_t);
25 26
26_static_inline int64_t coord_co(cube_t); 27_static_inline int64_t coord_co(cube_t);
27_static_inline int64_t coord_csep(cube_t); 28_static_inline int64_t coord_csep(cube_t);
@@ -133,6 +134,27 @@ compose(cube_t c1, cube_t c2)
133 return ret; 134 return ret;
134} 135}
135 136
137cube_t
138inverse(cube_t cube)
139{
140 uint8_t i, piece, orien;
141 cube_t ret;
142
143 for (i = 0; i < 12; i++) {
144 piece = cube.edge[i];
145 orien = piece & _eobit;
146 ret.edge[piece & _pbits] = i | orien;
147 }
148
149 for (i = 0; i < 8; i++) {
150 piece = cube.corner[i];
151 orien = ((piece << 1) | (piece >> 1)) & _cobits2;
152 ret.corner[piece & _pbits] = i | orien;
153 }
154
155 return ret;
156}
157
136_static_inline int64_t 158_static_inline int64_t
137coord_co(cube_t c) 159coord_co(cube_t c)
138{ 160{

Generated with cgit - Back to sebastiano.tronto.net