aboutsummaryrefslogtreecommitdiff
path: root/src/cube_portable.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cube_portable.h')
-rw-r--r--src/cube_portable.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/cube_portable.h b/src/cube_portable.h
index 2999d8a..48885ff 100644
--- a/src/cube_portable.h
+++ b/src/cube_portable.h
@@ -1,4 +1,7 @@
1typedef cube_t cube_fast_t; 1typedef struct {
2 uint8_t corner[8];
3 uint8_t edge[12];
4} cube_fast_t;
2 5
3_static_inline cube_fast_t fastcube( 6_static_inline cube_fast_t fastcube(
4 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, 7 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t,
@@ -6,6 +9,8 @@ _static_inline cube_fast_t fastcube(
6 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, 9 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t,
7 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t 10 uint8_t, uint8_t, uint8_t, uint8_t, uint8_t
8); 11);
12_static uint8_t corner(cube_fast_t, int);
13_static uint8_t edge(cube_fast_t, int);
9_static cube_fast_t cubetofast(cube_t); 14_static cube_fast_t cubetofast(cube_t);
10_static cube_t fasttocube(cube_fast_t); 15_static cube_t fasttocube(cube_fast_t);
11_static_inline bool equal_fast(cube_fast_t, cube_fast_t); 16_static_inline bool equal_fast(cube_fast_t, cube_fast_t);
@@ -66,6 +71,21 @@ fastcube(
66 return cube; 71 return cube;
67} 72}
68 73
74_static uint8_t
75corner(cube_fast_t c, int i)
76{
77 DBG_ASSERT(i >= 0 && i < 8, 255, "Corner must be between 0 and 7\n");
78
79 return c.corner[i];
80}
81_static uint8_t
82edge(cube_fast_t c, int i)
83{
84 DBG_ASSERT(i >= 0 && i < 12, 255, "Edge must be between 0 and 11\n");
85
86 return c.edge[i];
87}
88
69_static cube_fast_t 89_static cube_fast_t
70cubetofast(cube_t cube) 90cubetofast(cube_t cube)
71{ 91{

Generated with cgit - Back to sebastiano.tronto.net