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/avx2.h | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) (limited to 'src/arch/avx2.h') diff --git a/src/arch/avx2.h b/src/arch/avx2.h index 59a0d6c..b1a7ab7 100644 --- a/src/arch/avx2.h +++ b/src/arch/avx2.h @@ -286,30 +286,9 @@ _static_inline cube_t invcoord_esep(int64_t esep) { cube_t eee, ret; - int64_t bit1, bit2, i, j, jj, k, l, s, v, w, is1, set1, set2; - uint8_t mem[32]; - uint8_t slice[3] = {0}; + uint8_t mem[32] = {0}; - 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+16] = (slice[s]++) | (uint8_t)(s << 2); - } + invcoord_esep_array(esep % 70, esep / 70, mem+16); ret = solved; eee = _mm256_loadu_si256((__m256i_u *)&mem); -- cgit v1.3