Support FFT of split complex representation
Moved from https://github.com/JuliaLang/julia/issues/12398
As shown by @simonster (https://github.com/simonster/StructsOfArrays.jl), Structure of Array is much easier to vectorize. Using StructOfArrays(Complex64) and @simd I can see a speed up of >2x. However, it seems that this is not very well supported by our fft API.
As @simonster suggested, I tried to implement FFT on StructOfArrays using fftw_plan_gure64_split_dft. The non-plan version works greet. However, I get SegFault when trying to use the plan interface. It seems that fftw assumes that the relative address between the real and complex part is fixed and therefore is not accessing the right address when I pass in a different array.
Is there a fftw interface that can be used to implement this?
@stevengj
https://github.com/FFTW/fftw3/issues/88#issuecomment-282403233