63 inline static SP::MATSGN_FFT
New() {
116 const tFlag& method) {
131 const tFlag& method) {
148 const tFlag& method);
160 const tFlag& method);
180 const tFlag& method) {
193 const tFlag& method) {
216 const tFlag& method)
const;
236 const tFlag& method)
const;
286 const tFlag& method)
const;
296 const tFlag& method)
const {
311 const tFlag& method)
const {
333 complex<tDouble>* output);
void setMethod(const tFlag &method)
set the FFT method
Definition: MATSGN_FFT.h:76
static const tFlag FXT
Definition: MATSGN_FFT.h:24
static const tBoolean INVERSE
Definition: MATSGN_FFT.h:32
static void tabfft(const tBoolean &isForward, MATSGN_ComplexArray &w, const tUIndex &nx)
tabfft
Definition: MATSGN_FFT.cpp:51
static const tFlag FFTW
Definition: MATSGN_FFT.h:27
static void fastFourierTransform_FXT(const MATSGN_ComplexArray &input, const tBoolean &isForward, const tBoolean &isInverse, complex< tDouble > *output)
compute the Fast Fourier Transform of a double complex vector vector using FXT library ...
Definition: MATSGN_FFT.cpp:293
#define tUInteger
Definition: types.h:91
void slowFourierTransform(const MATSGN_ComplexArray &input, MATSGN_ComplexArray &output, const tBoolean &isForward) const
compute the fourier transform basicly (slow fourier transform)
Definition: MATSGN_FFT.cpp:507
static const tFlag LIB_ROW
Definition: MATSGN_FFT.h:26
This class describes FFT routines based on fftw_complex array used in fftw library.
Definition: MATSGN_FFT.h:19
virtual tBoolean fastFourierTransform3DMatrix(MATSGN_ComplexArray &A, const tUInteger &lx, const tUInteger &ly, const tUInteger &lz, const tUInteger &lda, const tBoolean &isForward, const tBoolean &inverse, const tFlag &method) const
compute the 3D fft in a mesh
Definition: MATSGN_FFT.h:289
This class describes FFT complex array based on fft_complex structure.
Definition: MATSGN_ComplexArray.h:16
static void fastFourierTransform_FFTW(const MATSGN_ComplexArray &x, MATSGN_ComplexArray &y, const tBoolean &isForward, const tBoolean &isInverse)
compute the Fast Fourier Transform of a double complex vector vector using FFTW library ...
Definition: MATSGN_FFT.cpp:196
static void fastFourierTransform_FFTW(MATSGN_ComplexArray &x, const tBoolean &isForward, const tBoolean &isInverse)
compute the Fast Fourier Transform of a double complex vector using FFTW library
Definition: MATSGN_FFT.h:388
void slowFourierTransform(const MATSGN_ComplexArray &input, MATSGN_ComplexArray &output) const
compute the fourier transform basicly (slow fourier transform)
Definition: MATSGN_FFT.h:103
virtual tBoolean fastFourierTransform3D_FFTW(const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, MATSGN_ComplexArray &x, const tBoolean &isForward, const tBoolean &inverse) const
compute a complex fft for an array 3D usinf FFTW
Definition: MATSGN_FFT.cpp:655
virtual tBoolean fastFourierTransform3DMatrix(MATSGN_ComplexArray &A, MATSGN_ComplexArray &wrk, const tUInteger &lx, const tUInteger &ly, const tUInteger &lz, const tUInteger &lda, const tBoolean &isForward, const tBoolean &inverse, const tFlag &method) const
compute the 3D fft in a mesh
Definition: MATSGN_FFT.h:303
#define tBoolean
Definition: types.h:139
static void fastFourierTransformND_FFTW(const CORE_IntArray &dims, MATSGN_ComplexArray &x, const tBoolean &isForward, const tBoolean &isInverse)
compute the Fast Fourier Transform of a double complex vector with dimensions dims using FFTW library...
Definition: MATSGN_FFT.cpp:252
static tBoolean Perform(MATSGN_ComplexArray &data, const tBoolean &isForward, const tBoolean &inverse)
Definition: MATSGN_FFT.cpp:588
static tBoolean Rearrange(const MATSGN_ComplexArray &input, MATSGN_ComplexArray &output)
Definition: MATSGN_FFT.cpp:561
virtual tBoolean fastFourierTransform3D_SL(const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, MATSGN_ComplexArray &x, const tBoolean &isForward, const tBoolean &inverse) const
compute a complex fft for an array 3D used in SL fortran code
Definition: MATSGN_FFT.cpp:870
static const tBoolean FORWARD
Definition: MATSGN_FFT.h:29
static void Transpose(const tChar &storage, fftw_complex *A, const tUIndex &nRows, const tUIndex &nCols)
transpose a complex matric sotored in Array or Column of size nRows x nCols
Definition: MATSGN_FFT.cpp:162
static const tBoolean DIRECT
Definition: MATSGN_FFT.h:31
const tUIndex & getSize() const
get the size
Definition: MATSGN_ComplexArray.h:385
void fastFourierInverseTransform(const MATSGN_ComplexArray &x, MATSGN_ComplexArray &res, const tFlag &method)
compute the Fast Fourier Transform inverse of a complex vector in the forwrd direction ...
Definition: MATSGN_FFT.h:178
virtual ~MATSGN_FFT(void)
destroy an FFT Object.
Definition: MATSGN_FFT.cpp:29
static tBoolean fastFourierTransform_LR(const MATSGN_ComplexArray &input, MATSGN_ComplexArray &output, const tBoolean &isForward, const tBoolean &inverse)
compute the fast fourier transform of input using LIBROW algorithm
Definition: MATSGN_FFT.cpp:537
static const tFlag SL
Definition: MATSGN_FFT.h:25
this class describes an array
Definition: CORE_Array.h:19
static SP::MATSGN_FFT New()
create a FFT class
Definition: MATSGN_FFT.h:63
tFlag mMethod
Definition: MATSGN_FFT.h:36
void fastFourierInverseTransform(const MATSGN_ComplexArray &x, MATSGN_ComplexArray &res, const tBoolean &isForward, const tFlag &method)
compute the Fast Fourier Transform inverse of a complex vector
Definition: MATSGN_FFT.h:190
void setSize(const tUIndex &n)
set size of the array
Definition: MATSGN_ComplexArray.h:333
#define tUIndex
Definition: types.h:126
virtual tBoolean fastFourierTransform3D_GENERIC(const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, MATSGN_ComplexArray &x, const tBoolean &isForward, const tBoolean &inverse, const tFlag &method) const
compute a complex fft for an array 3D
Definition: MATSGN_FFT.cpp:431
abstract base class for most classes.
Definition: CORE_Object.h:53
#define tString
Definition: types.h:135
#define tChar
Definition: types.h:23
static tString getFFTMethodName(const tFlag &m)
get the method name
Definition: MATSGN_FFT.cpp:33
MATSGN_FFT(void)
create a FFT object
Definition: MATSGN_FFT.cpp:24
static const tBoolean BACKWARD
Definition: MATSGN_FFT.h:30
virtual tBoolean fastFourierTransform3DMatrix(MATSGN_ComplexArray &A, const tUIndex &fromAIndex, MATSGN_ComplexArray &Wrk, const tUInteger &lx, const tUInteger &ly, const tUInteger &lz, const tUInteger &lda, const tBoolean &isForward, const tBoolean &inverse, const tFlag &method) const
compute the 3D fft in a mesh translation of ZZFFT
Definition: MATSGN_FFT.cpp:974
static tBoolean Scale(MATSGN_ComplexArray &data)
Definition: MATSGN_FFT.cpp:643
void fastFourierTransform(const MATSGN_ComplexArray &x, MATSGN_ComplexArray &res)
compute the Fast Fourier Transform of a complex vector in the forward direction
Definition: MATSGN_FFT.h:167
static void fastFourierTransform_SL(const MATSGN_ComplexArray &w, MATSGN_ComplexArray &x, const tBoolean &isForward, const tBoolean &inverse)
compute the fft transform of vector x translated from fft.h from Stephane Labbé EM62 code ...
Definition: MATSGN_FFT.cpp:350
static void fastFourierTransform(const CORE_DoubleArray &x, MATSGN_ComplexArray &res, const tBoolean &isForward, const tFlag &method)
compute the Fast Fourier Transform of a double vector
Definition: MATSGN_FFT.h:128
static void fastFourierTransform(const CORE_DoubleArray &input, MATSGN_ComplexArray &output, const tFlag &method)
compute the Fast Fourier Transform of a double vector with respect to the method
Definition: MATSGN_FFT.h:114
virtual tBoolean fastFourierTransform3D(const tUInteger &Nx, const tUInteger &Ny, const tUInteger &Nz, MATSGN_ComplexArray &x, const tBoolean &isForward, const tBoolean &inverse, const tFlag &method) const
compute a complex fft for an array 3D
Definition: MATSGN_FFT.cpp:67
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141
#define tFlag
Definition: types.h:74