From 2d66a0ffea4b03cd27b0f4363f8c4b8b0a1242e4 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sun, 18 Aug 2024 15:31:06 +0200 Subject: Removed duplication --- src/arch/neon.h | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) (limited to 'src/arch/neon.h') diff --git a/src/arch/neon.h b/src/arch/neon.h index a75f86d..b44664b 100644 --- a/src/arch/neon.h +++ b/src/arch/neon.h @@ -316,33 +316,12 @@ _static_inline cube_t invcoord_esep(int64_t esep) { cube_t ret; - int64_t bit1, bit2, i, j, jj, k, l, s, v, w, is1, set1, set2; - uint8_t slice[3] = {0}; + uint8_t mem[16] = {0}; - ret = solved; - uint8_t mem[16]; - set1 = esep % 70; - set2 = esep / 70; - - for (i = 0, j = 0, k = 4, l = 4; i < 12; i++) - { - v = binomial[11 - i][k]; - jj = j < 8; - w = jj * binomial[7 - (j * jj)][l]; - bit2 = set2 >= v; - bit1 = set1 >= w; - is1 = (1 - bit2) * bit1; - - set2 -= bit2 * v; - k -= bit2; - set1 -= is1 * w; - l -= is1; - j += (1 - bit2); - s = 2 * bit2 + (1 - bit2) * bit1; - - mem[i] = (slice[s]++) | (uint8_t)(s << 2); - } + invcoord_esep_array(esep % 70, esep / 70, mem); + ret = solved; ret.edge = vld1q_u8(mem); + return ret; } -- cgit v1.3