C++ main module for emicrom Package
1.0
|
This class describes FFT routines based on fftw_complex array used in fftw library. More...
#include <MATSGN_FFT.h>
Public Member Functions | |
void | setMethod (const tFlag &method) |
set the FFT method More... | |
void | slowFourierTransform (const MATSGN_ComplexArray &input, MATSGN_ComplexArray &output, const tBoolean &isForward) const |
compute the fourier transform basicly (slow fourier transform) More... | |
void | slowFourierTransform (const MATSGN_ComplexArray &input, MATSGN_ComplexArray &output) const |
compute the fourier transform basicly (slow fourier transform) More... | |
void | fastFourierTransform (const MATSGN_ComplexArray &x, MATSGN_ComplexArray &res) |
compute the Fast Fourier Transform of a complex vector in the forward direction More... | |
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 More... | |
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 More... | |
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 More... | |
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 More... | |
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 More... | |
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 More... | |
void | getSharedPointer (SP::CORE_Object &p) |
get the shared pointer of this class into p More... | |
void | getSharedPointer (SPC::CORE_Object &p) const |
get the shared pointer of this class into p More... | |
tString | getClassName () const |
return the class name of the object More... | |
tString | getIdentityString () const |
return the identity string of the object of the form className_at_address More... | |
tString | getPointerAddress () const |
return the identity string of the object More... | |
template<class T > | |
tBoolean | isInstanceOf () const |
test if the clas T is an instance of this class More... | |
tBoolean | isInstanceOf (const tString &name) const |
test if the object is an instance of className More... | |
virtual tString | toString () const |
return the string representation of the object node More... | |
Static Public Member Functions | |
static SP::MATSGN_FFT | New () |
create a FFT class More... | |
static tString | getFFTMethodName (const tFlag &m) |
get the method name More... | |
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 More... | |
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 More... | |
static void | fastFourierTransform (const MATSGN_ComplexArray &x, MATSGN_ComplexArray &res, const tBoolean &isForward, const tBoolean &inverse, const tFlag &method) |
compute the Fast Fourier Transform of a complex vector More... | |
static void | fastFourierTransform (MATSGN_ComplexArray &x, const tBoolean &isForward, const tBoolean &inverse, const tFlag &method) |
compute the Fast Fourier Transform of a complex vector More... | |
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 More... | |
static void | fastFourierTransform_FXT (complex< tDouble > *x, const tUIndex &n, const tBoolean &isForward, const tBoolean &isInverse) |
compute the Fast Fourier Transform of a double complex vector vector using FXT library More... | |
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 More... | |
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 More... | |
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 More... | |
static void | fastFourierTransform_FFTW (const tUIndex &length, fftw_complex *x, const tBoolean &isForward, const tBoolean &isInverse) |
compute the Fast Fourier Transform of a double complex vector using FFTW library More... | |
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 More... | |
static void | tabfft (const tBoolean &isForward, MATSGN_ComplexArray &w, const tUIndex &nx) |
tabfft More... | |
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 More... | |
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 More... | |
static tBoolean | fastFourierTransform_LR (MATSGN_ComplexArray &input, const tBoolean &isForward, const tBoolean &inverse) |
compute the fast fourier transform of input using LIBROW algorithm More... | |
static void | setIsMemoryChecked (const tBoolean &v) |
set if the memory checking is used More... | |
static void | setOut (SP::CORE_Out out) |
set the output stream More... | |
static void | resetOut () |
reset the output stream More... | |
static void | setThread (SP::CORE_Thread thread) |
set the thread More... | |
static void | resetThread () |
reset the output stream More... | |
static CORE_Out & | out () |
get the output More... | |
static SP::CORE_Out | getOut () |
get the output More... | |
static CORE_Thread & | getThread () |
get the profilier More... | |
static const tBoolean & | isMemoryChecked () |
get if the memory checking is used More... | |
static tString | getClassName (const tString &identityString) |
return the class name of the object More... | |
template<class T > | |
static tString | getTypeName () |
get type name More... | |
static tBoolean | is64Architecture () |
return true if the machine is a 64 bits machine More... | |
static tBoolean | is32Architecture () |
return true if the machine is a 32 bits machine More... | |
static tString | pointer2String (const void *obj) |
return the string representation of a pointer More... | |
static void | printObjectsInMemory (ostream &f) |
print object in memory More... | |
static void | printObjectsInMemory () |
print object in memory in the standart output More... | |
static tChar | getMaxChar () |
get the max value for tChar type More... | |
static tChar | getMinChar () |
get the min value for tChar type More... | |
static tUChar | getMaxUChar () |
get the max value for tUChar type More... | |
static tUChar | getMinUChar () |
get the min value for tUChar type More... | |
static tSInt | getMaxSInt () |
get the max value for tSInt type More... | |
static tSInt | getMinSInt () |
get the min value for tSInt type More... | |
static tUSInt | getMaxUSInt () |
get the max value for tUSInt type More... | |
static tUSInt | getMinUSInt () |
get the min value for tUSInt type More... | |
static tInt | getMaxInt () |
get the max value for tInt type More... | |
static tInt | getMinInt () |
get the min value for tInt type More... | |
static tUInt | getMaxUInt () |
get the max value for tUInt type More... | |
static tUInt | getMinUInt () |
get the min value for tUInt type More... | |
static tLInt | getMaxLInt () |
get the max value for tLInt type More... | |
static tLInt | getMinLInt () |
get the min value for tLInt type More... | |
static tULInt | getMaxULInt () |
get the max value for tULInt type More... | |
static tULInt | getMinULInt () |
get the min value for tULInt type More... | |
static tLLInt | getMaxLLInt () |
get the max value for tULInt type More... | |
static tLLInt | getMinLLInt () |
get the min value for tLLInt type More... | |
static tULLInt | getMaxULLInt () |
get the max value for tULLInt type More... | |
static tULLInt | getMinULLInt () |
get the min value for tULLInt type More... | |
static tFloat | getMaxFloat () |
get the max value for tFloat type More... | |
static tFloat | getMinFloat () |
get the min value for tFloat type More... | |
template<class T > | |
static T | getEpsilon () |
get the epsilon value for T type More... | |
template<class T > | |
static T | getInfinity () |
get the infinity for T type More... | |
static tFloat | getFloatEpsilon () |
get the epsilon value for tFloat type More... | |
static tFloat | getFloatInfinity () |
get the infinity value for tFloat type More... | |
static tDouble | getMaxDouble () |
get the max value for tDouble type More... | |
static tDouble | getMinDouble () |
get the min value for tDouble type More... | |
static tDouble | getDoubleInfinity () |
get the infinity value for tFloat type More... | |
static tDouble | getDoubleEpsilon () |
get the epsilon value for tDouble type More... | |
static tLDouble | getMinLDouble () |
get the min value for tLDouble type More... | |
static tLDouble | getMaxLDouble () |
get the max value for tLDouble type More... | |
static tLDouble | getLDoubleEpsilon () |
get the epsilon value for tLDouble type More... | |
static tDouble | getLDoubleInfinity () |
get the infinity value for tDouble type More... | |
static tIndex | getMaxIndex () |
get the max value for the array/vector indexing type More... | |
static tIndex | getMinIndex () |
get the min value for the array/vector indexing type More... | |
static tUIndex | getMaxUIndex () |
get the max value for difference the array/vector indexing type More... | |
static tUIndex | getMinUIndex () |
get the min value for difference the array/vector indexing type More... | |
static tFlag | getMaxFlag () |
get the max value for the tFlag type More... | |
static tFlag | getMinFlag () |
get the min value for the tFlag type More... | |
static tUInteger | getMaxUInteger () |
get the max value for the unsigned integer type More... | |
static tUInteger | getMinUInteger () |
get the min value for the unsigned integer type More... | |
static tInteger | getMaxInteger () |
get the max value for the integer type More... | |
static tInteger | getMinInteger () |
get the min value for the integer type More... | |
static tReal | getMaxReal () |
get the max value for the real type More... | |
static tReal | getMinReal () |
get the min value for the real type More... | |
static tReal | getRealEpsilon () |
get the eps which is the difference between 1 and the least value greater than 1 that is representable. More... | |
static tReal | getRealInfinity () |
get the infinity value More... | |
template<class T > | |
static T | computeEpsilon () |
compute epsilon More... | |
Static Public Attributes | |
static const tFlag | FXT =0 |
static const tFlag | SL =10 |
static const tFlag | LIB_ROW =5 |
static const tFlag | FFTW =2 |
static const tBoolean | FORWARD =true |
static const tBoolean | BACKWARD =false |
static const tBoolean | DIRECT =false |
static const tBoolean | INVERSE =true |
Protected Member Functions | |
MATSGN_FFT (void) | |
create a FFT object More... | |
virtual | ~MATSGN_FFT (void) |
destroy an FFT Object. More... | |
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 More... | |
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 More... | |
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 More... | |
void | setThis (SP::CORE_Object p) |
set this weak shared pointer called toDoAfterThis setting method More... | |
virtual void | toDoAfterThisSetting () |
method called after setThis() method this method can oly be called once. More... | |
Private Member Functions | |
SP_OBJECT (MATSGN_FFT) | |
Static Private Member Functions | |
static tBoolean | Rearrange (const MATSGN_ComplexArray &input, MATSGN_ComplexArray &output) |
static tBoolean | Rearrange (MATSGN_ComplexArray &inoutput) |
static tBoolean | Perform (MATSGN_ComplexArray &data, const tBoolean &isForward, const tBoolean &inverse) |
static tBoolean | Scale (MATSGN_ComplexArray &data) |
Private Attributes | |
tFlag | mMethod |
This class describes FFT routines based on fftw_complex array used in fftw library.
It uses also other FFT libraries such that FXT.
The main class of the package is MATSGN_FFT::fastFourierTrasnsform()
|
protected |
|
protectedvirtual |
destroy an FFT Object.
|
inlinestaticinherited |
compute epsilon
|
inline |
compute the Fast Fourier Transform inverse of a complex vector in the forwrd direction
x | input |
res | output result |
method | the method to use |
References fastFourierTransform().
Referenced by MATSGN_Test::testFFT02().
|
inline |
compute the Fast Fourier Transform inverse of a complex vector
x | input |
res | output result |
isForward | the direction of the fft |
method | the method to use |
References fastFourierTransform(), fastFourierTransform3D(), fastFourierTransform3D_FFTW(), fastFourierTransform3D_GENERIC(), fastFourierTransform3D_SL(), fastFourierTransform3DMatrix(), tBoolean, tFlag, tUIndex, and tUInteger.
|
inlinestatic |
compute the Fast Fourier Transform of a double vector with respect to the method
input | input complex |
output | output complex |
method | the method to use |
Referenced by fastFourierInverseTransform(), fastFourierTransform(), fastFourierTransform3D_GENERIC(), MATSGN_Test::testFFT02(), and MATSGN_Test::testFFT03().
|
inlinestatic |
compute the Fast Fourier Transform of a double vector
x | input complex |
res | output complex |
isForward | the direction of the fft |
method | the method to use |
References fastFourierTransform(), tBoolean, and tFlag.
|
static |
compute the Fast Fourier Transform of a complex vector
x | input complex |
res | output complex |
isForward | teh direction of the fft |
inverse | fftw inverse to compute |
method | the method to use |
References MATSGN_ComplexArray::copy(), fastFourierTransform_FFTW(), fastFourierTransform_FXT(), fastFourierTransform_LR(), fastFourierTransform_SL(), FFTW, FXT, MATSGN_ComplexArray::getSize(), LIB_ROW, MATSGN_ComplexArray::setSize(), SL, tabfft(), tUIndex, and tUSInt.
|
static |
compute the Fast Fourier Transform of a complex vector
x | input/output complex |
isForward | the direction of the fft |
inverse | fftw inverse to compute |
method | the method to use |
References MATSGN_ComplexArray::copy(), fastFourierTransform_FFTW(), fastFourierTransform_FXT(), fastFourierTransform_LR(), fastFourierTransform_SL(), FFTW, FXT, MATSGN_ComplexArray::getSize(), LIB_ROW, SL, tabfft(), and tUIndex.
|
inline |
compute the Fast Fourier Transform of a complex vector in the forward direction
x | input |
res | output result |
References fastFourierTransform().
|
virtual |
compute a complex fft for an array 3D
Nx | dimension in x (must be a power of 2) |
Ny | dimension in y (must be a power of 2) |
Nz | dimension in z (must be a power of 2) |
x | vector of the array 3d x[i][j][k]=x[i+j*n1+k*n1*n2] |
isForward | the FFT direction |
inverse | if inverse is true compute the FFT inverse. |
method | the method to use |
References fastFourierTransform3D_FFTW(), fastFourierTransform3D_GENERIC(), fastFourierTransform3D_SL(), FFTW, FXT, LIB_ROW, SL, and tBoolean.
Referenced by fastFourierInverseTransform(), fastFourierTransform3DMatrix(), and MATSGN_Test::testFFT3D().
|
protectedvirtual |
compute a complex fft for an array 3D usinf FFTW
Nx | dimension in x (must be a power of 2) |
Ny | dimension in y (must be a power of 2) |
Nz | dimension in z (must be a power of 2) |
x | vector of the array 3d x[i][j][k]=x[i+j*n1+k*n1*n2] |
isForward | the FFT direction |
inverse | if inverse is true compute the FFT inverse. |
References CORE_Object::getMaxInt(), MATSGN_ComplexArray::getValues(), OMP_CRITICAL, OMP_GET_THREAD_ID, OMP_GET_THREADS_NUMBER, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, MATSGN_ComplexArray::setSize(), CORE_Integer::toString(), tUIndex, tUInteger, and tUSInt.
Referenced by fastFourierInverseTransform(), and fastFourierTransform3D().
|
protectedvirtual |
compute a complex fft for an array 3D
Nx | dimension in x (must be a power of 2) |
Ny | dimension in y (must be a power of 2) |
Nz | dimension in z (must be a power of 2) |
x | vector of the array 3d x[i][j][k]=x[i+j*n1+k*n1*n2] |
isForward | the FFT direction |
inverse | if inverse is true compute the FFT inverse. |
method | the method to use |
References fastFourierTransform(), MATSGN_ComplexArray::setSize(), tUIndex, tUInteger, and tUSInt.
Referenced by fastFourierInverseTransform(), and fastFourierTransform3D().
|
protectedvirtual |
compute a complex fft for an array 3D used in SL fortran code
Nx | dimension in x (must be a power of 2) |
Ny | dimension in y (must be a power of 2) |
Nz | dimension in z (must be a power of 2) |
x | vector of the array 3d x[i][j][k]=x[i+j*n1+k*n1*n2] |
isForward | the FFT direction |
inverse | if inverse is true compute the FFT inverse. |
References fastFourierTransform_SL(), OMP_GET_THREAD_ID, MATSGN_ComplexArray::setSize(), tabfft(), tUIndex, tUInteger, and tUSInt.
Referenced by fastFourierInverseTransform(), and fastFourierTransform3D().
|
virtual |
compute the 3D fft in a mesh translation of ZZFFT
References fastFourierTransform3D(), OMP_GET_THREAD_ID, OMP_GET_THREADS_NUMBER, OMP_PARALLEL_PRIVATE_SHARED_DEFAULT, MATSGN_ComplexArray::setSize(), tBoolean, tUIndex, tUInteger, and tUSInt.
Referenced by fastFourierInverseTransform(), fastFourierTransform3DMatrix(), and MATSGN_Test::testFFT3D().
|
inlinevirtual |
compute the 3D fft in a mesh
References fastFourierTransform3DMatrix(), and MATSGN_ComplexArray::setSize().
|
inlinevirtual |
compute the 3D fft in a mesh
References fastFourierTransform3DMatrix(), fastFourierTransform_FFTW(), fastFourierTransform_FXT(), tBoolean, tChar, Transpose(), and tUIndex.
|
static |
compute the Fast Fourier Transform of a double complex vector vector using FFTW library
x | input vector |
y | output result |
isForward | the direction of the fft |
isInverse | treue to compute inverse FFT |
References MATSGN_ComplexArray::getSize(), MATSGN_ComplexArray::setSize(), tUIndex, and tUSInt.
Referenced by fastFourierTransform(), fastFourierTransform3DMatrix(), and fastFourierTransform_FFTW().
|
inlinestatic |
compute the Fast Fourier Transform of a double complex vector using FFTW library
x | input/output vector |
isForward | the direction of the fft |
isInverse | true to compute inverse FFT |
References fastFourierTransform_FFTW(), fastFourierTransform_LR(), fastFourierTransform_SL(), fastFourierTransformND_FFTW(), MATSGN_ComplexArray::getSize(), Perform(), Rearrange(), Scale(), tabfft(), tBoolean, and tUIndex.
|
static |
compute the Fast Fourier Transform of a double complex vector using FFTW library
length | length of x |
x | input/output vector |
isForward | the direction of the fft |
isInverse | true to compute inverse FFT |
References tUIndex.
|
static |
compute the Fast Fourier Transform of a double complex vector vector using FXT library
input | input vector |
isForward | the direction of the fft |
isInverse | true to compute inverse fft |
output | output result |
WARNING output must be of size x.getSize()
References MATSGN_ComplexArray::getSize(), tComplex, and tUIndex.
Referenced by fastFourierTransform(), and fastFourierTransform3DMatrix().
|
static |
compute the Fast Fourier Transform of a double complex vector vector using FXT library
x | input/output vector |
n | size of x |
isForward | the direction of the fft |
isInverse | true to compute inverse fft |
|
static |
compute the fast fourier transform of input using LIBROW algorithm
input | input vector |
output | output result |
isForward | the direction of the fft |
inverse | treue to compute inverse FFT |
the input data must be a power of 2
References Perform(), Rearrange(), Scale(), and tBoolean.
Referenced by fastFourierTransform(), and fastFourierTransform_FFTW().
|
static |
compute the fast fourier transform of input using LIBROW algorithm
input | input/output vector |
isForward | the direction of the fft |
inverse | treue to compute inverse FFT |
the input data must be a power of 2
References Perform(), Rearrange(), Scale(), and tBoolean.
|
static |
compute the fft transform of vector x translated from fft.h from Stephane Labbé EM62 code
w | complex array of size n/2 |
x | complex array of size n |
isForward | the direction of the fft |
inverse | if inverse is true compute the FFT inverse. |
References MATSGN_Complex::add(), MATSGN_ComplexArray::getSize(), MATSGN_Complex::product(), MATSGN_Complex::sub(), MATSGN_Complex::swap(), tReal, tUIndex, and tUSInt.
Referenced by fastFourierTransform(), fastFourierTransform3D_SL(), fastFourierTransform_FFTW(), and MATSGN_Test::testFFT_SL().
|
static |
compute the Fast Fourier Transform of a double complex vector with dimensions dims using FFTW library
dims | the dimension of the vector |
x | input/output vector |
isForward | the direction of the fft |
isInverse | true to compute inverse FFT |
x is dispatched in dims.getSize() array.
The 2D fast fourier transform is as follow:
References CORE_Array< T >::getSize(), MATSGN_ComplexArray::getValues(), and tDouble.
Referenced by fastFourierTransform_FFTW().
|
inherited |
return the class name of the object
References tString.
Referenced by CORE_Object::getIdentityString(), EMM_Operator::getName(), and CORE_Object::isMemoryChecked().
return the class name of the object
identityString | the identity string of the object |
|
inlinestaticinherited |
get the epsilon value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tFloat type
|
inlinestaticinherited |
get the epsilon value for T type
get the method name
m | the method in {FXT,SL,FFTW,LIB_ROW} |
References FFTW, FXT, LIB_ROW, and SL.
Referenced by setMethod().
|
inlinestaticinherited |
get the epsilon value for tFloat type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tFloat type
|
inlineinherited |
return the identity string of the object of the form className_at_address
References CORE_Object::getClassName(), CORE_Object::pointer2String(), and tString.
Referenced by MATH_GaussLegendreIntegration::copy(), EMM_MultiScaleGrid::initialize(), CORE_Object::isInstanceOf(), CORE_Object::printObjectsInMemory(), MATH_Matrix::toString(), EMMG_SLPeriodicMultiScale::toString(), EMM_Stepper::toString(), EMM_AnisotropyDirectionsField::toString(), EMM_BlockMassMatrix::toString(), CORE_Object::toString(), EMM_Tensors::toString(), EMM_MultiScaleGrid::toString(), EMM_MatterField::toString(), EMM_Grid3D::toString(), and EMM_LandauLifschitzSystem::toString().
|
inlinestaticinherited |
get the infinity for T type
|
inlinestaticinherited |
get the epsilon value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value for tDouble type
|
inlinestaticinherited |
get the max value for tChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the tFlag type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tFloat type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the array/vector indexing type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tInt type
Referenced by fastFourierTransform3D_FFTW(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the integer type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tULInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the real type
Referenced by EMM_MatterField::adimensionize(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tSInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tUChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for difference the array/vector indexing type
Referenced by CORE_Vector< T >::addAfterIndices(), CORE_Vector< T >::search(), CORE_Test::testType(), CORE_Integer::toHexString(), and CORE_Integer::toString().
|
inlinestaticinherited |
get the max value for tUInt type
Referenced by EMM_Array< tCellFlag >::loadFromFile(), EMM_RealField::loadFromFile(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for the unsigned integer type
Referenced by MATH_Pn::computeExtrenums(), EMM_MultiScaleGrid::computeLevelsNumber(), EMM_Input::restoreBackup(), MATH_P0::solve(), and CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tULInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tULLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the max value for tUSInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the tFlag type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tFloat type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the array/vector indexing type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the integer type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tLDouble type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tLLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the real type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tSInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tUChar type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for difference the array/vector indexing type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tUInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for the unsigned integer type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tULInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tULLInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
get the min value for tUSInt type
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
|
inlineinherited |
return the identity string of the object
References CORE_Object::pointer2String().
|
inlinestaticinherited |
get the eps which is the difference between 1 and the least value greater than 1 that is representable.
Referenced by MATH_P4::solveP4De(), and CORE_Test::testType().
|
inlinestaticinherited |
get the infinity value
Referenced by BrentFunction::BrentFunction(), EMM_OperatorsTest::compareDiscretizedData(), EMM_IterativeTimeStep::EMM_IterativeTimeStep(), EMM_SLElementaryDemagnetizedMatrix::Kxy(), NRFunction::NRFunction(), EMM_PolynomialInterpolationTimeStep::optimizeTimeFunction(), and CORE_Test::testType().
|
inlineinherited |
get the shared pointer of this class into p
p | : shared pointer of the class This |
Referenced by CORE_Map< Key, Value >::getSharedPointer(), CORE_ArrayList< tString >::getSharedPointer(), EMM_Array< tCellFlag >::getSharedPointer(), CORE_Array< tCellFlag >::getSharedPointer(), CORE_MorseArray< tUChar >::getSharedPointer(), CORE_Vector< T >::getSharedPointer(), and CORE_Object::printObjectsInMemory().
|
inlineinherited |
get the shared pointer of this class into p
p | : shared pointer of the class This |
|
inlinestaticinherited |
get the profilier
Referenced by MATH_MaskVector::add(), MATH_Vector::add(), EMM_DisplacementFEMOperator::addBoundaryElasticStress(), EMM_DisplacementFEMOperator::buildDataOnNeumannBoundaryFaces(), EMM_DisplacementFVMOperator::computeCineticEnergy(), EMM_DisplacementFVMOperator::computeElasticStress(), EMM_DisplacementFEMOperator::computeElasticStress(), EMM_DisplacementFVMOperator::computeElasticTensor(), EMM_DisplacementFEMOperator::computeElasticTensor(), EMM_StaticMagneticTensorOperator::computeEnergy(), EMM_CubicAnisotropyOperator::computeEnergy(), EMM_MagnetostrictionOperator::computeEnergy(), EMM_DisplacementOperator::computeEnergy(), EMM_AnisotropyOperator::computeEnergyWithMagneticExcitation(), EMM_DisplacementFVMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_DisplacementFEMOperator::computeEquilibriumMatrixDiagonalConditioner(), EMM_FullExchangeOperator::computeMagneticExcitationField(), EMM_StaticMagnetostrictionOperator::computeMagneticExcitationField(), EMM_LinearAnisotropyOperator::computeMagneticExcitationField(), EMM_StaticMagneticTensorOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationField(), EMM_MinimalExchangeOperator::computeMagneticExcitationField(), EMM_AnisotropyOperator::computeMagneticExcitationField(), EMM_MagnetostrictionOperator::computeMagneticExcitationField(), EMM_CubicAnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_AnisotropyOperator::computeMagneticExcitationFieldGradient(), EMM_DisplacementFVMOperator::computeMagneticStress(), EMM_DisplacementFEMOperator::computeMagneticStress(), EMM_OptimalTimeStep::computeOptimalTimeStep(), EMM_DisplacementFEMOperator::computeStressConstraintEnergy(), EMM_FullExchangeOperator::discretize(), EMM_MinimalExchangeOperator::discretize(), EMM_CondensedMassMatrix::discretize(), EMM_LinearAnisotropyOperator::discretize(), EMM_AnisotropyOperator::discretize(), EMM_DemagnetizedOperator::discretize(), EMMG_SLDemagnetizedOperator::discretize(), EMM_LandauLifschitzSystem::discretize(), MATH_Vector::divide(), MATH_MaskVector::dot(), MATH_Vector::dot(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_4Tensors::doubleDotCrossProduct(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_4Tensors::doubleDotProduct(), MATH_Vector::init(), MATH_MaskVector::init(), EMM_LandauLifschitzODE_RK::integrateMagnetizationFieldAtTime(), EMM_DisplacementFVM_Interpolator::interpolateUAtVertices(), EMMG_SLDemagnetizedOperator::localAssembly(), EMM_DisplacementOperator::nullProjectionOnDirichletBoundary(), EMM_DisplacementOperator::periodicProjection(), EMM_2PackedSymmetricTensors::product(), EMM_CanonicalMassMatrix::product(), MATH_FullMatrix::product(), EMM_CondensedMassMatrix::product(), EMM_BlockMassMatrix::product(), MATH_MorseMatrix::product(), EMMG_SLDemagnetizedOperator::product(), EMM_DisplacementOperator::projectionOnDirichletBoundary(), EMM_LandauLifschitzSystem::resetOperatorsToInitialState(), EMM_DisplacementFVMOperator::setBoundaryFaceTypes(), FFTW_MultiDFTs::setFFT(), FFTW_MultiLevelsDFT::setFFT(), FFTW_MultiLevelsDFT::setLevels(), FFTW_MultiDFTs::setPlan(), FFTW_MultiLevelsDFT::setPlan(), EMM_CondensedMassMatrix::solve(), EMM_LandauLifschitzODE::solveODE(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_CanonicalMassMatrix::symmetricDot(), EMM_CondensedMassMatrix::symmetricDot(), EMM_BlockMassMatrix::symmetricDot(), FFTW_Test::test(), MATH_SolverTest::test(), EMM_ODETest::testODE(), and EMM_Grid3D::updateLimitConditionOnPoints().
|
inlinestaticinherited |
|
inlinestaticinherited |
return true if the machine is a 32 bits machine
References CORE_Object::pointer2String(), CORE_Object::printObjectsInMemory(), and tString.
Referenced by CORE_Test::testType().
|
inlinestaticinherited |
return true if the machine is a 64 bits machine
Referenced by EMM_VTK::getVTKType(), and CORE_Test::testType().
|
inlineinherited |
test if the clas T is an instance of this class
References null.
Referenced by MATH_ToeplitzTest::toeplitzTest().
test if the object is an instance of className
name | name of the class |
References CORE_Object::getIdentityString().
|
inlinestaticinherited |
get if the memory checking is used
References CORE_Object::getClassName(), CORE_Object::mIsMemoryTesting, and tString.
Referenced by main().
|
inlinestatic |
create a FFT class
References MATSGN_FFT().
Referenced by main(), EMMG_SLDemagnetizedOperator::NewFFTInstance(), and MATSGN_Test::testFFTW3D().
|
inlinestaticinherited |
get the output
Referenced by EMM_Matter::adimensionize(), EMM_DisplacementFVMOperator::backup(), EMM_DisplacementOperator::backup(), MATH_ElementaryMultiLevelsToeplitzMatrix::buildSpectralVectorProjector(), EMM_Test::caseTest(), EMM_Test::caseTests(), EMM_MatterField::computeAnisotropyDirectionsField(), EMM_OptimalTimeStep::computeOptimalTimeStep(), MATH_MultiLevelsToeplitzMatrix::copy(), CORE_Exception::CORE_Exception(), EMM_MatterField::createAnisotropyOperator(), CORE_Run::createIO(), EMM_ElementaryTest::defaultBackupTest(), EMM_ElementaryTest::defaultTest(), MATH_MultiLevelsFFTToeplitzMatrix::diagonalize(), EMM_DisplacementFVMOperator::discretize(), EMM_MagnetostrictionOperator::discretize(), EMM_DisplacementFEMOperator::discretize(), EMM_4SymmetricTensors::doubleDot(), EMM_4Tensors::doubleDotCrossDoubleDotScalar(), EMM_TensorsTest::doubleDotCrossDoubleDotScalarTests(), EMM_4Tensors::doubleDotCrossProduct(), EMM_TensorsTest::doubleDotCrossProductTests(), EMM_4Tensors::doubleDotCrossSquaredScalar(), EMM_TensorsTest::doubleDotCrossSquaredScalarTests(), EMM_4Tensors::doubleDotProduct(), EMM_TensorsTest::doubleDotProductTests(), EMM_DisplacementWaveTest::elasticWaveTest(), EMM_Test::elementaryTests(), FFTW_Test::fftwTutorial(), MATH_IntegrationTest::gaussLegendreTest(), EMM_MagnetostrictionTest::HComputingTest(), EMM_DemagnetizedPeriodicalTest::HTest(), EMMH_HysteresisTest::hysteresisDefaultCycleTest(), EMM_TensorsTest::initializationTests(), EMM_MultiScaleGrid::initialize(), EMM_MultiScaleSDGrid::initialize(), EMM_MatterField::loadFromANIFile(), EMM_AnisotropyDirectionsField::loadFromFile(), EMM_Matter::loadFromFile(), EMM_Grid3D::loadFromGEOFile(), EMM_MatterField::loadFromLOCFile(), EMM_Array< tCellFlag >::loadFromStream(), EMM_Matter::loadFromStream(), EMM_Matter::loadMattersFromFile(), EMM_Run::loadSystemFromOptions(), EMM_ElementaryTest::magnetostrictionBackupTest(), CORE_Run::make(), EMMH_Run::makeHysteresis(), EMM_Run::makeRun(), CORE_Run::makeType(), EMM_ElementaryTest::optionsTest(), MATH_PolynomialTest::P4Tests(), EMM_Test::primaryTests(), EMM_LandauLifschitzSystem::printLog(), CORE_Run::printOptions(), EMM_2PackedSymmetricTensors::product(), EMMG_SLDemagnetizedOperator::projectionOnSpectralSpace(), CORE_Run::readOptionsFromCommandLine(), CORE_Test::readVectorTest(), EMM_DemagnetizedPeriodicalTest::relaxationTest(), EMM_DisplacementFVMOperator::restore(), EMM_DisplacementOperator::restore(), EMM_Input::restoreBackup(), EMMH_Hysteresis::run(), EMM_Output::save(), EMM_AnisotropyDirectionsField::saveToFile(), EMM_MatterField::saveToFile(), EMM_Grid3D::saveToGEOFile(), CORE_IOTest::searchTest(), EMMH_Hysteresis::setInitialMagnetizationField(), MATH_MultiLevelsToeplitzMatrix::setLevels(), EMM_4SymmetricTensors::squaredDoubleDot(), EMM_4Tensors::squaredDoubleDotCrossScalar(), EMM_TensorsTest::squaredDoubleDotCrossScalarTests(), EMM_4Tensors::squaredDoubleDotScalar(), EMM_TensorsTest::squaredDoubleDotScalarTests(), EMM_TensorsTest::squaredDoubleDotTests(), EMM_MatterTest::testAdimensionize(), EMM_MatterTest::testANIFile(), CORE_Test::testComplex(), CORE_Test::testDateWeek(), FFTW_Test::testDFT(), EMM_MatterTest::testIO(), EMM_ODETest::testODE(), CORE_Test::testOut(), CORE_Test::testReal(), EMM_FieldTest::testRealArray(), EMM_Grid3DTest::testSegment(), EMM_Grid3DTest::testThinSheet(), CORE_Test::testTime(), CORE_Test::testType(), MATH_FullMatrix::toString(), EMM_DemagnetizedPeriodicalTest::xyPeriodicalCubeSDGTest(), and EMM_DemagnetizedPeriodicalTest::xyPeriodicalSheetSDGTest().
|
staticprivate |
References MATSGN_Complex::add(), MATSGN_ComplexArray::getSize(), MATSGN_Complex::getValue(), MATSGN_Complex::product(), MATSGN_Complex::sub(), tDouble, and tUIndex.
Referenced by fastFourierTransform_FFTW(), and fastFourierTransform_LR().
|
staticinherited |
return the string representation of a pointer
obj | : oject to get the string pointer |
References tString.
Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), CORE_Object::is32Architecture(), and CORE_Object::~CORE_Object().
|
staticinherited |
print object in memory
f | : output to print the objects in memory |
References CORE_Object::getIdentityString(), CORE_Object::getSharedPointer(), CORE_Object::mIsMemoryTesting, CORE_Object::mObjects, and tInteger.
|
inlinestaticinherited |
print object in memory in the standart output
Referenced by CORE_Object::is32Architecture(), and main().
|
staticprivate |
Referenced by fastFourierTransform_FFTW(), and fastFourierTransform_LR().
|
staticprivate |
References MATSGN_ComplexArray::getSize(), MATSGN_ComplexArray::swap(), and tUIndex.
|
inlinestaticinherited |
|
inlinestaticinherited |
|
staticprivate |
References MATSGN_ComplexArray::getSize(), tDouble, and tUIndex.
Referenced by fastFourierTransform_FFTW(), and fastFourierTransform_LR().
|
inlinestaticinherited |
set if the memory checking is used
v | : true to check memory |
Referenced by main().
|
inline |
set the FFT method
method | the method in {FXT,SL,FFTW,LIB_ROW} |
References getFFTMethodName(), slowFourierTransform(), tBoolean, tFlag, and tString.
|
inlinestaticinherited |
|
inlineprotectedinherited |
set this weak shared pointer called toDoAfterThis setting method
p | : shared pointer of the class This |
References CORE_Object::toDoAfterThisSetting().
|
inlinestaticinherited |
set the thread
thread | the shared pointer to the thread |
References null.
Referenced by EMM_Run::EMM_Run(), EMM_TensorsRun::EMM_TensorsRun(), and MATH_SolverRun::MATH_SolverRun().
void MATSGN_FFT::slowFourierTransform | ( | const MATSGN_ComplexArray & | input, |
MATSGN_ComplexArray & | output, | ||
const tBoolean & | isForward | ||
) | const |
compute the fourier transform basicly (slow fourier transform)
input | input complex |
output | output complex |
isForward | direction of the fft |
References MATSGN_Complex::add(), MATSGN_ComplexArray::getSize(), MATSGN_Complex::product(), MATSGN_ComplexArray::setSize(), tDouble, tUIndex, and tUSInt.
Referenced by setMethod(), and slowFourierTransform().
|
inline |
compute the fourier transform basicly (slow fourier transform)
input | input complex |
output | output complex |
References slowFourierTransform().
|
private |
|
static |
tabfft
initialise the w array to size nx/2 with value w[k]=e^(i(2*k*pi/nx))
References MATSGN_ComplexArray::setSize(), tDouble, tReal, and tUIndex.
Referenced by fastFourierTransform(), fastFourierTransform3D_SL(), and fastFourierTransform_FFTW().
|
inlineprotectedvirtualinherited |
method called after setThis() method this method can oly be called once.
Reimplemented in EMM_DisplacementOperator, EMM_DisplacementFVMOperator, EMM_GaussLegendreRelaxation, EMM_GradGaussLegendreRelaxation, and EMM_Object.
Referenced by CORE_Object::setThis().
|
inlinevirtualinherited |
return the string representation of the object node
Reimplemented in EMM_DisplacementOperator, EMM_LandauLifschitzSystem, CORE_Array< T >, CORE_Array< tReal >, CORE_Array< tUInteger >, CORE_Array< tString >, CORE_Array< tLimitCondition >, CORE_Array< tUIndex >, CORE_Array< tUChar >, CORE_Array< tCellFlag >, EMM_Grid3D, CORE_Time, CORE_Vector< T >, EMM_Matter, CORE_Out, EMM_DisplacementFEMOperator, EMM_RealField, EMM_DisplacementFVMOperator, CORE_MorseArray< T >, CORE_MorseArray< tReal >, CORE_MorseArray< tUIndex >, CORE_MorseArray< tUChar >, EMM_MagnetostrictionOperator, MATH_MultiLevelsToeplitzMatrix, FFTW_ComplexArray, MATSGN_ComplexArray, EMM_MatterField, CORE_Color, FFTW_Complex, EMM_MultiScaleGrid, MATSGN_Complex, EMM_DisplacementFVM_VTEGROperator, EMM_CondensedMassMatrix, EMM_LandauLifschitzFunction, EMM_Tensors, EMM_DisplacementFVM_SSGROperator, EMMG_SLDemagnetizedOperator, EMM_BlockMassMatrix, CORE_Array2D< T >, EMM_DisplacementFVM_STEGROperator, EMMH_HysteresisFile, EMM_IterativeTimeStep, CORE_SharedPointersVMap< Key, Value >, CORE_SharedPointersVMap< tString, const CORE_Object >, CORE_SharedPointersVMap< tString, CORE_Object >, EMM_AnisotropyDirectionsField, EMM_DemagnetizedOperator, CORE_SharedPointersListVMap< Key, Value >, CORE_String, EMM_OptimalTimeStep, MATH_MaskArrayVector, CORE_SharedPointersKVMap< Key, Value >, MATH_ArrayVector, EMM_Stepper, EMM_CanonicalMassMatrix, MATH_Pn, MATH_FullMatrix, EMMG_SLPeriodicMultiScale, EMM_HyperElasticMatter, MATH_Matrix, CORE_Array3D< T >, EMM_CubicElasticMatter, CORE_Complex, CORE_Integer, CORE_Real, and EMM_MagnetostrictiveMatter.
References CORE_Object::getIdentityString().
Referenced by CORE_Out::genericPrint(), EMM_VelocitySolverTest::massMatrixTrivialSolverTest(), MATH_ConjugateGradient::solve(), CORE_SharedPointersKVMap< Key, Value >::toString(), CORE_SharedPointersListVMap< Key, Value >::toString(), CORE_SharedPointersVMap< tString, CORE_Object >::toString(), EMM_MagnetostrictionOperator::toString(), EMM_Matter::toString(), and EMM_DisplacementOperator::toString().
|
static |
transpose a complex matric sotored in Array or Column of size nRows x nCols
storage | : the type of storage (by row 'R' like C++ or by column 'C' like Fortran) |
A | the matrix |
nRows | the number of rows of the matrix |
nCols | the number of column of the matrix A is change to be considered as a transposed matrix in nCols x nRows |
Referenced by fastFourierTransform3DMatrix(), and MATSGN_Test::testComplexArray().
|
static |
|
static |
|
static |
|
static |
|
static |
Referenced by fastFourierTransform(), fastFourierTransform3D(), getFFTMethodName(), MATSGN_Test::test(), and MATSGN_Test::testFFT03().
|
static |
|
static |
Referenced by fastFourierTransform(), fastFourierTransform3D(), getFFTMethodName(), and MATSGN_Test::test().
|
private |
Referenced by MATSGN_FFT().
|
static |
Referenced by fastFourierTransform(), fastFourierTransform3D(), getFFTMethodName(), MATSGN_FFT(), and MATSGN_Test::test().