# HG changeset patch # User Chris Cannam # Date 1382623977 -3600 # Node ID 5256bd5ef4ac4104c1e720eb4d976461c78c3079 # Parent c80c82319ad1bb43b767fc021096d91b599ade09 Pad complex inputs appropriately diff -r c80c82319ad1 -r 5256bd5ef4ac src/may/transform/fft.yeti --- a/src/may/transform/fft.yeti Thu Oct 24 11:17:53 2013 +0100 +++ b/src/may/transform/fft.yeti Thu Oct 24 15:12:57 2013 +0100 @@ -38,15 +38,16 @@ (vec.list (vec.slice unp 0 len)) (vec.list (vec.slice unp len (len*2)))); -complexToUnpacked cc is array -> ~double[] = +complexToUnpacked len cc is number -> array -> ~double[] = vec.primitive - (vec.fromList (map complex.real cc ++ map complex.imaginary cc)); + (vec.resizedTo (len*2) + (vec.fromList (map complex.real cc ++ map complex.imaginary cc))); //!!! doc: n separately as below forward n = (d = new DoubleFFT_1D(n); do cc: - arr = complexToUnpacked cc; + arr = complexToUnpacked n cc; d#complexForward(arr); unpackedToComplex n arr; done); @@ -55,7 +56,7 @@ inverse n = (d = new DoubleFFT_1D(n); do cc: - arr = complexToUnpacked cc; + arr = complexToUnpacked n cc; d#complexInverse(arr, true); unpackedToComplex n arr; done);