28 #ifndef SCIMATH_FFTSERVER_H
29 #define SCIMATH_FFTSERVER_H
32 #include <casacore/casa/aips.h>
33 #include <casacore/scimath/Mathematics/FFTW.h>
34 #include <casacore/casa/Arrays/IPosition.h>
35 #include <casacore/casa/Arrays/ArrayFwd.h>
36 #include <casacore/casa/Containers/Block.h>
361 const uInt& whichAxis,
372 const uInt& whichAxis,
@ REALTOCOMPLEX
Real to Complex or Complex to Real transforms.
@ REALSYMMETRIC
Real to Real transforms with symmetric Arrays (not used)
@ COMPLEXTOREAL
Real to Complex or Complex to Real transforms.
@ COMPLEX
Forward Complex to Complex transforms.
@ INVCOMPLEX
Inverse Complex to Complex transforms.
A class with methods for Fast Fourier Transforms.
void flip(Array< S > &cData, const Bool toZero, const Bool isHermitian)
void fft(Array< S > &cValues, const Bool toFrequency=True)
Complex to complex in-place fft.
std::vector< S > itsWorkOut
IPosition determineShape(const IPosition &rShape, const Array< S > &cData)
void fftshift(Array< T > &outValues, Array< Bool > &outFlags, const Array< T > &rValues, const Array< Bool > &inFlags, const uInt &whichAxis, const Double &relshift, const Bool goodIsTrue=False)
N-D real->real FFT shift (FFT to complex - phase-mult - inverse FFT) with flagging.
Block< S > itsBuffer
buffer for copying non-contigious arrays to contigious ones.
void fft(Array< T > &rResult, const Array< S > &cData)
FFTServer(const IPosition &fftSize, const FFTEnums::TransformType transformType=FFTEnums::REALTOCOMPLEX)
Initialise the server to do transforms on Arrays of the specified shape.
void fft(Array< T > &rResult, Array< S > &cData, const Bool constInput=False)
Complex to real fft.
std::vector< T > itsWorkIn
IPosition itsSize
The size of the last FFT done by this object.
void fft0(Array< S > &cResult, Array< T > &rData, const Bool constInput=False)
The fft0 functions are equivalent to the fft functions described above except that the origin of the ...
FFTServer< T, S > & operator=(const FFTServer< T, S > &other)
The assignment operator which does the same thing as the copy constructor.
FFTEnums::TransformType itsTransformType
Whether the last FFT was complex<->complex or not.
void fft(Array< S > &cResult, const Array< T > &rData)
void resize(const IPosition &fftSize, const FFTEnums::TransformType transformType=FFTEnums::REALTOCOMPLEX)
Modify the FFTServer object to do transforms of the supplied shape.
void fft0(Array< S > &cResult, const Array< S > &cData, const Bool toFrequency=True)
void flip(Array< T > &rData, const Bool toZero, const Bool isHermitian)
void fft(Array< S > &cResult, const Array< S > &cData, const Bool toFrequency=True)
Complex to complex fft.
void fft0(Array< T > &rResult, const Array< S > &cData)
void fft0(Array< T > &rResult, Array< S > &cData, const Bool constInput=False)
void fftshift(Array< S > &outValues, Array< Bool > &outFlags, const Array< S > &cValues, const Array< Bool > &inFlags, const uInt &whichAxis, const Double &relshift, const Bool goodIsTrue=False, const Bool toFrequency=True)
N-D complex->complex FFT shift (FFT - phase-mult - inverse FFT) with flagging.
void fftshift(Array< S > &cValues, const uInt &whichAxis, const Double &relshift, const Bool toFrequency=True)
N-D in-place complex->complex FFT shift (FFT - phase-mult - inverse FFT) If toFrequency is true,...
FFTServer(const FFTServer< T, S > &other)
copy constructor.
std::vector< S > itsWorkC2C
FFTServer()
The default constructor.
void fft0(Array< S > &cResult, const Array< T > &rData)
void fft0(Array< S > &cValues, const Bool toFrequency=True)
void fft(Array< S > &cResult, Array< T > &rData, const Bool constInput=False)
Real to complex fft.
FFTW itsFFTW
FFTW specific members.
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.