C++ main module for emicrom Package  1.0
MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.h
Go to the documentation of this file.
1 #ifndef MATH_GlobalMultiLevelsPolynomialToeplitzMatrix_H
2 #define MATH_GlobalMultiLevelsPolynomialToeplitzMatrix_H
3 
5 
6 
7 
83 
86 
87 public:
88 
89 
90 
91 private:
92 
93 
94 
95 protected:
96 
97  // METHOD
98 
99  // CONSTRUCTORS
100 
104 
105 
106 
107  // DESTRUCTORS
108 
109 
113 
114 
115 public:
116  // NEW
120  inline static SP::MATH_GlobalMultiLevelsPolynomialToeplitzMatrix New() {
121  SP::MATH_GlobalMultiLevelsPolynomialToeplitzMatrix ret(new MATH_GlobalMultiLevelsPolynomialToeplitzMatrix(),
123  ret->setThis(ret);
124  return ret;
125  };
126 
130  virtual SP::MATH_MultiLevelsToeplitzMatrix NewInstance() const {
131  return New();
132  }
133 
134 
138  virtual void copy(const MATH_MultiLevelsToeplitzMatrix& mat) {
140  }
141 
142 
143  // SET methods
144 
145 public:
146 
147  // GET methods
148 
149 
150 
151 
152 
153 
154  // diagonalization methods
155  //=========================
156 protected:
160  virtual void buildSpectralVectorProjector(FFTW_FFT& proj) const {
162  }
167  virtual void buildSpectralSpace();
170  virtual void recoverCanonicalSpace();
171 
172 
177  virtual void buildColumnLeadingDimensions();
178 
183  virtual void buildRowLeadingDimensions();
184 
185  //product in spectral space methods
186  //==================================
187 protected:
194  virtual void vectorProductInSpectralSpace(const FFTW_FFT& A,FFTW_FFT& Z) const {
195  Z.multiply(A);
196  }
197 
202  virtual void projectIntoSpectralSpace(const tUIndex& N, const tReal* X) const;
203 
208  virtual void recoverFromSpectralSpace(const tUIndex& N,tReal* X) const;
209 
210 
211 };
212 #endif
This class is multi level toeplitz matrix whose product with vector is based on FFT; It delas with th...
Definition: MATH_MultiLevelsFFTToeplitzMatrix.h:24
virtual SP::MATH_MultiLevelsToeplitzMatrix NewInstance() const
new instance
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.h:130
virtual void buildRowLeadingDimensions()
build the row indices
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.cpp:50
This class manages the execution of Fast Fourier Transform. several fast Fourier Transforms may be ap...
Definition: FFTW_FFT.h:28
This class is multi levels toeplitz matrix. The matrix at level k is composed by toeplitz block matr...
Definition: MATH_MultiLevelsToeplitzMatrix.h:57
virtual void buildColumnLeadingDimensions()
build the column leading dimensions
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.cpp:17
SP_OBJECT(MATH_GlobalMultiLevelsPolynomialToeplitzMatrix)
MATH_GlobalMultiLevelsPolynomialToeplitzMatrix(void)
create a multi level toeplitz matrix
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.cpp:4
virtual void copy(const MATH_MultiLevelsToeplitzMatrix &mat)
copy the instance
Definition: MATH_MultiLevelsToeplitzMatrix.cpp:29
virtual ~MATH_GlobalMultiLevelsPolynomialToeplitzMatrix(void)
destroy a multi level toeplitz matrix
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.cpp:12
This class is a multi level toeplitz matrix whose leaf block are dense matrix of dimension D and with...
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.h:84
virtual void copy(const MATH_MultiLevelsToeplitzMatrix &mat)
copy the instance mat
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.h:138
#define tUIndex
Definition: types.h:126
virtual void multiply(const FFTW_FFT &Y)
multiply this by the DFTs Y
Definition: FFTW_FFT.h:280
virtual void buildSpectralVectorProjector(FFTW_FFT &proj) const
build the projector of vector in spectral spce
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.h:160
virtual void vectorProductInSpectralSpace(const FFTW_FFT &A, FFTW_FFT &Z) const
make the vector product in spectral space
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.h:194
virtual void recoverCanonicalSpace()
recover the canonical space from the spectral space
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.cpp:130
virtual void buildSpectralVectorProjector(FFTW_FFT &proj) const
build the projector of vector in spectral space
Definition: MATH_MultiLevelsFFTToeplitzMatrix.h:194
#define tReal
Definition: types.h:118
static SP::MATH_GlobalMultiLevelsPolynomialToeplitzMatrix New()
build a new instance of class
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.h:120
virtual void buildSpectralSpace()
build the spectral space
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.cpp:83
virtual void recoverFromSpectralSpace(const tUIndex &N, tReal *X) const
recover from multi levels space to the initial space
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.cpp:189
virtual void projectIntoSpectralSpace(const tUIndex &N, const tReal *X) const
project the vector X from initial space to multi levels space
Definition: MATH_GlobalMultiLevelsPolynomialToeplitzMatrix.cpp:144
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141
DEFINE_SPTR(MATH_GlobalMultiLevelsPolynomialToeplitzMatrix)