From 9e32042df839bc95a297b8627efae86eb10e8cbf Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Thu, 11 May 2023 09:01:08 +0200 Subject: [PATCH] removed block shuffle --- permute.hh | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/permute.hh b/permute.hh index 715b905..2f4d3f2 100644 --- a/permute.hh +++ b/permute.hh @@ -41,48 +41,6 @@ public: } }; -template -class ReversibleBlockShuffle -{ - static_assert(SIZE >= 2 * BLOCK, "SIZE not large enough"); - static_assert(SIZE % BLOCK == 0, "BLOCK does not divide SIZE"); - static constexpr int BLOCKS = SIZE / BLOCK; - int seq[SIZE-1]; -public: - ReversibleBlockShuffle() - { - CODE::Xorshift32 prng; - for (int j = 0; j < BLOCKS; ++j) { - if (j < BLOCKS-1) - seq[BLOCK*j] = j + prng() % (BLOCKS - j); - for (int i = 0; i < BLOCK-1; ++i) - seq[BLOCK*j+1+i] = i + prng() % (BLOCK - i); - } - } - template - void forward(TYPE *array) - { - for (int j = 0; j < BLOCKS; ++j) { - if (j < BLOCKS-1) - for (int i = 0; i < BLOCK; ++i) - std::swap(array[BLOCK*j+i], array[BLOCK*seq[BLOCK*j]+i]); - for (int i = 0; i < BLOCK-1; ++i) - std::swap(array[BLOCK*j+i], array[BLOCK*j+seq[BLOCK*j+1+i]]); - } - } - template - void reverse(TYPE *array) - { - for (int j = BLOCKS-1; j >= 0; --j) { - for (int i = BLOCK-2; i >= 0; --i) - std::swap(array[BLOCK*j+i], array[BLOCK*j+seq[BLOCK*j+1+i]]); - if (j < BLOCKS-1) - for (int i = 0; i < BLOCK; ++i) - std::swap(array[BLOCK*j+i], array[BLOCK*seq[BLOCK*j]+i]); - } - } -}; - template static void BitReversalPermute(TYPE *array) {