www.pudn.com > AdaBoost_weaklearner_1.rar > matrix.h
#ifndef __MATRIX_H__ #define __MATRIX_H__ #includetypedef double T; class Matrix { //private: T** element; int rows; int cols; void alloc(void); void release(void); void toZero(void); void toOne(void); void toUnit(void); // set to identity matrix void toUpper(void); T cofact(int r, int c) const; Matrix& swapRow(int r1, int r2, int c); Matrix& operator += (const Matrix& m); Matrix& operator -= (const Matrix& m); Matrix& operator *= (const T& c); void reptError (char* errorMsg) const; public: Matrix() { rows=cols=0; } Matrix(int r, int c); Matrix(const Matrix& m); // copy constructor ~Matrix(); int row(void) const { return rows; } int col(void) const { return cols; } void print (void) const; void minor(int r, int c, Matrix& m) const; bool isNull(void); bool isSquare(void) const { return (rows==cols) ? true:false; } Matrix operator + (const Matrix& m) const; Matrix operator - (const Matrix& m) const; Matrix operator * (const T& c) const; Matrix operator > (const T& c) const; Matrix& operator>= (const T& c); Matrix operator * (const Matrix& m) const; Matrix operator / (const Matrix& m) const; Matrix& operator = (const Matrix& m); T operator () (int i, int j) const; // get element[i][j] bool operator == (const Matrix& m) const; bool operator != (const Matrix& m); T det (void) const; // find determinant void set (int i, int j, T val); // set element[i][j] void ones(int i, int j, T val, int scaler); void zeros(int i, int j); void partOfMatrix(int r, int c, Matrix& m) const; void partOfMatrixFromEnd(int r_train, int step,int c,Matrix& m) const; void partOfMatrixNext(int r, int c, int step, Matrix& m) const; void specificPartOfMatrix(Matrix& m,int r, int c); void ScalarMinusMatrix(double k, Matrix& m) const; void matrixAbs(Matrix& m) const; void matrixExp(Matrix& m) const; void matrixLog(Matrix& m) const; void setValue (int tt, T val); void matrixTranspose (int r, int c, const Matrix& m) const; void MatrixMultiMatrix (const Matrix& m,const Matrix& n) const; //void matrixMinusMatrix (Matrix& n, Matrix& m); void matrixMinusMatrix (const Matrix& m, const Matrix& n) const; void matrixMinusSclar (double scalar, Matrix& m); void MatrixMultiScalar (double scalar, Matrix& m); void matrixdDivisonScalar(double scalar, const Matrix& m) const; void scalarDivisonScalar(double scalar_1, double scalar_2, const Matrix& m) const; void copyToMatrix(int tt, Matrix& m) const; void copyMatrixToMatrix (Matrix& m); int matrixMax(double *val, int *index, Matrix& m) const; void matrixToArray(double array[10], Matrix& m) const; void matrixToArrayold(double array[10], Matrix& m) const; int getValue (int j,double *val, Matrix& m) const; int getValueSpecific(int i, int j,double *val, Matrix& m) const; int matrixSumCol(double *sum, Matrix& m) const; int matrixSumRow(double *sum, Matrix& m) const; int matrixCompareAndSet(int *i_index,int c_train, Matrix& m) const; int matrixCompareAndSetfor_t(int k, int *t_index, int c_train, Matrix& m) const; void ScalarMultiMatrix (double scalar, Matrix& m); void matrixSize(int *i, int *j, Matrix& m) const; //void MultiMatrix(int r, int c, const Matrix& m) const; Matrix transpose (void) const; //Matrix copy (Matrix& m) const; void copy (int tt, Matrix& m) const; void adjoin(Matrix& m) const; Matrix inverse (void) const; void readFile(char* file_name); void writeFile(char* file_name); // friend function for the List class // friend istream& operator>> ( istream& is, Matrix& m ); friend ostream& operator<< ( ostream& os, const Matrix& m ); }; #endif // __MATRIX_H__ //