Add an alternative FFT operator
This branch introduces a new FFT operator which uses the same primitive data type (float or complex) in both position and harmonic space.
For complex inputs, it behaves in exactly the same way as the existing FFTOperator
; for real fields it represents the (hermitian) complex fields on the harmonic side as the sum of their real and imaginary parts. This construction does not lose any information with respect to the complex fields, lives on the same spaces and has the same distance array.
Currently tests only use zerocenter=False
, because zerocentered domains seem to trigger a bug in Nifty's FFTs (see issue #174 (closed)). Also one of the MPI tests fails because FFTs of odd length are not (yet) supported in that scenario. However it is absolutely necessary to test odd lengths to get more coverage.