# HG changeset patch # User Chris Cannam # Date 1368280243 -3600 # Node ID ddc8fa794880383fbd217d912cd1820a3b7c910d # Parent 937f908cae52a58c8cf4031f477a945a586aef3d Fix complex (avoiding dodgy bytecode) diff -r 937f908cae52 -r ddc8fa794880 yetilab/transform/fft.yeti --- a/yetilab/transform/fft.yeti Sat May 11 12:20:40 2013 +0100 +++ b/yetilab/transform/fft.yeti Sat May 11 14:50:43 2013 +0100 @@ -19,14 +19,16 @@ complexToPacked arr = (n = length arr; - v = (map do i: - ix = int (i/2); + v = new double[n*2-2]; + for [0..(n-1)*2-1] do i: + ix = int (i/2); + v[i] := if i == ix*2 then complex.real arr[ix] else complex.imaginary arr[ix] fi; - done [0..(n-1)*2-1]) as ~double[]; + done; v[1] := complex.real arr[n-1]; v); diff -r 937f908cae52 -r ddc8fa794880 yetilab/transform/test/test_fft.yeti --- a/yetilab/transform/test/test_fft.yeti Sat May 11 12:20:40 2013 +0100 +++ b/yetilab/transform/test/test_fft.yeti Sat May 11 14:50:43 2013 +0100 @@ -10,7 +10,7 @@ testFFT orig reals imags = (out = realForward (length orig) (fromList orig); back = realInverse (length orig) out; - compare out (array (map2 complex reals imags)) and compare orig (list back)); + compare out (array (map2 complex reals imags)) and compare (list back) orig); [