28 #ifndef SYNTHESIS_FFT2D_H
29 #define SYNTHESIS_FFT2D_H
void doFFT(casacore::Complex *&out, casacore::Long x, casacore::Long y, casacore::Bool toFreq)
fftwf_plan planC2C_back_p
FFT2D(casacore::Bool useFFTW=true)
std::complex< Float > Complex
void c2cFFT(casacore::Complex *&out, casacore::Long x, casacore::Long y, casacore::Bool toFreq=true)
In place 2D FFT; out has to be of shape x,y
void r2cFFT(casacore::Complex *&out, casacore::Float *&in, casacore::Long x, casacore::Long y)
out has to be a pointer to an array [(x/2+1), y] shape
fftw_plan planC2CD_forw_p
void c2cFFTInDouble(casacore::Lattice< casacore::Complex > &inout, casacore::Bool toFreq=true)
Same as above EXCEPT will do the FFT in DComplex but input and output are Complex.
std::complex< Double > DComplex
void fftShift(casacore::Complex *&scr, casacore::Long x, casacore::Long y, casacore::Bool toFreq=false)
The toFreq=false in FFTShift does the normalization of 1/N_sample expected of ifft.
bool Bool
Define the standard types used by Casacore.
std::vector< casacore::Float > wsave_p
casacore::FFTPack stuff
fftwf_plan planC2C_forw_p
casacore::FFTW stuff
unsigned long long ooLong
This is a not a full generic fft class...use casacore::FFTServer or casacore::LatticeFFT for that...
casacore::Long nx_p
casacore::FFTW fft1_p;
fftw_plan planC2CD_back_p
FFT2D & operator=(const FFT2D &other)
static void complexConvert(casacore::DComplex *&srcD, casacore::Complex *&scr, const ooLong len, const casacore::Bool down=false)
C style element conversion avoiding overhead of iterators etc...