Go to the documentation of this file.00001 #ifndef __NEW_MAT_NRIC_MATRIX_H__
00002 #define __NEW_MAT_NRIC_MATRIX_H__
00003
00005 class nricMatrix : public Matrix
00006 {
00007 GeneralMatrix* Image() const;
00008 Real** row_pointer;
00009 void MakeRowPointer();
00010 void DeleteRowPointer();
00011 public:
00012 nricMatrix() {}
00013 nricMatrix(int m, int n)
00014 : Matrix(m,n) { MakeRowPointer(); }
00015 nricMatrix(const BaseMatrix& bm)
00016 : Matrix(bm) { MakeRowPointer(); }
00017 void operator=(const BaseMatrix& bm)
00018 { DeleteRowPointer(); Matrix::operator=(bm); MakeRowPointer(); }
00019 void operator=(Real f) { GeneralMatrix::operator=(f); }
00020 void operator=(const nricMatrix& m)
00021 { DeleteRowPointer(); Eq(m); MakeRowPointer(); }
00022 void operator<<(const BaseMatrix& X)
00023 { DeleteRowPointer(); Eq(X,this->type(),true); MakeRowPointer(); }
00024 nricMatrix(const nricMatrix& gm) : Matrix()
00025 { GetMatrix(&gm); MakeRowPointer(); }
00026 void resize(int m, int n)
00027 { DeleteRowPointer(); Matrix::resize(m,n); MakeRowPointer(); }
00028 void resize_keep(int m, int n)
00029 { DeleteRowPointer(); Matrix::resize_keep(m,n); MakeRowPointer(); }
00030 void ReSize(int m, int n)
00031 { DeleteRowPointer(); Matrix::resize(m,n); MakeRowPointer(); }
00032 void resize(const GeneralMatrix& A);
00033 void ReSize(const GeneralMatrix& A) { resize(A); }
00034 ~nricMatrix() { DeleteRowPointer(); }
00035 Real** nric() const { CheckStore(); return row_pointer-1; }
00036 void cleanup();
00037 void MiniCleanUp();
00038 void operator+=(const Matrix& M) { PlusEqual(M); }
00039 void operator-=(const Matrix& M) { MinusEqual(M); }
00040 void operator+=(Real f) { GeneralMatrix::Add(f); }
00041 void operator-=(Real f) { GeneralMatrix::Add(-f); }
00042 void swap(nricMatrix& gm);
00043 NEW_DELETE(nricMatrix)
00044 };
00045
00046 #endif
00047