From 4f5c8721b9cdeb992c32b596ee583e6626029e8b Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Thu, 29 Jul 2021 21:28:01 +0100 Subject: [PATCH] move half-reverse to before outer butterfly in I-DCT --- src/openpower/decoder/isa/fastdct-test.py | 2 +- src/openpower/decoder/isa/fastdctlee.py | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/openpower/decoder/isa/fastdct-test.py b/src/openpower/decoder/isa/fastdct-test.py index 72414d5c..c3aacd6b 100644 --- a/src/openpower/decoder/isa/fastdct-test.py +++ b/src/openpower/decoder/isa/fastdct-test.py @@ -28,7 +28,7 @@ import fastdctlee, naivedct, remap_dct_yield class FastDctTest(unittest.TestCase): def test_fast_dct_lee_vs_naive(self): - for i in range(3, 4): + for i in range(3, 10): n = 2**i vector = FastDctTest.nonrandom_vector(n) expect = naivedct.transform(vector) diff --git a/src/openpower/decoder/isa/fastdctlee.py b/src/openpower/decoder/isa/fastdctlee.py index 5d89a3d9..2ab421fb 100644 --- a/src/openpower/decoder/isa/fastdctlee.py +++ b/src/openpower/decoder/isa/fastdctlee.py @@ -360,6 +360,7 @@ def inverse_transform_iter(vec): print("transform2-inv pre-itersum", vec) #vec = halfrev2(vec, True) + vec = [vec[ri[i]] for i in range(n)] #print("transform2-inv post-itersum-reorder", vec) # first the outer butterfly (iterative sum thing) @@ -374,12 +375,9 @@ def inverse_transform_iter(vec): jr.reverse() print ("itersum jr", i+halfsize, i+size, jr) for jh in jr: - #x = vec[ji[jh]] - #y = vec[ji[jh+size]] - #vec[ji[jh+size]] = x + y - x = vec[jh] - y = vec[jh+size] - vec[jh+size] = x + y + x = vec[ri[jh]] + y = vec[ri[jh+size]] + vec[ri[jh+size]] = x + y print (" itersum", size, i, jh, jh+size, x, y, "jh+sz", vec[ji[jh+size]]) size *= 2 @@ -388,7 +386,6 @@ def inverse_transform_iter(vec): # and pretend we LDed data in half-swapped *and* bit-reversed order as well # TODO: merge these two - vec = [vec[ri[i]] for i in range(n)] vec = halfrev2(vec, True) ri = list(range(n)) -- 2.30.2