C++ main module for emicrom Package  1.0
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
MATH_ElementaryMultiLevelsToeplitzMatrix Class Referenceabstract

This class is a multi level toeplitz matrix whose leaf block are packed/full matrix of dimension D and whose size is either $ S=D^2 $ or $ s=\frac{D.(D-1)}{2} $. The Matrix.Vector product is done by considering each element of the leaf matrix. More...

#include <MATH_ElementaryMultiLevelsToeplitzMatrix.h>

Inheritance diagram for MATH_ElementaryMultiLevelsToeplitzMatrix:
Inheritance graph
[legend]
Collaboration diagram for MATH_ElementaryMultiLevelsToeplitzMatrix:
Collaboration graph
[legend]

Public Member Functions

virtual void copy (const MATH_MultiLevelsToeplitzMatrix &mat)
 copy the matrix mat More...
 
void setStorage (const tString &storage)
 set storage of the leaf block matrix. More...
 
virtual tULLInt getMemorySize () const
 return the memory size in byte More...
 
virtual void clear ()
 clear the matrix clear the data creating when building the spectral space More...
 
FFTW_FFTgetDFTProjector () const
 return the projector for vector into the spectral space More...
 
virtual void vectorProduct (const tUIndex &N, const tReal *X, tReal *Y) const
 do the vector product of the circular matrix C with Y by an FFT method More...
 
virtual void vectorProduct (const CORE_RealArray &X, CORE_RealArray &Y) const
 do the vector product of the circular matrix C with Y by an FFT method More...
 
virtual SP::MATH_MultiLevelsToeplitzMatrix NewInstance () const =0
 new instance More...
 
const tFFTWComplexoperator() (const tUIndex &i, const tUIndex &j) const
 get the value of the matrix at row i and column j More...
 
tFFTWComplexoperator() (const tUIndex &i, const tUIndex &j)
 get the value of the matrix at row i and column j More...
 
virtual void setLeafBlockDimension (const tUIndex &n)
 set the dimension of leaf block More...
 
virtual void setLevels (const tUSInt &levelsNumber, const tUIndex levels[], const tUIndex &nD)
 set the levels of the matrix More...
 
void setLevels (const tUSInt &levelsNumber, const tUIndex levels[])
 set the levels of the matrix More...
 
tReal getRealValue (const tUIndex &i, const tUIndex &j) const
 get the real value at row i and column j More...
 
const tUIndexgetDimension () const
 get the dimension of the matrix More...
 
const tUIndexgetRowsNumber () const
 get the dimension of the matrix More...
 
const tUIndexgetColumnsNumber () const
 get the dimension of the matrix More...
 
FFTW_ComplexArraygetValues ()
 get the values of the matrix More...
 
const FFTW_ComplexArraygetValues () const
 get the values of the matrix More...
 
const tFFTWComplexgetLeafBlockValues (const tIndex indices[]) const
 get the values of the leaf block More...
 
tFFTWComplexgetLeafBlockValues (const tIndex indices[])
 get the values of the leaf block More...
 
const CORE_UIndexArraygetLevels () const
 get the level of the matrix More...
 
tUSInt getLevelsNumber () const
 get the number of levels of the matrix More...
 
const tUIndexgetCanonicalSpaceSize () const
 get canonical space size More...
 
tUIndex getLeafBlockSize () const
 return the size of the leaf block matrix More...
 
const tUIndexgetLeafBlockDimension () const
 return the dimension of the leaf block matrix More...
 
tUIndex getBlocksNumber () const
 get the blocks number More...
 
tUIndex getBlocksNumber (const tUIndex &l) const
 get the blocks number at the level More...
 
const tUIndexgetBlocksNumberPerRow (const tUSInt &l) const
 get the blocks number per row or column at the level More...
 
const tFlaggetSpace () const
 get the space of the matrix More...
 
const MATH_LeafBlockMatrixStoragegetStorage () const
 get the storage of the leaf matrices More...
 
MATH_LeafBlockMatrixStoragegetStorage ()
 get the storage of the leaf matrices More...
 
tUIndex getIndex (const tUIndex &i, const tUIndex &j) const
 return the index in values of the matrix value at row i and column j More...
 
tUIndex getToeplitzBlockIndex (const tUSInt &nLevels, const tUIndex N[], const tIndex I[]) const
 get the block index corresponding to indices More...
 
tUIndex getToeplitzBlockIndex (const tIndex I[]) const
 get the block index corresponding to indices More...
 
void projection (const tFlag &space)
 make the projection in the space More...
 
virtual tString toString () const
 return string 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...
 

Static Public Member Functions

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_Outout ()
 get the output More...
 
static SP::CORE_Out getOut ()
 get the output More...
 
static CORE_ThreadgetThread ()
 get the profilier More...
 
static const tBooleanisMemoryChecked ()
 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 CANONICAL_SPACE =0
 
static const tFlag SPECTRAL_SPACE =1
 

Protected Member Functions

 MATH_ElementaryMultiLevelsToeplitzMatrix (void)
 create a multi level toeplitz matrix More...
 
virtual ~MATH_ElementaryMultiLevelsToeplitzMatrix (void)
 destroy a multi level toeplitz matrix More...
 
virtual tUIndex computeSpectralSpaceSizePerDimension (const tUIndex &s, const tUSInt &d, CORE_UIndexArray &Ms) const =0
 compute the size of spectral space for each dimension More...
 
virtual void buildSpectralVectorProjector (FFTW_FFT &proj) const
 build the projector of vector in spectral spce More...
 
virtual void buildSpectralSpace ()
 build the spectral space More...
 
virtual void recoverCanonicalSpace ()
 recover the canonical space from the spectral space : do the reverse procedure of buildSpectralSpace() More...
 
virtual void buildColumnLeadingDimensions ()
 build the column leading dimensions More...
 
virtual void buildRowLeadingDimensions ()
 build the row indices More...
 
virtual void vectorProductInSpectralSpace (const FFTW_FFT &A, FFTW_FFT &Z) const
 make the vector product in spectral space More...
 
virtual void projectIntoSpectralSpace (const tUIndex &N, const tReal *X) const
 project the vector X from initial space to multi levels space More...
 
virtual void recoverFromSpectralSpace (const tUIndex &N, tReal *X) const
 recover Y from multi levels space to the initial space More...
 
void setSpectralSpaceSize (const tUIndex &n)
 set the spectral space size More...
 
const CORE_UIndexArraygetColumnLeadingDimensions () const
 get the leading dimension of columns from the spectral space More...
 
CORE_UIndexArraygetColumnLeadingDimensions ()
 get the leading dimension of columns from the spectral space More...
 
const CORE_UIndexArraygetRowLeadingDimensions () const
 get the index of the row i and column 0 from the spectral space More...
 
CORE_UIndexArraygetRowLeadingDimensions ()
 get the index of the row i and column 0 from the spectral space More...
 
const tUIndexgetSpectralSpaceSize () const
 get the spectral space size More...
 
virtual void diagonalize ()
 diagonalize the matrix projection of the matrix in the SPECTRAL_SPACE More...
 
virtual void recover ()
 projection of the matrix in the CANONICAL SPACE More...
 
tFFTWComplexoperator[] (const tUIndex &k)
 get the value at index k More...
 
const tFFTWComplexoperator[] (const tUIndex &k) const
 get the value at index k More...
 
void setSpace (const tFlag &space)
 set the space of the multi level block matrix More...
 
void setStorage (SP::MATH_LeafBlockMatrixStorage storage)
 set the storage of the matrix More...
 
void setDFT (SP::FFTW_FFT dft)
 set the DFT class More...
 
const FFTW_FFTgetDFT () const
 get the FFT class More...
 
FFTW_FFTgetDFT ()
 get the FFT class More...
 
tUIndex getBlockIndex (const tUIndex &ib, const tUIndex &jb, const tUIndex &N) const
 get the index of the block in the block list 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 (MATH_ElementaryMultiLevelsToeplitzMatrix)
 
