IT++ Logo

specmat.h

Go to the documentation of this file.
00001 
00030 #ifndef SPECMAT_H
00031 #define SPECMAT_H
00032 
00033 #include <itpp/base/vec.h>
00034 #include <itpp/base/mat.h>
00035 
00036 
00037 namespace itpp
00038 {
00039 
00044 ivec find(const bvec &invector);
00045 
00050 
00051 
00052 
00054 vec ones(int size);
00056 bvec ones_b(int size);
00058 ivec ones_i(int size);
00060 cvec ones_c(int size);
00061 
00063 mat ones(int rows, int cols);
00065 bmat ones_b(int rows, int cols);
00067 imat ones_i(int rows, int cols);
00069 cmat ones_c(int rows, int cols);
00070 
00072 vec zeros(int size);
00074 bvec zeros_b(int size);
00076 ivec zeros_i(int size);
00078 cvec zeros_c(int size);
00079 
00081 mat zeros(int rows, int cols);
00083 bmat zeros_b(int rows, int cols);
00085 imat zeros_i(int rows, int cols);
00087 cmat zeros_c(int rows, int cols);
00088 
00090 mat eye(int size);
00092 bmat eye_b(int size);
00094 imat eye_i(int size);
00096 cmat eye_c(int size);
00098 template <class T>
00099 void eye(int size, Mat<T> &m);
00100 
00102 vec impulse(int size);
00104 vec linspace(double from, double to, int length = 100);
00133 vec zigzag_space(double t0, double t1, int K = 5);
00134 
00141 imat hadamard(int size);
00142 
00159 imat jacobsthal(int p);
00160 
00174 imat conference(int n);
00175 
00197 cmat toeplitz(const cvec &c, const cvec &r);
00199 cmat toeplitz(const cvec &c);
00201 mat toeplitz(const vec &c, const vec &r);
00203 mat toeplitz(const vec &c);
00204 
00206 
00207 
00212 mat rotation_matrix(int dim, int plane1, int plane2, double angle);
00213 
00218 void house(const vec &x, vec &v, double &beta);
00219 
00224 void givens(double a, double b, double &c, double &s);
00225 
00230 void givens(double a, double b, mat &m);
00231 
00236 mat givens(double a, double b);
00237 
00242 void givens_t(double a, double b, mat &m);
00243 
00248 mat givens_t(double a, double b);
00249 
00254 template <class T>
00255 Vec<T> vec_1(T v0)
00256 {
00257   Vec<T> v(1);
00258   v(0) = v0;
00259   return v;
00260 }
00261 
00266 template <class T>
00267 Vec<T> vec_2(T v0, T v1)
00268 {
00269   Vec<T> v(2);
00270   v(0) = v0;
00271   v(1) = v1;
00272   return v;
00273 }
00274 
00279 template <class T>
00280 Vec<T> vec_3(T v0, T v1, T v2)
00281 {
00282   Vec<T> v(3);
00283   v(0) = v0;
00284   v(1) = v1;
00285   v(2) = v2;
00286   return v;
00287 }
00288 
00293 template <class T>
00294 Mat<T> mat_1x1(T m00)
00295 {
00296   Mat<T> m(1, 1);
00297   m(0, 0) = m00;
00298   return m;
00299 }
00300 
00305 template <class T>
00306 Mat<T> mat_1x2(T m00, T m01)
00307 {
00308   Mat<T> m(1, 2);
00309   m(0, 0) = m00;
00310   m(0, 1) = m01;
00311   return m;
00312 }
00313 
00318 template <class T>
00319 Mat<T> mat_2x1(T m00,
00320                T m10)
00321 {
00322   Mat<T> m(2, 1);
00323   m(0, 0) = m00;
00324   m(1, 0) = m10;
00325   return m;
00326 }
00327 
00332 template <class T>
00333 Mat<T> mat_2x2(T m00, T m01,
00334                T m10, T m11)
00335 {
00336   Mat<T> m(2, 2);
00337   m(0, 0) = m00;
00338   m(0, 1) = m01;
00339   m(1, 0) = m10;
00340   m(1, 1) = m11;
00341   return m;
00342 }
00343 
00348 template <class T>
00349 Mat<T> mat_1x3(T m00, T m01, T m02)
00350 {
00351   Mat<T> m(1, 3);
00352   m(0, 0) = m00;
00353   m(0, 1) = m01;
00354   m(0, 2) = m02;
00355   return m;
00356 }
00357 
00362 template <class T>
00363 Mat<T> mat_3x1(T m00,
00364                T m10,
00365                T m20)
00366 {
00367   Mat<T> m(3, 1);
00368   m(0, 0) = m00;
00369   m(1, 0) = m10;
00370   m(2, 0) = m20;
00371   return m;
00372 }
00373 
00378 template <class T>
00379 Mat<T> mat_2x3(T m00, T m01, T m02,
00380                T m10, T m11, T m12)
00381 {
00382   Mat<T> m(2, 3);
00383   m(0, 0) = m00;
00384   m(0, 1) = m01;
00385   m(0, 2) = m02;
00386   m(1, 0) = m10;
00387   m(1, 1) = m11;
00388   m(1, 2) = m12;
00389   return m;
00390 }
00391 
00396 template <class T>
00397 Mat<T> mat_3x2(T m00, T m01,
00398                T m10, T m11,
00399                T m20, T m21)
00400 {
00401   Mat<T> m(3, 2);
00402   m(0, 0) = m00;
00403   m(0, 1) = m01;
00404   m(1, 0) = m10;
00405   m(1, 1) = m11;
00406   m(2, 0) = m20;
00407   m(2, 1) = m21;
00408   return m;
00409 }
00410 
00415 template <class T>
00416 Mat<T> mat_3x3(T m00, T m01, T m02,
00417                T m10, T m11, T m12,
00418                T m20, T m21, T m22)
00419 {
00420   Mat<T> m(3, 3);
00421   m(0, 0) = m00;
00422   m(0, 1) = m01;
00423   m(0, 2) = m02;
00424   m(1, 0) = m10;
00425   m(1, 1) = m11;
00426   m(1, 2) = m12;
00427   m(2, 0) = m20;
00428   m(2, 1) = m21;
00429   m(2, 2) = m22;
00430   return m;
00431 }
00432 
00433 } //namespace itpp
00434 
00435 #endif // #ifndef SPECMAT_H
SourceForge Logo

Generated on Fri Jul 25 12:42:58 2008 for IT++ by Doxygen 1.5.4