hgomersall/pyFFTW — pull request #26 by aberndsen (2013-10-24 00:04:17+00:00)
Title: make pyfftw.interfaces.scipy_fftpack rfft and irfft consistent with scipy. It currently mimics numpy behaviour.

The behaviour of the rfft and irfft routines and scipy.fftpack and numpy differ.

Most importantly is the output.
For scipy:
rfft returns [y(0),Re(y(1)),Im(y(1)),...,Re(y(n/2))]
while numpy
rfft returns [y(0) + 0j, Re(y(1)) + j*Im(y(1)),...,Re(y(n/2)) + 0j]

As well, the behaviour of the axis parameter differs.

FFTW3, and hence pyFFTW, behaves similarly to numpy
(except it doesn't upcast 32-bit numbers to 64-bit ones as numpy).

Since pyfftw.interfaces.scipy_fftpack uses FFTW3, it mimics the behaviour
of numpy's rfft and irfft. So, had one developed their code with scipy's
rfft and irfft's in mind, we can't simply drop in the pyfftw.interfaces.scipy_fftpack
as a replacement, we need to convert to (from) the numpy format for rfft (irfft).

This commit does that so pyfftw.interfaces.scipy_fftpack behaves like scipy.fftpack.

See http://mail.scipy.org/pipermail/numpy-discussion/2006-September/022977.html
http://comments.gmane.org/gmane.comp.python.scientific.user/19691
for some further discussion.