From 83338a2f753ebbb7ba7b154cc60b2f427b6121b0 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Wed, 26 Mar 2025 19:22:50 +0100 Subject: Added inverse coordinate for CO this is necessary for DR coordinate --- src/arch/neon.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/arch/neon.h') diff --git a/src/arch/neon.h b/src/arch/neon.h index d5f5f8b..fc0e612 100644 --- a/src/arch/neon.h +++ b/src/arch/neon.h @@ -219,6 +219,25 @@ coord_co(cube_t c) return ret; } +STATIC_INLINE cube_t +invcoord_co(int64_t coord) +{ + int64_t co, c, i, p; + uint8_t mem[8]; + cube_t cube; + + for (i = 0, p = 0, c = coord; i < 8; i++, c /= 3) { + co = i == 7 ? ((3 - (p % 3)) % 3) : (c % 3); + p += co; + mem[i] = i + (co << COSHIFT); + } + + cube.corner = vld1_u8(mem); + cube.edge = SOLVED_CUBE.edge; + + return cube; +} + STATIC_INLINE int64_t coord_csep(cube_t c) { -- cgit v1.3