C++ main module for emicrom Package  1.0
MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix.h
Go to the documentation of this file.
1 #ifndef MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix_H
2 #define MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix_H
3 
5 
50 
53 
54 public:
55 
56 
57 
58 private:
59 
60 
61 
62 
63 protected:
64 
65  // METHOD
66 
67  // CONSTRUCTORS
68 
72 
73 
74 
75  // DESTRUCTORS
76 
77 
81 
82 
83 public:
84  // NEW
88  inline static SP::MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix New() {
89  SP::MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix ret(new MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix(),
91  ret->setThis(ret);
92  return ret;
93  };
97  virtual SP::MATH_MultiLevelsToeplitzMatrix NewInstance() const {
98  return New();
99  }
100 
104  virtual void copy(const MATH_MultiLevelsToeplitzMatrix& mat);
105 
106 
107  // SET methods
108 
109 
110 public:
111 
112 
113  // GET methods
114 
115  // diagonalization methods
116  //=========================
117 protected:
118 
125  const tUSInt& d,
126  CORE_UIndexArray& Ms) const {
127  tUIndex n=s/d;
128  tUIndex M=(tUIndex) pow(2.,(tUIndex) (log(n)/log(2)) );
129  if (M<n) M*=2;
130  Ms.setSize(1);
131  Ms[0]=M;
132  return M;
133 
134  }
135 
136 
137 
138 public:
139 
140 
141 
142 
143 
144 
145 };
146 #endif
This class is multi levels toeplitz matrix. The matrix at level k is composed by toeplitz block matr...
Definition: MATH_MultiLevelsToeplitzMatrix.h:57
#define tUSInt
Definition: types.h:28
void setSize(const tUIndex &n)
set the size
Definition: CORE_Array.h:292
This class is a multi level toeplitz matrix whose leaf block are packed or full matrix of dimension D...
Definition: MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix.h:51
This class is a multi level toeplitz matrix whose leaf block are packed/full matrix of dimension D an...
Definition: MATH_ElementaryMultiLevelsToeplitzMatrix.h:31
DEFINE_SPTR(MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix)
SP_OBJECT(MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix)
#define tUIndex
Definition: types.h:126
virtual ~MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix(void)
destroy a multi level toeplitz matrix
Definition: MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix.cpp:11
virtual tUIndex computeSpectralSpaceSizePerDimension(const tUIndex &s, const tUSInt &d, CORE_UIndexArray &Ms) const
compute the size of spectral space for each dimension
Definition: MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix.h:124
virtual SP::MATH_MultiLevelsToeplitzMatrix NewInstance() const
new instance
Definition: MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix.h:97
static SP::MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix New()
build a new instance of class
Definition: MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix.h:88
virtual void copy(const MATH_MultiLevelsToeplitzMatrix &mat)
copy the matrix mat
Definition: MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix.cpp:14
MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix(void)
create a multi level toeplitz matrix
Definition: MATH_ElementaryMultiLevelsPolynomialToeplitzMatrix.cpp:6
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141