diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2024-10-04 12:01:41 +0200 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2024-10-04 12:01:41 +0200 |
| commit | 80b065f757240af7920862b3e09f32a6dc06d392 (patch) | |
| tree | c0223ba1f0a3254305f59637b3fb25bd58698cf8 /src/arch/common.h | |
| parent | fd111a1a51b8293f79db6284331af50824df92b9 (diff) | |
| download | nissy-core-80b065f757240af7920862b3e09f32a6dc06d392.tar.gz nissy-core-80b065f757240af7920862b3e09f32a6dc06d392.zip | |
Table-based transformations (will revert immediately)
This commit changes transformations to being based on a lookup
table intead of a big switch. This is something I had planned for a long
time and the code is nicer with this change. But unfortunately the performance
is noticeably worse, so I'll revert all these changes in the next commit.
I wanted to push this anyway so we can keep track of this.
Diffstat (limited to 'src/arch/common.h')
| -rw-r--r-- | src/arch/common.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/arch/common.h b/src/arch/common.h index 346403b..1469b30 100644 --- a/src/arch/common.h +++ b/src/arch/common.h | |||
| @@ -1,4 +1,11 @@ | |||
| 1 | #define ZERO_CUBE cubefrompieces( \ | ||
| 2 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) | ||
| 3 | #define SOLVED_CUBE cubefrompieces( \ | ||
| 4 | 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) | ||
| 1 | STATIC void pieces(cube_t *, uint8_t [static 8], uint8_t [static 12]); | 5 | STATIC void pieces(cube_t *, uint8_t [static 8], uint8_t [static 12]); |
| 6 | STATIC_INLINE cube_t cubefrompieces(uint8_t, uint8_t, uint8_t, uint8_t, | ||
| 7 | uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, | ||
| 8 | uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t); | ||
| 2 | STATIC_INLINE bool equal(cube_t, cube_t); | 9 | STATIC_INLINE bool equal(cube_t, cube_t); |
| 3 | STATIC_INLINE cube_t invertco(cube_t); | 10 | STATIC_INLINE cube_t invertco(cube_t); |
| 4 | STATIC_INLINE cube_t compose_epcpeo(cube_t, cube_t); | 11 | STATIC_INLINE cube_t compose_epcpeo(cube_t, cube_t); |
