MERGE: Gsl FFT <-> FFTW compatibility


I've changed gslfft to produce the same results FFTW produces. This should make
it easy to optionally use FFTW to speed up gslfft, however this merge request
doesn't provide any optional FFTW support, but only prepares the code base for

For the real variants, I've not rederived the formulas from scratch, but added
a minus sign (on the imaginary part) where required, to be able to use the old
code. Besides the extended testfft test, I've tested all variants against FFTW,
to ensure that the results are the same.

I've also grepped through all code for gslfft usage, and adapted it where
necessary. Make report also passes with the changes applied.

Here are the commit logs of the branch:

commit 618d89e0a0682be9869d6e091c0dc2a19fa19487
Author: Stefan Westerfeld <stefan space twc de>
Date:   Wed Oct 13 11:23:50 2010 +0200

    BSE: Adapted FFT tests to new gslfft/FFTW compatible results.
    Added DFT test from #491577, which now passes due to new style gslfft results.

commit 1924ca83ecb71986aa5c2a27917957d6eabc3a68
Author: Stefan Westerfeld <stefan space twc de>
Date:   Wed Oct 13 11:21:44 2010 +0200

    BSE: Use new scaled variants of gslfft to get same results as before.

commit 3523cfaa2563b819f9401e48d8bb5d541918c923
Author: Stefan Westerfeld <stefan space twc de>
Date:   Wed Oct 13 11:20:35 2010 +0200

    BSE: Make gslfft results compatible with fftw.
    The Numerical Recipies FFT and FFTW behave differently because a minus
    sign in the formula is different (so Numerical Recipies analysis performs
    the same computation like FFTW synthesis and vice versa). This change
    makes gslfft and FFTW results equivalent. Also, while FFTW never scales
    results, gslfft used to scale results during backward transform. To get
    the same results, scaling is now only performed optionally in gslfft.
    Finally, real variants (like fftar/fftsr) have been changed to produce the
    same results like real FFTW.

To merge this change, use:

branch: gslfft-fftw-compat

This merge request replaces the old bug-491577 merge request.

   Cu... Stefan
Stefan Westerfeld, Hamburg/Germany,

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]