[patch] FFTW split complex fixes; SIMD unaligned fixes

Jules Bergmann jules at codesourcery.com
Mon Jul 30 12:54:45 UTC 2007


This patch fixes and works around several bugs in split-complex FFT and 
unaligned SIMD expressions.

Split-complex FFT support using FFTW was failing numerous tests.  This 
was a combination of bugs and unimplemented functionality in VSIPL++, 
and bugs in FFTW.

* The VSIPL++ split complex to complex transforms (both FFT and FFTM) 
did not handle inverse transforms at all.

* Split real-to-complex and complex-to-real transforms for FFTM were 
unimplemented.

* FFTW (3.1.2 at least) plans capture the gap between real and imaginary 
components for in-place complex FFTs, and for real-complex and 
complex-real FFTs.  If the plan is executed with data with a different 
gap, all heck breaks loose.  Work around is to copy data into buffers 
with same alignment as during planning.


Unaligned SIMD (handling multiple unaligned vectors with the same 
alignment) was broken.  Instead of incrementing past the unaligned 
section, it would decrement before.  This caused it to skip the last 
aligned word of the expressions.  Fix is to make increment_by_element 
explicit.


Patch to be applied, pending test results.

			-- Jules

-- 
Jules Bergmann
CodeSourcery
jules at codesourcery.com
(650) 331-3385 x705
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fftw-simd.diff
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20070730/8927cf12/attachment.ksh>


More information about the vsipl++ mailing list