24 #ifndef FFT_IMPLEMENTATION_H
25 #define FFT_IMPLEMENTATION_H
63 #include "../system/prerequisites.h"
101 #endif // FFT_IMPLEMENTATION_H
fftw_complex * mCvec2
Local copy of outgoing complex data.
size_t mNRC
Size of the FFT real -> complex.
size_t mNCR
Size of the FFT complex -> real.
std::vector< FFTComplexType > FFTComplexVector
fftw_plan mPlanRC
Plan for FFT real -> complex.
double * mRvec1
Local copy of incoming real data.
Abstract base class for handling fast Fourier transforms.
void updatePlan(const FFTRealVector &in, unsigned flags)
Construct a new plan for the FFT transformation if necessary.
~FFT_Implementation()
Destructor, deletes plans and local vector copies if existing.
fftw_plan mPlanCR
Plan for FFT complex -> real.
fftw_complex * mCvec1
Local copy of incoming complex data.
std::vector< FFTRealType > FFTRealVector
double * mRvec2
Local copy of outgoing real data.
void optimize(FFTRealVector &in)
Optimize plan for the forward transfomation.
void calculateFFT(const FFTRealVector &in, FFTComplexVector &out)
Foward FFT, mapping a real vector with size N to a complex one with size N/2+1.
FFT_Implementation()
Constructor, clears member variables and checks type consistency.
Thread-safe implementation of fftw3.
static std::mutex mPlanMutex
Static mutex protecting planmaking.