virtual tUIndex getElementIndex (const tUIndex &i, const tUIndex &j) const
 return the index in values of the multi levels toeplitz matrix of the element at row i and j when leaf block matrix is considered as 1 element More...
 
tUIndex getElementIndex (const tUIndex &i, const tUIndex &j, const tUSInt &level, const tUIndex &nRows, tUIndex &nValues) const
 return the index in values of the matrix of the element at row i and j when leaf block matric is considered as 1 element More...
 

Private Attributes

SP::FFTW_FFT mWork
 

Detailed Description

This class is a multi level toeplitz matrix whose leaf block are packed/full matrix of dimension D and whose size is either $ S=D^2 $ or $ s=\frac{D.(D-1)}{2} $. The Matrix.Vector product is done by considering each element of the leaf matrix.

The size of the vector of the values of the toeplitz matrix is $ M \times S $ where M is the size of the spectral space for each element of the leaf block matrix. First the matrix is considered as a $ N \times S $ matrix stored by rows. This method buildSpectralSpace() changes the storage in $ S \times N $ by using the FFTW_DFTTranspose::Transpose() method. The values is transformed in size $ S \times M $ by adding 0 in [N,M[ for each element of the leaf block matrix. The method recoverCanonicalSpace() does the reverse procedure.

the method buildSpectralVectorProjector() builds a DFT projector for the D spectral spaces of size M.

the methods buildRowLeadingDimensions() and buildColumnLeadingDimensions() builds the function for projection/restoring indices of row and columns for first coordinate in [0,S[

the method vectorProductInSpectralSpace() builds the vector product of each element of the leaf matrix by the well know relationship $ \displaystyle \forall i in [0,D[, Z_i = \sum_{j=0}^{j=D-1} A_{ij}.Zj $ using a temporary vector.

the method projectIntoSpectralSpace() projects each dimension k in [0,D[ of X into its spectral space k.

the method recoverFromSpectralSpace() rebuids each dimension k in [0,D[ of X from its values in the spectral space k.

Author
Stephane Despreaux
Version
1.0

Constructor & Destructor Documentation

◆ MATH_ElementaryMultiLevelsToeplitzMatrix()

MATH_ElementaryMultiLevelsToeplitzMatrix::MATH_ElementaryMultiLevelsToeplitzMatrix ( void  )
protected

create a multi level toeplitz matrix

References CORE_Run::getClassFactory(), MATH_MultiLevelsToeplitzMatrix::NewInstance(), and MATH_MultiLevelsToeplitzMatrix::setDFT().

Here is the call graph for this function:

◆ ~MATH_ElementaryMultiLevelsToeplitzMatrix()

MATH_ElementaryMultiLevelsToeplitzMatrix::~MATH_ElementaryMultiLevelsToeplitzMatrix ( void  )
protectedvirtual

destroy a multi level toeplitz matrix

Member Function Documentation

◆ buildColumnLeadingDimensions()

void MATH_ElementaryMultiLevelsToeplitzMatrix::buildColumnLeadingDimensions ( )
protectedvirtual

build the column leading dimensions

  • register the index in CANONICAL space of the values corresponding to element at row 0 & column 0
  • register the leading dimension between column i+1 and column i at row 0

Implements MATH_MultiLevelsFFTToeplitzMatrix.

Reimplemented in MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix, and MATH_ElementaryMultiLevelsCircularToeplitzMatrix.

References MATH_MultiLevelsFFTToeplitzMatrix::getColumnLeadingDimensions(), MATH_MultiLevelsToeplitzMatrix::getDimension(), getElementIndex(), MATH_MultiLevelsToeplitzMatrix::getLeafBlockDimension(), CORE_Array< T >::setSize(), and tUIndex.

Referenced by MATH_ElementaryMultiLevelsCircularToeplitzMatrix::buildColumnLeadingDimensions(), buildSpectralSpace(), and getMemorySize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ buildRowLeadingDimensions()

void MATH_ElementaryMultiLevelsToeplitzMatrix::buildRowLeadingDimensions ( )
protectedvirtual

build the row indices

  • register the index in CANONICAL space of the values corresponding to element at colunm 0 & row i
  • register the leading dimension between row i+1 and row i at column 0

Implements MATH_MultiLevelsFFTToeplitzMatrix.

Reimplemented in MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix, and MATH_ElementaryMultiLevelsCircularToeplitzMatrix.

References MATH_MultiLevelsToeplitzMatrix::getDimension(), getElementIndex(), MATH_MultiLevelsToeplitzMatrix::getLeafBlockDimension(), MATH_MultiLevelsFFTToeplitzMatrix::getRowLeadingDimensions(), CORE_Array< T >::setSize(), and tUIndex.

Referenced by MATH_ElementaryMultiLevelsCircularToeplitzMatrix::buildRowLeadingDimensions(), buildSpectralSpace(), and getMemorySize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ buildSpectralSpace()

void MATH_ElementaryMultiLevelsToeplitzMatrix::buildSpectralSpace ( )
protectedvirtual

build the spectral space

  • build the spectral space size
  • create a DFT class

The size of the vector of the values of the toeplitz matrix is $ M \times s $ where M is the size of the spectral space for each element of the leaf block matrix. First the matrix is considered as a $ N \times s $ matrix stored by rows. This methdo buildSpectralSpace() changes the storage in $ s \times N $ by using the FFTW_DFTTranspose::Transpose() method. The values is transformed in size $ s \times M $ by adding 0 in [N,M[ for each element of the leaf block matrix

Implements MATH_MultiLevelsFFTToeplitzMatrix.

Reimplemented in MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix, and MATH_ElementaryMultiLevelsCircularToeplitzMatrix.

References buildColumnLeadingDimensions(), buildRowLeadingDimensions(), computeSpectralSpaceSizePerDimension(), FFTW_Object::FORWARD, FFTW_FFT::getArray(), MATH_MultiLevelsToeplitzMatrix::getBlocksNumber(), MATH_MultiLevelsToeplitzMatrix::getCanonicalSpaceSize(), MATH_MultiLevelsToeplitzMatrix::getDFT(), MATH_LeafBlockMatrixStorage::getSize(), FFTW_ComplexArray::getSize(), MATH_MultiLevelsToeplitzMatrix::getStorage(), FFTW_FFT::setFFT(), FFTW_FFT::setFFTsNumber(), FFTW_FFT::setSize(), MATH_MultiLevelsFFTToeplitzMatrix::setSpectralSpaceSize(), tFFTWComplex, FFTW_DFTTranspose::Transpose(), and tUIndex.

Referenced by MATH_ElementaryMultiLevelsCircularToeplitzMatrix::buildSpectralSpace(), MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix::buildSpectralSpace(), and getMemorySize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ buildSpectralVectorProjector()

void MATH_ElementaryMultiLevelsToeplitzMatrix::buildSpectralVectorProjector ( FFTW_FFT proj) const
protectedvirtual

build the projector of vector in spectral spce

Parameters
projthe DFT projector built
  • set the dimension of each point of the FFT to the memory size leaf block
  • copy the size of the DFT to transform Toeplitz values to the size of the DFT for each element of the leaf block matrix
  • create a working DFT

Reimplemented from MATH_MultiLevelsFFTToeplitzMatrix.

References CORE_Out::ERROR_MSG, FFTW_Object::FORWARD, MATH_MultiLevelsToeplitzMatrix::getDFT(), MATH_MultiLevelsToeplitzMatrix::getLeafBlockDimension(), CORE_Exception::getMessage(), FFTW_FFT::getSize(), mWork, FFTW_FFT::NewInstance(), CORE_Object::out(), CORE_Out::println(), FFTW_FFT::setFFT(), FFTW_FFT::setFFTsNumber(), and FFTW_FFT::setSize().

Referenced by getMemorySize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clear()

void MATH_MultiLevelsFFTToeplitzMatrix::clear ( )
virtualinherited

◆ computeEpsilon()

template<class T >
static T CORE_Object::computeEpsilon ( )
inlinestaticinherited

compute epsilon

Returns
the epsilon value eps=10^{-p/3} where p is defined by getEpsilon()=10^{-p}

◆ computeSpectralSpaceSizePerDimension()

virtual tUIndex MATH_ElementaryMultiLevelsToeplitzMatrix::computeSpectralSpaceSizePerDimension ( const tUIndex s,
const tUSInt d,
CORE_UIndexArray Ms 
) const
protectedpure virtual

compute the size of spectral space for each dimension

Parameters
ssize of the canonical space
ddimension of the canonical space
Msthe spectral dimension for each levels

Implemented in MATH_ElementaryMultiLevelsCircularToeplitzMatrix, MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix, and MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix.

Referenced by buildSpectralSpace(), and getMemorySize().

Here is the caller graph for this function:

◆ copy()

virtual void MATH_ElementaryMultiLevelsToeplitzMatrix::copy ( const MATH_MultiLevelsToeplitzMatrix mat)
inlinevirtual

◆ diagonalize()

void MATH_MultiLevelsFFTToeplitzMatrix::diagonalize ( )
protectedvirtualinherited

diagonalize the matrix projection of the matrix in the SPECTRAL_SPACE

Implements MATH_MultiLevelsToeplitzMatrix.

References MATH_MultiLevelsFFTToeplitzMatrix::buildSpectralSpace(), MATH_MultiLevelsFFTToeplitzMatrix::buildSpectralVectorProjector(), CORE_Out::ERROR_MSG, MATH_MultiLevelsToeplitzMatrix::getDFT(), CORE_Exception::getMessage(), MATH_MultiLevelsFFTToeplitzMatrix::mDFTProjector, FFTW_FFT::NewInstance(), CORE_Object::out(), CORE_Out::println(), and FFTW_FFT::runFFT().

Referenced by MATH_MultiLevelsFFTToeplitzMatrix::buildSpectralVectorProjector().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBlockIndex()

tUIndex MATH_MultiLevelsToeplitzMatrix::getBlockIndex ( const tUIndex ib,
const tUIndex jb,
const tUIndex N 
) const
inlineprotectedinherited

get the index of the block in the block list

Parameters
ibrow index of the block
jbcolum index of the block
Nsize of the level the list are $ \{ T_{-N+1},...,T_{-1},T_0,T_1,.....T_{N-1} \} $ N=the number of columns (or rows corresponding to the matrix:

$ T = \left[ {\begin{array}{ccccc} T_0 & T_{-1} & T_{-1} & ... & T_{1-N} \\ T_1 & T_0 & ... & ... & T_{2-N} \\ ... & ... & ... & ...& ... \\ T_{N-1} & T_{N-2} & ... & ... & T_0 \end{array} } \right] $

Returns
the block index in the blocks list of $ T_{ib-jb} $ which is ib-jb+N-1

Referenced by getElementIndex(), and MATH_MultiLevelsToeplitzMatrix::getIndex().

Here is the caller graph for this function:

◆ getBlocksNumber() [1/2]

tUIndex MATH_MultiLevelsToeplitzMatrix::getBlocksNumber ( ) const
inlineinherited

get the blocks number

Returns
the number of blocks

References MATH_MultiLevelsToeplitzMatrix::getLeafBlockSize().

Referenced by buildSpectralSpace(), MATH_ElementaryMultiLevelsCircularToeplitzMatrix::buildSpectralSpace(), recoverCanonicalSpace(), and MATH_ElementaryMultiLevelsCircularToeplitzMatrix::recoverCanonicalSpace().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBlocksNumber() [2/2]

tUIndex MATH_MultiLevelsToeplitzMatrix::getBlocksNumber ( const tUIndex l) const
inlineinherited

get the blocks number at the level

Parameters
lindex of the level
Returns
the number of blocks

◆ getBlocksNumberPerRow()

const tUIndex& MATH_MultiLevelsToeplitzMatrix::getBlocksNumberPerRow ( const tUSInt l) const
inlineinherited

get the blocks number per row or column at the level

Parameters
lindex of the level >=1
Returns
the number of blocks at the level l per row (or column) l=1 is the levels which contains the leaf block levels whise level is 0

Referenced by getElementIndex().

Here is the caller graph for this function:

◆ getCanonicalSpaceSize()

const tUIndex& MATH_MultiLevelsToeplitzMatrix::getCanonicalSpaceSize ( ) const
inlineinherited

◆ getClassName() [1/2]

tString CORE_Object::getClassName ( ) const
inherited

return the class name of the object

Returns
the class name of the object

References tString.

Referenced by CORE_Object::getIdentityString(), EMM_Operator::getName(), and CORE_Object::isMemoryChecked().

Here is the caller graph for this function:

◆ getClassName() [2/2]

static tString CORE_Object::getClassName ( const tString identityString)
inlinestaticinherited

return the class name of the object

Parameters
identityStringthe identity string of the object
Returns
the class name

◆ getColumnLeadingDimensions() [1/2]

const CORE_UIndexArray& MATH_MultiLevelsFFTToeplitzMatrix::getColumnLeadingDimensions ( ) const
inlineprotectedinherited

get the leading dimension of columns from the spectral space

Returns
the leading dimension of the column from the spectral space
  • index 0: the index corresponding to the first column in the spectral space
  • index i where i>0 : the leading dimension betwen column i and column i-1

References MATH_MultiLevelsFFTToeplitzMatrix::mColumnLeadingDimensions.

Referenced by buildColumnLeadingDimensions(), MATH_ElementaryMultiLevelsCircularToeplitzMatrix::buildColumnLeadingDimensions(), MATH_GlobalMultiLevelsPolynomialToeplitzMatrix::buildColumnLeadingDimensions(), MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix::buildColumnLeadingDimensions(), MATH_MultiLevelsFFTToeplitzMatrix::copy(), projectIntoSpectralSpace(), and MATH_GlobalMultiLevelsPolynomialToeplitzMatrix::projectIntoSpectralSpace().

Here is the caller graph for this function:

◆ getColumnLeadingDimensions() [2/2]

CORE_UIndexArray& MATH_MultiLevelsFFTToeplitzMatrix::getColumnLeadingDimensions ( )
inlineprotectedinherited

get the leading dimension of columns from the spectral space

Returns
the leading dimension of the column from the spectral space
  • index 0: the index corresponding to the first column in the spectral space
  • index i where i>0 : the leading dimension betwen column i and column i-1

References MATH_MultiLevelsFFTToeplitzMatrix::mColumnLeadingDimensions.

◆ getColumnsNumber()

const tUIndex& MATH_MultiLevelsToeplitzMatrix::getColumnsNumber ( ) const
inlineinherited

get the dimension of the matrix

Returns
the number of rows or columns of the matrix

References MATH_MultiLevelsToeplitzMatrix::mDimension.

Referenced by MATH_MultiLevelsToeplitzMatrix::toString().

Here is the caller graph for this function:

◆ getDFT() [1/2]

const FFTW_FFT& MATH_MultiLevelsToeplitzMatrix::getDFT ( ) const
inlineprotectedinherited

◆ getDFT() [2/2]

FFTW_FFT& MATH_MultiLevelsToeplitzMatrix::getDFT ( )
inlineprotectedinherited

get the FFT class

Returns
the fft class

◆ getDFTProjector()

FFTW_FFT& MATH_MultiLevelsFFTToeplitzMatrix::getDFTProjector ( ) const
inlineinherited

return the projector for vector into the spectral space

Returns
the projector to spectral space

Referenced by projectIntoSpectralSpace(), MATH_GlobalMultiLevelsPolynomialToeplitzMatrix::projectIntoSpectralSpace(), recoverFromSpectralSpace(), MATH_GlobalMultiLevelsPolynomialToeplitzMatrix::recoverFromSpectralSpace(), and MATH_MultiLevelsFFTToeplitzMatrix::vectorProduct().

Here is the caller graph for this function:

◆ getDimension()

const tUIndex& MATH_MultiLevelsToeplitzMatrix::getDimension ( ) const
inlineinherited

◆ getDoubleEpsilon()

static tDouble CORE_Object::getDoubleEpsilon ( )
inlinestaticinherited

get the epsilon value for tDouble type

Returns
the epsilon value for tDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getDoubleInfinity()

static tDouble CORE_Object::getDoubleInfinity ( )
inlinestaticinherited

get the infinity value for tFloat type

Returns
the intinity value for tFloat type

◆ getElementIndex() [1/2]

tUIndex MATH_ElementaryMultiLevelsToeplitzMatrix::getElementIndex ( const tUIndex i,
const tUIndex j 
) const
privatevirtual

return the index in values of the multi levels toeplitz matrix of the element at row i and j when leaf block matrix is considered as 1 element

Parameters
iindex of the row
jindex of the colum

References MATH_MultiLevelsToeplitzMatrix::getDimension(), MATH_MultiLevelsToeplitzMatrix::getLeafBlockDimension(), MATH_MultiLevelsToeplitzMatrix::getLevelsNumber(), and tUIndex.

Referenced by buildColumnLeadingDimensions(), buildRowLeadingDimensions(), getElementIndex(), and getMemorySize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getElementIndex() [2/2]

tUIndex MATH_ElementaryMultiLevelsToeplitzMatrix::getElementIndex ( const tUIndex i,
const tUIndex j,
const tUSInt level,
const tUIndex nRows,
tUIndex nValues 
) const
private

return the index in values of the matrix of the element at row i and j when leaf block matric is considered as 1 element

Parameters
iindex of the row
jindex of the colum
levelindex of the level in [1,getLevelsNumber()[
nRowsnumber of rows of the matrix at level
nValuesnumber of values of the level

References MATH_MultiLevelsToeplitzMatrix::getBlockIndex(), MATH_MultiLevelsToeplitzMatrix::getBlocksNumberPerRow(), getElementIndex(), and tUIndex.

Here is the call graph for this function:

◆ getEpsilon()

template<class T >
static T CORE_Object::getEpsilon ( )
inlinestaticinherited

get the epsilon value for T type

Returns
the epsilon value for T type

◆ getFloatEpsilon()

static tFloat CORE_Object::getFloatEpsilon ( )
inlinestaticinherited

get the epsilon value for tFloat type

Returns
the epsilon value for tFloat type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getFloatInfinity()

static tFloat CORE_Object::getFloatInfinity ( )
inlinestaticinherited

get the infinity value for tFloat type

Returns
the intinity value for tFloat type

◆ getIdentityString()

tString CORE_Object::getIdentityString ( ) const
inlineinherited

◆ getIndex()

tUIndex MATH_MultiLevelsToeplitzMatrix::getIndex ( const tUIndex i,
const tUIndex j 
) const
inlineinherited

return the index in values of the matrix value at row i and column j

Parameters
iindex of row in [0,getDimension()[
jindex of column in [0,getDimension(){
Returns
the index of the element in the values

References MATH_MultiLevelsToeplitzMatrix::getRowsNumber(), CORE_Array< T >::getSize(), MATH_MultiLevelsToeplitzMatrix::getToeplitzBlockIndex(), tIndex, tUIndex, and tUSInt.

Referenced by MATH_GlobalMultiLevelsPolynomialToeplitzMatrix::buildColumnLeadingDimensions(), MATH_GlobalMultiLevelsPolynomialToeplitzMatrix::buildRowLeadingDimensions(), MATH_MultiLevelsToeplitzMatrix::getIndex(), MATH_MultiLevelsToeplitzMatrix::getToeplitzBlockIndex(), and MATH_MultiLevelsToeplitzMatrix::operator()().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getInfinity()

template<class T >
static T CORE_Object::getInfinity ( )
inlinestaticinherited

get the infinity for T type

Returns
the infinity value for T type

◆ getLDoubleEpsilon()

static tLDouble CORE_Object::getLDoubleEpsilon ( )
inlinestaticinherited

get the epsilon value for tLDouble type

Returns
the epsilon value for tLDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getLDoubleInfinity()

static tDouble CORE_Object::getLDoubleInfinity ( )
inlinestaticinherited

get the infinity value for tDouble type

Returns
the infinity value for tDouble type

◆ getLeafBlockDimension()

const tUIndex& MATH_MultiLevelsToeplitzMatrix::getLeafBlockDimension ( ) const
inlineinherited

return the dimension of the leaf block matrix

Returns
the number of rows or columns of the leaf block matrix

Referenced by buildColumnLeadingDimensions(), MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix::buildLeadingDimensions(), buildRowLeadingDimensions(), buildSpectralVectorProjector(), getElementIndex(), and MATH_MultiLevelsToeplitzMatrix::setLevels().

Here is the caller graph for this function:

◆ getLeafBlockSize()

tUIndex MATH_MultiLevelsToeplitzMatrix::getLeafBlockSize ( ) const
inlineinherited

return the size of the leaf block matrix

Returns
the memory size of the leaf block matrix

Referenced by MATH_MultiLevelsToeplitzMatrix::getBlocksNumber(), and MATH_MultiLevelsToeplitzMatrix::setLevels().

Here is the caller graph for this function:

◆ getLeafBlockValues() [1/2]

const tFFTWComplex* MATH_MultiLevelsToeplitzMatrix::getLeafBlockValues ( const tIndex  indices[]) const
inlineinherited

get the values of the leaf block

Parameters
indicesindices of the block
Returns
a pointer to the values of size getLeafBlockSize()

References CORE_Array< T >::getSize(), MATH_MultiLevelsToeplitzMatrix::getToeplitzBlockIndex(), and MATH_MultiLevelsToeplitzMatrix::getValues().

Referenced by MATH_ToeplitzTest::toeplitzTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLeafBlockValues() [2/2]

tFFTWComplex* MATH_MultiLevelsToeplitzMatrix::getLeafBlockValues ( const tIndex  indices[])
inlineinherited

get the values of the leaf block

Parameters
indicesindices of the block
Returns
a pointer to the values of size getLeafBlockSize()

References CORE_Array< T >::getSize(), MATH_MultiLevelsToeplitzMatrix::getToeplitzBlockIndex(), and MATH_MultiLevelsToeplitzMatrix::getValues().

Here is the call graph for this function:

◆ getLevels()

const CORE_UIndexArray& MATH_MultiLevelsToeplitzMatrix::getLevels ( ) const
inlineinherited

◆ getLevelsNumber()

tUSInt MATH_MultiLevelsToeplitzMatrix::getLevelsNumber ( ) const
inlineinherited

get the number of levels of the matrix

References CORE_Array< T >::getSize().

Referenced by MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix::buildSpectralSpace(), getElementIndex(), and MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix::recoverCanonicalSpace().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMaxChar()

static tChar CORE_Object::getMaxChar ( )
inlinestaticinherited

get the max value for tChar type

Returns
the max value for tChar type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxDouble()

static tDouble CORE_Object::getMaxDouble ( )
inlinestaticinherited

get the max value for tDouble type

Returns
the max value for tDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxFlag()

static tFlag CORE_Object::getMaxFlag ( )
inlinestaticinherited

get the max value for the tFlag type

Returns
the max value for the tFlag type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxFloat()

static tFloat CORE_Object::getMaxFloat ( )
inlinestaticinherited

get the max value for tFloat type

Returns
the max value for tFloat type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxIndex()

static tIndex CORE_Object::getMaxIndex ( )
inlinestaticinherited

get the max value for the array/vector indexing type

Returns
the max value for the array/vector indexing type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxInt()

static tInt CORE_Object::getMaxInt ( )
inlinestaticinherited

get the max value for tInt type

Returns
the max value for tInt type

Referenced by MATSGN_FFT::fastFourierTransform3D_FFTW(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxInteger()

static tInteger CORE_Object::getMaxInteger ( )
inlinestaticinherited

get the max value for the integer type

Returns
the max value for the integer type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxLDouble()

static tLDouble CORE_Object::getMaxLDouble ( )
inlinestaticinherited

get the max value for tLDouble type

Returns
the max value for tLDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxLInt()

static tLInt CORE_Object::getMaxLInt ( )
inlinestaticinherited

get the max value for tLInt type

Returns
the max value for tLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxLLInt()

static tLLInt CORE_Object::getMaxLLInt ( )
inlinestaticinherited

get the max value for tULInt type

Returns
the max value for tULInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxReal()

static tReal CORE_Object::getMaxReal ( )
inlinestaticinherited

get the max value for the real type

Returns
he max value for the real type

Referenced by EMM_MatterField::adimensionize(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxSInt()

static tSInt CORE_Object::getMaxSInt ( )
inlinestaticinherited

get the max value for tSInt type

Returns
the max value for tSInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxUChar()

static tUChar CORE_Object::getMaxUChar ( )
inlinestaticinherited

get the max value for tUChar type

Returns
the max value for tUChar type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxUIndex()

static tUIndex CORE_Object::getMaxUIndex ( )
inlinestaticinherited

get the max value for difference the array/vector indexing type

Returns
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().

Here is the caller graph for this function:

◆ getMaxUInt()

static tUInt CORE_Object::getMaxUInt ( )
inlinestaticinherited

get the max value for tUInt type

Returns
the max value for tUInt type

Referenced by EMM_Array< tCellFlag >::loadFromFile(), EMM_RealField::loadFromFile(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxUInteger()

static tUInteger CORE_Object::getMaxUInteger ( )
inlinestaticinherited

get the max value for the unsigned integer type

Returns
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().

Here is the caller graph for this function:

◆ getMaxULInt()

static tULInt CORE_Object::getMaxULInt ( )
inlinestaticinherited

get the max value for tULInt type

Returns
the max value for tULInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxULLInt()

static tULLInt CORE_Object::getMaxULLInt ( )
inlinestaticinherited

get the max value for tULLInt type

Returns
the max value for tULLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMaxUSInt()

static tUSInt CORE_Object::getMaxUSInt ( )
inlinestaticinherited

get the max value for tUSInt type

Returns
the max value for tUSInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMemorySize()

virtual tULLInt MATH_ElementaryMultiLevelsToeplitzMatrix::getMemorySize ( ) const
inlinevirtual

return the memory size in byte

Returns
the memory size of the storage in bytes 1 Kb = 1024 bytes 1 Mb = 1024 Kb 1 Gb = 1024 Mb 1 Tb = 1024 Gb 1 Hb = 1024 Tb

Reimplemented from MATH_MultiLevelsFFTToeplitzMatrix.

References buildColumnLeadingDimensions(), buildRowLeadingDimensions(), buildSpectralSpace(), buildSpectralVectorProjector(), computeSpectralSpaceSizePerDimension(), getElementIndex(), MATH_MultiLevelsFFTToeplitzMatrix::getMemorySize(), null, projectIntoSpectralSpace(), recoverCanonicalSpace(), recoverFromSpectralSpace(), tReal, tUIndex, tUSInt, and vectorProductInSpectralSpace().

Here is the call graph for this function:

◆ getMinChar()

static tChar CORE_Object::getMinChar ( )
inlinestaticinherited

get the min value for tChar type

Returns
the min value for tChar type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinDouble()

static tDouble CORE_Object::getMinDouble ( )
inlinestaticinherited

get the min value for tDouble type

Returns
the min value for tDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinFlag()

static tFlag CORE_Object::getMinFlag ( )
inlinestaticinherited

get the min value for the tFlag type

Returns
the min value for the tFlag type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinFloat()

static tFloat CORE_Object::getMinFloat ( )
inlinestaticinherited

get the min value for tFloat type

Returns
the min value for tFloat type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinIndex()

static tIndex CORE_Object::getMinIndex ( )
inlinestaticinherited

get the min value for the array/vector indexing type

Returns
the min value for the array/vector indexing type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinInt()

static tInt CORE_Object::getMinInt ( )
inlinestaticinherited

get the min value for tInt type

Returns
the min value for tInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinInteger()

static tInteger CORE_Object::getMinInteger ( )
inlinestaticinherited

get the min value for the integer type

Returns
the minin value for the integer type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinLDouble()

static tLDouble CORE_Object::getMinLDouble ( )
inlinestaticinherited

get the min value for tLDouble type

Returns
the min value for tLDouble type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinLInt()

static tLInt CORE_Object::getMinLInt ( )
inlinestaticinherited

get the min value for tLInt type

Returns
the min value for tLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinLLInt()

static tLLInt CORE_Object::getMinLLInt ( )
inlinestaticinherited

get the min value for tLLInt type

Returns
the min value for tLLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinReal()

static tReal CORE_Object::getMinReal ( )
inlinestaticinherited

get the min value for the real type

Returns
the min value for the real type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinSInt()

static tSInt CORE_Object::getMinSInt ( )
inlinestaticinherited

get the min value for tSInt type

Returns
the min value for tSInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUChar()

static tUChar CORE_Object::getMinUChar ( )
inlinestaticinherited

get the min value for tUChar type

Returns
the min value for tUChar type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUIndex()

static tUIndex CORE_Object::getMinUIndex ( )
inlinestaticinherited

get the min value for difference the array/vector indexing type

Returns
the min value for difference the array/vector indexing type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUInt()

static tUInt CORE_Object::getMinUInt ( )
inlinestaticinherited

get the min value for tUInt type

Returns
the min value for tUInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUInteger()

static tUInteger CORE_Object::getMinUInteger ( )
inlinestaticinherited

get the min value for the unsigned integer type

Returns
the min value for the unsigned integer type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinULInt()

static tULInt CORE_Object::getMinULInt ( )
inlinestaticinherited

get the min value for tULInt type

Returns
the min value for tULInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinULLInt()

static tULLInt CORE_Object::getMinULLInt ( )
inlinestaticinherited

get the min value for tULLInt type

Returns
the min value for tULLInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getMinUSInt()

static tUSInt CORE_Object::getMinUSInt ( )
inlinestaticinherited

get the min value for tUSInt type

Returns
the min value for tUSInt type

Referenced by CORE_Test::testType().

Here is the caller graph for this function:

◆ getOut()

static SP::CORE_Out CORE_Object::getOut ( )
inlinestaticinherited

get the output

Returns
the shared pointer to the output stream

References CORE_Object::OUT.

◆ getPointerAddress()

tString CORE_Object::getPointerAddress ( ) const
inlineinherited

return the identity string of the object

Returns
the identity string of the object

References CORE_Object::pointer2String().

Here is the call graph for this function:

◆ getRealEpsilon()

static tReal CORE_Object::getRealEpsilon ( )
inlinestaticinherited

get the eps which is the difference between 1 and the least value greater than 1 that is representable.

Returns
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().

Here is the caller graph for this function:

◆ getRealInfinity()

static tReal CORE_Object::getRealInfinity ( )
inlinestaticinherited

◆ getRealValue()

tReal MATH_MultiLevelsToeplitzMatrix::getRealValue ( const tUIndex i,
const tUIndex j 
) const
inlineinherited

get the real value at row i and column j

Returns
the real part of the complex at row i and rows j

Referenced by MATH_MultiLevelsToeplitzMatrix::toString().

Here is the caller graph for this function:

◆ getRowLeadingDimensions() [1/2]

const CORE_UIndexArray& MATH_MultiLevelsFFTToeplitzMatrix::getRowLeadingDimensions ( ) const
inlineprotectedinherited

get the index of the row i and column 0 from the spectral space

Returns
the indices of rows of the first column in the spectral space
  • index 0: the index corresponding to the first row in the spectral space
  • index i where i>0 : the leading dimension betwen row i and row i-1

References MATH_MultiLevelsFFTToeplitzMatrix::mRowLeadingDimensions.

Referenced by buildRowLeadingDimensions(), MATH_ElementaryMultiLevelsCircularToeplitzMatrix::buildRowLeadingDimensions(), MATH_GlobalMultiLevelsPolynomialToeplitzMatrix::buildRowLeadingDimensions(), MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix::buildRowLeadingDimensions(), MATH_MultiLevelsFFTToeplitzMatrix::copy(), recoverFromSpectralSpace(), and MATH_GlobalMultiLevelsPolynomialToeplitzMatrix::recoverFromSpectralSpace().

Here is the caller graph for this function:

◆ getRowLeadingDimensions() [2/2]

CORE_UIndexArray& MATH_MultiLevelsFFTToeplitzMatrix::getRowLeadingDimensions ( )
inlineprotectedinherited

get the index of the row i and column 0 from the spectral space

Returns
the indices of rows of the first column in the spectral space
  • index 0: the index corresponding to the first row in the spectral space
  • index i where i>0 : the leading dimension betwen row i and row i-1

References MATH_MultiLevelsFFTToeplitzMatrix::mRowLeadingDimensions.

◆ getRowsNumber()

const tUIndex& MATH_MultiLevelsToeplitzMatrix::getRowsNumber ( ) const
inlineinherited

get the dimension of the matrix

Returns
the number of rows or columns of the matrix

References MATH_MultiLevelsToeplitzMatrix::mDimension.

Referenced by MATH_MultiLevelsToeplitzMatrix::getIndex(), MATH_ToeplitzTest::toeplitzTest(), and MATH_MultiLevelsToeplitzMatrix::toString().

Here is the caller graph for this function:

◆ getSharedPointer() [1/2]

void CORE_Object::getSharedPointer ( SP::CORE_Object &  p)
inlineinherited

◆ getSharedPointer() [2/2]

void CORE_Object::getSharedPointer ( SPC::CORE_Object &  p) const
inlineinherited

get the shared pointer of this class into p

Parameters
p: shared pointer of the class This

◆ getSpace()

const tFlag& MATH_MultiLevelsToeplitzMatrix::getSpace ( ) const
inlineinherited

get the space of the matrix

Returns
the space of the matrix in :
  • CANONICAL_SPACE
  • SPECTRAL_SPACE

References MATH_MultiLevelsToeplitzMatrix::mSpace.

Referenced by MATH_MultiLevelsToeplitzMatrix::copy(), MATH_MultiLevelsToeplitzMatrix::projection(), and MATH_MultiLevelsFFTToeplitzMatrix::vectorProduct().

Here is the caller graph for this function:

◆ getSpectralSpaceSize()

const tUIndex& MATH_MultiLevelsFFTToeplitzMatrix::getSpectralSpaceSize ( ) const
inlineprotectedinherited

◆ getStorage() [1/2]

const MATH_LeafBlockMatrixStorage& MATH_MultiLevelsToeplitzMatrix::getStorage ( ) const
inlineinherited

◆ getStorage() [2/2]

MATH_LeafBlockMatrixStorage& MATH_MultiLevelsToeplitzMatrix::getStorage ( )
inlineinherited

get the storage of the leaf matrices

Returns
the storage of the leaf block matrix

◆ getThread()

static CORE_Thread& CORE_Object::getThread ( )
inlinestaticinherited

get the profilier

Returns
the profiler

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().

Here is the caller graph for this function:

◆ getToeplitzBlockIndex() [1/2]

tUIndex MATH_MultiLevelsToeplitzMatrix::getToeplitzBlockIndex ( const tUSInt nLevels,
const tUIndex  N[],
const tIndex  I[] 
) const
inherited

get the block index corresponding to indices

Parameters
nLevelsnumber of levels
N: number of element by level of size nLevels
Iindex of element at each level i[l] in ]-N[l],N[l][
Returns
the index of element as follow: index = (i_0+N_0-1+(2*N_0-1)*(i_1+N_1-1+(2*N_1-1)*(i_2+N_2-1+...)))

References tIndex, tUIndex, and tUSInt.

Referenced by MATH_ElementaryMultiLevelsCircularTensorToeplitzMatrix::buildSpectralSpace(), MATH_MultiLevelsToeplitzMatrix::getIndex(), MATH_MultiLevelsToeplitzMatrix::getLeafBlockValues(), MATH_MultiLevelsToeplitzMatrix::getToeplitzBlockIndex(), and MATH_ToeplitzTest::toeplitzTest().

Here is the caller graph for this function:

◆ getToeplitzBlockIndex() [2/2]

tUIndex MATH_MultiLevelsToeplitzMatrix::getToeplitzBlockIndex ( const tIndex  I[]) const
inlineinherited

get the block index corresponding to indices

Parameters
Iindex of element at each level i[l] in ]-N[l],N[l][
Returns
the index of element as follow: index = (i_0+N_0-1+(2*N_0-1)*(i_1+N_1-1+(2*N_1-1)*(i_2+N_2-1+...)))

References MATH_MultiLevelsToeplitzMatrix::getIndex(), CORE_Array< T >::getSize(), MATH_MultiLevelsToeplitzMatrix::getToeplitzBlockIndex(), tUIndex, and tUSInt.

Here is the call graph for this function:

◆ getTypeName()

template<class T >
static tString CORE_Object::getTypeName ( )
inlinestaticinherited

get type name

Returns
the type name of the class

References tString.

◆ getValues() [1/2]

FFTW_ComplexArray& MATH_MultiLevelsToeplitzMatrix::getValues ( )
inlineinherited

get the values of the matrix

Returns
the values array

Referenced by MATH_ToeplitzTest::emicromTest(), MATH_MultiLevelsToeplitzMatrix::getLeafBlockValues(), and MATH_ToeplitzTest::toeplitzTest().

Here is the caller graph for this function:

◆ getValues() [2/2]

const FFTW_ComplexArray& MATH_MultiLevelsToeplitzMatrix::getValues ( ) const
inlineinherited

get the values of the matrix

Returns
the values array

◆ is32Architecture()

static tBoolean CORE_Object::is32Architecture ( )
inlinestaticinherited

return true if the machine is a 32 bits machine

Returns
true is the computing is done in a 32 bits machine

References CORE_Object::pointer2String(), CORE_Object::printObjectsInMemory(), and tString.

Referenced by CORE_Test::testType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is64Architecture()

static tBoolean CORE_Object::is64Architecture ( )
inlinestaticinherited

return true if the machine is a 64 bits machine

Returns
true is the computing is done in a 64 bits machine

Referenced by EMM_VTK::getVTKType(), and CORE_Test::testType().

Here is the caller graph for this function:

◆ isInstanceOf() [1/2]

template<class T >
tBoolean CORE_Object::isInstanceOf ( ) const
inlineinherited

test if the clas T is an instance of this class

Returns
true if the object is an instance of T

References null.

Referenced by MATH_ToeplitzTest::toeplitzTest().

Here is the caller graph for this function:

◆ isInstanceOf() [2/2]

tBoolean CORE_Object::isInstanceOf ( const tString name) const
inlineinherited

test if the object is an instance of className

Parameters
namename of the class
Returns
true if the object is an instance of class Name

References CORE_Object::getIdentityString().

Here is the call graph for this function:

◆ isMemoryChecked()

static const tBoolean& CORE_Object::isMemoryChecked ( )
inlinestaticinherited

get if the memory checking is used

Returns
true: if the memory checking is used.

References CORE_Object::getClassName(), CORE_Object::mIsMemoryTesting, and tString.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NewInstance()

virtual SP::MATH_MultiLevelsToeplitzMatrix MATH_MultiLevelsToeplitzMatrix::NewInstance ( ) const
pure virtualinherited

◆ operator()() [1/2]

const tFFTWComplex& MATH_MultiLevelsToeplitzMatrix::operator() ( const tUIndex i,
const tUIndex j 
) const
inlineinherited

get the value of the matrix at row i and column j

Parameters
ithe index of the row [0,getDimension()[
jthe index of the column in [0,getDimension()[ return the value at element (i,j)

References MATH_MultiLevelsToeplitzMatrix::getIndex().

Here is the call graph for this function:

◆ operator()() [2/2]

tFFTWComplex& MATH_MultiLevelsToeplitzMatrix::operator() ( const tUIndex i,
const tUIndex j 
)
inlineinherited

get the value of the matrix at row i and column j

Parameters
ithe index of the row [0,getDimension()[
jthe index of the column in [0,getDimension()[ return the value at element (i,j)

References MATH_MultiLevelsToeplitzMatrix::clear(), MATH_MultiLevelsToeplitzMatrix::copy(), and MATH_MultiLevelsToeplitzMatrix::getIndex().

Here is the call graph for this function:

◆ operator[]() [1/2]

tFFTWComplex& MATH_MultiLevelsToeplitzMatrix::operator[] ( const tUIndex k)
inlineprotectedinherited

get the value at index k

Parameters
kindex of the value in [0,getSpectralSpaceDimension()[ return the value at index k

◆ operator[]() [2/2]

const tFFTWComplex& MATH_MultiLevelsToeplitzMatrix::operator[] ( const tUIndex k) const
inlineprotectedinherited

get the value at index k

Parameters
kindex of the value in [0,etSpectralSpaceDimension()()[ return the value at index k

◆ out()

static CORE_Out& CORE_Object::out ( )
inlinestaticinherited

get the output

Returns
the output stream

Referenced by EMM_Matter::adimensionize(), EMM_DisplacementFVMOperator::backup(), EMM_DisplacementOperator::backup(), 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().

Here is the caller graph for this function:

◆ pointer2String()

tString CORE_Object::pointer2String ( const void *  obj)
staticinherited

return the string representation of a pointer

Parameters
obj: oject to get the string pointer
Returns
the string pointer of the object

References tString.

Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), CORE_Object::is32Architecture(), and CORE_Object::~CORE_Object().

Here is the caller graph for this function:

◆ printObjectsInMemory() [1/2]

void CORE_Object::printObjectsInMemory ( ostream &  f)
staticinherited

print object in memory

Parameters
f: output to print the objects in memory

References CORE_Object::getIdentityString(), CORE_Object::getSharedPointer(), CORE_Object::mIsMemoryTesting, CORE_Object::mObjects, and tInteger.

Here is the call graph for this function:

◆ printObjectsInMemory() [2/2]

static void CORE_Object::printObjectsInMemory ( )
inlinestaticinherited

print object in memory in the standart output

Referenced by CORE_Object::is32Architecture(), and main().

Here is the caller graph for this function:

◆ projectIntoSpectralSpace()

void MATH_ElementaryMultiLevelsToeplitzMatrix::projectIntoSpectralSpace ( const tUIndex N,
const tReal X 
) const
protectedvirtual

project the vector X from initial space to multi levels space

Parameters
Nsize of X
Xthe input vector in initial dimension

It builds the projection of X in the D spectral spaces (one per dimension of point) of size M

Implements MATH_MultiLevelsFFTToeplitzMatrix.

References FFTW_FFT::getArray(), MATH_MultiLevelsFFTToeplitzMatrix::getColumnLeadingDimensions(), MATH_MultiLevelsFFTToeplitzMatrix::getDFTProjector(), MATH_LeafBlockMatrixStorage::getDimension(), MATH_MultiLevelsFFTToeplitzMatrix::getSpectralSpaceSize(), MATH_MultiLevelsToeplitzMatrix::getStorage(), null, FFTW_FFT::runFFT(), tFFTWComplex, tReal, and tUIndex.

Referenced by getMemorySize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ projection()

void MATH_MultiLevelsToeplitzMatrix::projection ( const tFlag space)
inlineinherited

◆ recover()

void MATH_MultiLevelsFFTToeplitzMatrix::recover ( )
protectedvirtualinherited

projection of the matrix in the CANONICAL SPACE

  • transforms the values of the diagonal toeplitz values into its initial state by running an inverse Discrete FastFourier.
  • recover the canonical space which is the reverse procedure of building spectral space : calls recoverCanonicalSpace()

Implements MATH_MultiLevelsToeplitzMatrix.

References MATH_MultiLevelsToeplitzMatrix::getDFT(), MATH_MultiLevelsFFTToeplitzMatrix::recoverCanonicalSpace(), and FFTW_FFT::runFFT().

Referenced by MATH_MultiLevelsFFTToeplitzMatrix::buildSpectralVectorProjector().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ recoverCanonicalSpace()

void MATH_ElementaryMultiLevelsToeplitzMatrix::recoverCanonicalSpace ( )
protectedvirtual

◆ recoverFromSpectralSpace()

void MATH_ElementaryMultiLevelsToeplitzMatrix::recoverFromSpectralSpace ( const tUIndex N,
tReal X 
) const
protectedvirtual

recover Y from multi levels space to the initial space

Parameters
Nsize of X
Xthe output vector in the initial space

It restores X from the D spectral spaces (one per dimension of point) of size M

Implements MATH_MultiLevelsFFTToeplitzMatrix.

References FFTW_FFT::getArray(), MATH_MultiLevelsFFTToeplitzMatrix::getDFTProjector(), MATH_LeafBlockMatrixStorage::getDimension(), MATH_MultiLevelsFFTToeplitzMatrix::getRowLeadingDimensions(), MATH_MultiLevelsFFTToeplitzMatrix::getSpectralSpaceSize(), MATH_MultiLevelsToeplitzMatrix::getStorage(), FFTW_FFT::runFFT(), tFFTWComplex, tReal, and tUIndex.

Referenced by getMemorySize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ resetOut()

static void CORE_Object::resetOut ( )
inlinestaticinherited

reset the output stream

Referenced by run().

Here is the caller graph for this function:

◆ resetThread()

static void CORE_Object::resetThread ( )
inlinestaticinherited

reset the output stream

Referenced by run().

Here is the caller graph for this function:

◆ setDFT()

void MATH_MultiLevelsToeplitzMatrix::setDFT ( SP::FFTW_FFT  dft)
inlineprotectedinherited

◆ setIsMemoryChecked()

static void CORE_Object::setIsMemoryChecked ( const tBoolean v)
inlinestaticinherited

set if the memory checking is used

Parameters
v: true to check memory

Referenced by main().

Here is the caller graph for this function:

◆ setLeafBlockDimension()

virtual void MATH_MultiLevelsToeplitzMatrix::setLeafBlockDimension ( const tUIndex n)
inlinevirtualinherited

set the dimension of leaf block

Parameters
nnumber of rows or columns of the leaf square matrix

Referenced by MATH_MultiLevelsToeplitzMatrix::setLevels().

Here is the caller graph for this function:

◆ setLevels() [1/2]

virtual void MATH_MultiLevelsToeplitzMatrix::setLevels ( const tUSInt levelsNumber,
const tUIndex  levels[],
const tUIndex nD 
)
inlinevirtualinherited

set the levels of the matrix

Parameters
levelsNumberthe number of levels
levelslevels[k] is the number of Toeplitz matrices at each row which composed the level k in [0,levelsNumber[
nDdimension of the block matrix (1D,2D,3D,..nD)

The level 0 contains the leaf matrices

The level levelsNumber contains the last level.

References MATH_MultiLevelsToeplitzMatrix::setLeafBlockDimension(), tUIndex, and tUSInt.

Referenced by MATH_ToeplitzTest::emicrom411ncTest(), MATH_ToeplitzTest::emicrom411Test(), MATH_ToeplitzTest::emicrom441Test(), MATH_ToeplitzTest::emicrom444Test(), MATH_ToeplitzTest::emicromTest(), and MATH_ToeplitzTest::toeplitzTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setLevels() [2/2]

void MATH_MultiLevelsToeplitzMatrix::setLevels ( const tUSInt levelsNumber,
const tUIndex  levels[] 
)
inherited

set the levels of the matrix

Parameters
levelsNumberthe number of levels
levelslevels[k] is the number of Toeplitz matrices at each row which composed the level k in [0,levelsNumber[

The Level 0 contains the leaf matrices

The level levelsNumber contains the last level.

Builds the structure of the matrix

  • the number of toeplitz matrices at each level
  • the canonical space size
  • the dimension of the matrix (number of columns or rows)
  • initialize the space to CANONICAL_SPACE

References CORE_Out::ERROR_MSG, MATH_MultiLevelsToeplitzMatrix::getLeafBlockDimension(), MATH_MultiLevelsToeplitzMatrix::getLeafBlockSize(), CORE_Exception::getMessage(), MATH_MultiLevelsToeplitzMatrix::mCanonicalSpaceSize, MATH_MultiLevelsToeplitzMatrix::mDimension, MATH_MultiLevelsToeplitzMatrix::mFFT, MATH_MultiLevelsToeplitzMatrix::mLevels, CORE_Object::out(), CORE_Out::println(), CORE_Array< T >::setSize(), tUIndex, and tUSInt.

Here is the call graph for this function:

◆ setOut()

static void CORE_Object::setOut ( SP::CORE_Out  out)
inlinestaticinherited

set the output stream

Parameters
out: the shared pointer to the new output stream

References null.

◆ setSpace()

void MATH_MultiLevelsToeplitzMatrix::setSpace ( const tFlag space)
inlineprotectedinherited

set the space of the multi level block matrix

Parameters
spacethe space of the matrix:
  • CANONICAL_SPACE: the space of rows and column
  • SPECTRAL_SPACE: the spectral space i which the matrix is diagonalized

Referenced by MATH_MultiLevelsToeplitzMatrix::projection().

Here is the caller graph for this function:

◆ setSpectralSpaceSize()

void MATH_MultiLevelsFFTToeplitzMatrix::setSpectralSpaceSize ( const tUIndex n)
inlineprotectedinherited

set the spectral space size

Parameters
n: the spectral space size

Referenced by buildSpectralSpace(), and MATH_GlobalMultiLevelsPolynomialToeplitzMatrix::buildSpectralSpace().

Here is the caller graph for this function:

◆ setStorage() [1/2]

void MATH_ElementaryMultiLevelsToeplitzMatrix::setStorage ( const tString storage)
inline

set storage of the leaf block matrix.

Parameters
storage: "packed" : packed storage, "full" for full storage

References MATH_LeafBlockMatrixFullStorage::New(), MATH_LeafBlockMatrixPackedStorage::New(), and MATH_MultiLevelsToeplitzMatrix::setStorage().

Referenced by MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix::MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix(), and MATH_ToeplitzTest::toeplitzTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setStorage() [2/2]

void MATH_MultiLevelsToeplitzMatrix::setStorage ( SP::MATH_LeafBlockMatrixStorage  storage)
inlineprotectedinherited

set the storage of the matrix

Referenced by setStorage().

Here is the caller graph for this function:

◆ setThis()

void CORE_Object::setThis ( SP::CORE_Object  p)
inlineprotectedinherited

set this weak shared pointer called toDoAfterThis setting method

Parameters
p: shared pointer of the class This

References CORE_Object::toDoAfterThisSetting().

Here is the call graph for this function:

◆ setThread()

static void CORE_Object::setThread ( SP::CORE_Thread  thread)
inlinestaticinherited

set the thread

Parameters
threadthe shared pointer to the thread

References null.

Referenced by EMM_Run::EMM_Run(), EMM_TensorsRun::EMM_TensorsRun(), and MATH_SolverRun::MATH_SolverRun().

Here is the caller graph for this function:

◆ SP_OBJECT()

MATH_ElementaryMultiLevelsToeplitzMatrix::SP_OBJECT ( MATH_ElementaryMultiLevelsToeplitzMatrix  )
private

◆ toDoAfterThisSetting()

virtual void CORE_Object::toDoAfterThisSetting ( )
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().

Here is the caller graph for this function:

◆ toString()

tString MATH_MultiLevelsToeplitzMatrix::toString ( ) const
virtualinherited

◆ vectorProduct() [1/2]

void MATH_MultiLevelsFFTToeplitzMatrix::vectorProduct ( const tUIndex N,
const tReal X,
tReal Y 
) const
virtualinherited

do the vector product of the circular matrix C with Y by an FFT method

Parameters
Nthe siz eof X & Y
Xthe vector value
Ythe result

The Toeplitz matrix must be diagonalized before.

computes T.X=Y :

Implements MATH_MultiLevelsToeplitzMatrix.

References MATH_MultiLevelsToeplitzMatrix::getDFT(), MATH_MultiLevelsFFTToeplitzMatrix::getDFTProjector(), MATH_MultiLevelsToeplitzMatrix::getSpace(), MATH_MultiLevelsFFTToeplitzMatrix::projectIntoSpectralSpace(), MATH_MultiLevelsFFTToeplitzMatrix::recoverFromSpectralSpace(), MATH_MultiLevelsToeplitzMatrix::SPECTRAL_SPACE, and MATH_MultiLevelsFFTToeplitzMatrix::vectorProductInSpectralSpace().

Referenced by MATH_MultiLevelsFFTToeplitzMatrix::buildSpectralVectorProjector(), and MATH_ToeplitzTest::toeplitzTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vectorProduct() [2/2]

virtual void MATH_MultiLevelsFFTToeplitzMatrix::vectorProduct ( const CORE_RealArray X,
CORE_RealArray Y 
) const
inlinevirtualinherited

do the vector product of the circular matrix C with Y by an FFT method

Parameters
Xthe vector value
Ythe result

The Toeplitz matrix must be diagonalized before.

computes T.X=Y :

Reimplemented from MATH_MultiLevelsToeplitzMatrix.

References MATH_MultiLevelsFFTToeplitzMatrix::projectIntoSpectralSpace(), MATH_MultiLevelsFFTToeplitzMatrix::recoverFromSpectralSpace(), tReal, tUIndex, MATH_MultiLevelsToeplitzMatrix::vectorProduct(), and MATH_MultiLevelsFFTToeplitzMatrix::vectorProductInSpectralSpace().

Here is the call graph for this function:

◆ vectorProductInSpectralSpace()

void MATH_ElementaryMultiLevelsToeplitzMatrix::vectorProductInSpectralSpace ( const FFTW_FFT A,
FFTW_FFT Z 
) const
protectedvirtual

make the vector product in spectral space

Parameters
Athe diagonal values of the matrix in spectral space of size M x S where S is the size of each leaf block matrix and D the dimesnion of the leaf block matrix: $ S=D^2 $ of $ =D.(D+1)/2 $.
Z
  • in input : the values of the X vector projection into spectral space of size M x D
  • in output : the values of the result vector Z:=A*Z of size MxD

It does: $ \displaystyle \forall i _in [0,D[, Z_i := \sum_{j=0}^{j=D-1} A_{ij} * Z_j $ by using a temporary array

Implements MATH_MultiLevelsFFTToeplitzMatrix.

References FFTW_ComplexArray::copy(), FFTW_FFT::getArray(), FFTW_FFT::getDimension(), MATH_LeafBlockMatrixStorage::getIndex(), FFTW_FFT::getPointsNumber(), MATH_MultiLevelsToeplitzMatrix::getStorage(), FFTW_ComplexArray::initArray(), FFTW_ComplexArray::MatrixVectorProduct(), mWork, tFFTWComplex, and tUIndex.

Referenced by getMemorySize().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ CANONICAL_SPACE

const tFlag MATH_MultiLevelsToeplitzMatrix::CANONICAL_SPACE =0
staticinherited

◆ mWork

SP::FFTW_FFT MATH_ElementaryMultiLevelsToeplitzMatrix::mWork
mutableprivate

◆ SPECTRAL_SPACE

const tFlag MATH_MultiLevelsToeplitzMatrix::SPECTRAL_SPACE =1
staticinherited

The documentation for this class was generated from the following files: