Am 27.03.2016 um 22:58 schrieb Matthias Pospiech:
Hello,
I am using the FFT of eigen, however with a custom allocator.
The custom one is based on the code from Nicolai M. Josuttis
http://www.josuttis.com/libbook/memory/myalloc.hpp.html
with fftw_malloc and fftw_free instead of new and delete.
The class is called fftalloc.
This simple code however fails:
std::vector<complex<double>,fftalloc<complex<double>>>data(N);
std::vector<complex<double>,fftalloc<complex<double>>>dataFourier(N);
FFT<double>fft; fft.fwd(dataFourier,data);
I solved it by defining a new set of functions:
voidfwd(std::vector<Complex,fftalloc<Complex>>&dst,constvector<_Input,fftalloc<_Input>>&src)
voidinv(std::vector<_Output,fftalloc<_Output>>&dst,conststd::vector<Complex,fftalloc<Complex>>&src,Indexnfft=-1)
it compiles now and the result of ifft(fft(A)) differs now from A by << 1e-16
The only restriction is now, that either non or both arrays must be defined
with or without the extra allocator.