[vsipl++] patch: FFT 1D / 2D / M bug fixes and test enhancements.

Jules Bergmann jules at codesourcery.com
Wed May 10 01:24:26 UTC 2006


Stefan Seefeld wrote:
> The attached patch enhances the fft_be.cpp tests to cover all
> 1D, 2D, and M Fft variants, inclusively non-square and non-unit-stride
> matrices. Doing this revealed a number of (more or less subtle) bugs
> in the various backends, which are now fixed.
> 
> (There is still one case that I didn't manage to fix: the c->r dft 2D
>  case. If anybody wants to have a look, that would be appreciated.
>  The relevant code is in fft/dft.hpp:386. The appropriate tests in 
> fft_be.cpp
>  are commented out for the moment.)
> 
> The only remaining issue, then, is the finalization of the 3D FFTs,
> which is rather simple, as only fftw and dft support it.

Stefan,

This is great work!  Please check it in.

Things we need to do before 1.1 (but after check in):

  - Workspaces need to allocate temporary storage that exists for
    the life of the Fft object.

    To help maange with split/interleaved, Rt_ext_data will convert a
    pointer to interleaved into a pointer for split (but not
    visa versa).

  - Add FFTW3 split support.

Minor things to think about after 1.1

  - Merging requires_copy into queury_layout to reduce number of virtual
    function calls.  This is pretty far down the path of diminishing
    returns.

  - Naming convention for Fft/Fftm axii.  With the 'A' and '1-A', it
    would be good to have a convention that indicated whether an axis was
    Fftm-convention of Fft-convention.  Could be something as simple
    as Ax and Ay (i.e. Ax == 1 - Ay), but we should be able to do better.

Would you like me to take a look at the FFTW3 split support?

				-- Jules



-- 
Jules Bergmann
CodeSourcery
jules at codesourcery.com
(650) 331-3385 x705



More information about the vsipl++ mailing list