C++ main module for emicrom Package  1.0
MATH_ElementaryMultiLevelsCircularToeplitzMatrix.h
Go to the documentation of this file.
1 #ifndef MATH_ElementaryMultiLevelsCircularToeplitzMatrix_H
2 #define MATH_ElementaryMultiLevelsCircularToeplitzMatrix_H
3 
5 
6 
74 
77 
78 public:
79 
80 
81 
82 private:
83 
84 
85 
86 
87 protected:
88 
89  // METHOD
90 
91  // CONSTRUCTORS
92 
96 
97 
98 
99  // DESTRUCTORS
100 
101 
105 
106 
107 public:
108  // NEW
112  inline static SP::MATH_ElementaryMultiLevelsCircularToeplitzMatrix New() {
113  SP::MATH_ElementaryMultiLevelsCircularToeplitzMatrix ret(new MATH_ElementaryMultiLevelsCircularToeplitzMatrix(),
115  ret->setThis(ret);
116  return ret;
117  };
118 
122  virtual SP::MATH_MultiLevelsToeplitzMatrix NewInstance() const {
123  return New();
124  }
125 
129  virtual void copy(const MATH_MultiLevelsToeplitzMatrix& mat) {
131 
132  }
133 
134 
135  // SET methods
136 
137 
138 
139  // diagonalization methods
140  //=========================
141 protected:
148  const tUSInt& d,
149  CORE_UIndexArray& Ms) const {
150  tUIndex n=s/d;
151  tUIndex M=(tUIndex) pow(2.,(tUIndex) (log(n)/log(2)) );
152  if (M<n) M*=2;
153  Ms.setSize(1);
154  Ms[0]=M;
155  return M;
156 
157  }
158 
159 
164  virtual void buildSpectralSpace();
165 
168  virtual void recoverCanonicalSpace();
169 
177  }
178 
182  virtual void buildRowLeadingDimensions() {
185  }
186 
187 };
188 #endif
static SP::MATH_ElementaryMultiLevelsCircularToeplitzMatrix New()
build a new instance of class
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.h:112
virtual ~MATH_ElementaryMultiLevelsCircularToeplitzMatrix(void)
destroy a multi level toeplitz matrix
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.cpp:10
virtual tUIndex computeSpectralSpaceSizePerDimension(const tUIndex &s, const tUSInt &d, CORE_UIndexArray &Ms) const
compute the size of spectral space for each dimension
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.h:147
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 buildRowLeadingDimensions()
build the row indices
Definition: MATH_ElementaryMultiLevelsToeplitzMatrix.cpp:343
#define tUSInt
Definition: types.h:28
virtual void buildRowLeadingDimensions()
build the row leading dimensions register the index in CANONICAL space of the values corresponding to...
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.h:182
void setSize(const tUIndex &n)
set the size
Definition: CORE_Array.h:292
This class is a multi level toeplitz matrix based on circular matrix whose leaf block are packed or f...
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.h:75
virtual void buildSpectralSpace()
build the spectral space
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.cpp:13
virtual SP::MATH_MultiLevelsToeplitzMatrix NewInstance() const
new instance
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.h:122
virtual void buildColumnLeadingDimensions()
build the column leading dimensions
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.h:174
This class is a multi level toeplitz matrix whose leaf block are packed/full matrix of dimension D an...
Definition: MATH_ElementaryMultiLevelsToeplitzMatrix.h:31
const CORE_UIndexArray & getRowLeadingDimensions() const
get the index of the row i and column 0 from the spectral space
Definition: MATH_MultiLevelsFFTToeplitzMatrix.h:165
virtual void recoverCanonicalSpace()
recover the canonical space from the spectral space
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.cpp:111
const CORE_UIndexArray & getColumnLeadingDimensions() const
get the leading dimension of columns from the spectral space
Definition: MATH_MultiLevelsFFTToeplitzMatrix.h:147
SP_OBJECT(MATH_ElementaryMultiLevelsCircularToeplitzMatrix)
#define tUIndex
Definition: types.h:126
virtual void copy(const MATH_MultiLevelsToeplitzMatrix &mat)
copy the matrix mat
Definition: MATH_ElementaryMultiLevelsToeplitzMatrix.h:69
virtual void buildColumnLeadingDimensions()
build the column leading dimensions
Definition: MATH_ElementaryMultiLevelsToeplitzMatrix.cpp:304
MATH_ElementaryMultiLevelsCircularToeplitzMatrix(void)
create a multi level toeplitz matrix
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.cpp:4
virtual void copy(const MATH_MultiLevelsToeplitzMatrix &mat)
copy the instance mat
Definition: MATH_ElementaryMultiLevelsCircularToeplitzMatrix.h:129
DEFINE_SPTR(MATH_ElementaryMultiLevelsCircularToeplitzMatrix)
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141