Matrix Library
1、简介
一个矩阵计算的库,有了它,你可以很简单地进行矩阵的计算,目前还有一些不完善的地方,还在继续开发。
采用范型设计,可以对多种数据类型支持
对常用相关运算符进行重载
2、类声明文件
template
// Constructors 构造函数 Mat (size_t nRow, size_t nCol);
Mat (size_t nRow, size_t nCol, const T& t );
Mat (size_t nRow, size_t nCol, const T* Array);
~Mat ();
// Copy constructors 复制函数
Mat (const Mat
void clone ();
// Assignment operators Mat
//size 大小 size_t size () { return this->nRow * this->nCol; }
size_t typesize () { return sizeof(T);
} size_t colsize () { return this->nRow;
} // No. of elements in a column, i.e., it's row number
size_t rowsize () { return this->nCol; }
// No. of elements in a row, i.e., it's column number
size_t rowno () { return this->nRow; }
// No. of rows size_t colno () { return this->nCol; }
// No. of columns
void resize (size_t nRow, size_t nCol, const T& dval = T(0));
void free ();
const T& operator() (size_t i, size_t j) const;
// Unary operators 单目运算符
Mat
Mat
Mat
Mat
// Computed assignment赋值计算
Mat
Mat
Mat
Mat
Mat
Mat
// Miscellaneous methods void null ();
void unit (); void rand (int rmin=-1, int rmax=1, int rseed=0);
T sum (); T min ();
T max ();
bool lud (valarray
void lubksb (const valarray
void lumpove (const Mat
bool solve_lu (const valarray
bool svd (Mat
void svbksb (const Mat
const valarray
bool solve_sv (const valarray
void qrd (Mat
void qrbksb (const Mat
bool solve_qr (const valarray
bool chold (); void cholbksb (const valarray
bool solve_chol (const valarray
bool eigen (valarray
bool eigen (valarray
bool eigen (valarray
bool eigen (valarray
// Inversion TODO bool inv ();
bool inv_lu ();
bool inv_sv ();
bool inv_qr ();
// Utility methods
bool solve (const valarray
bool solve (const Mat
Mat
T cofact (size_t row, size_t col) const;
T det () const; T cond () const;
size_t rank () const; T norm1 () const;
T norm2 () const;
T normI () const;
T normF () const;
//display void show();
int nRow;
int nCol; T* data; private:};3、重载运算符
/////////////// Non-member binary operators//template
const Mat
template