00001 #ifndef __NEW_MAT_SQUARE_MATRIX_H__ 00002 #define __NEW_MAT_SQUARE_MATRIX_H__ 00003 00005 class SquareMatrix : public Matrix 00006 { 00007 GeneralMatrix* Image() const; // copy of matrix 00008 public: 00009 SquareMatrix() {} 00010 ~SquareMatrix() {} 00011 SquareMatrix(ArrayLengthSpecifier); // standard declaration 00012 SquareMatrix(const BaseMatrix&); // evaluate BaseMatrix 00013 void operator=(const BaseMatrix&); 00014 void operator=(Real f) { GeneralMatrix::operator=(f); } 00015 void operator=(const SquareMatrix& m) { Eq(m); } 00016 void operator=(const Matrix& m); 00017 MatrixType type() const; 00018 SquareMatrix(const SquareMatrix& gm) : Matrix() { GetMatrix(&gm); } 00019 SquareMatrix(const Matrix& gm); 00020 void resize(int); // change dimensions 00021 void ReSize(int m) { resize(m); } 00022 void resize_keep(int); 00023 void resize_keep(int,int); 00024 void resize(int,int); // change dimensions 00025 void ReSize(int m, int n) { resize(m, n); } 00026 void resize(const GeneralMatrix& A); 00027 void ReSize(const GeneralMatrix& A) { resize(A); } 00028 void operator+=(const Matrix& M) { PlusEqual(M); } 00029 void operator-=(const Matrix& M) { MinusEqual(M); } 00030 void operator+=(Real f) { GeneralMatrix::Add(f); } 00031 void operator-=(Real f) { GeneralMatrix::Add(-f); } 00032 void swap(SquareMatrix& gm) { GeneralMatrix::swap((GeneralMatrix&)gm); } 00033 NEW_DELETE(SquareMatrix) 00034 }; 00035 00036 #endif 00037