SubMatrix.h
Go to the documentation of this file.
00001 #ifndef __NEW_MAT_SUB_MATRIX_H__
00002 #define __NEW_MAT_SUB_MATRIX_H__
00003 
00004 // ************************** submatrices ******************************/
00005 
00008 class GetSubMatrix : public NegatedMatrix
00009 {
00010    int row_skip;
00011    int row_number;
00012    int col_skip;
00013    int col_number;
00014    bool IsSym;
00015 
00016    GetSubMatrix
00017       (const BaseMatrix* bmx, int rs, int rn, int cs, int cn, bool is)
00018       : NegatedMatrix(bmx),
00019       row_skip(rs), row_number(rn), col_skip(cs), col_number(cn), IsSym(is) {}
00020    void SetUpLHS();
00021    friend class BaseMatrix;
00022 public:
00023    GetSubMatrix() : row_skip(0), row_number(0), col_skip(0), col_number(0) {}
00024    GetSubMatrix(const GetSubMatrix& g)
00025       : NegatedMatrix(g.bm), row_skip(g.row_skip), row_number(g.row_number),
00026       col_skip(g.col_skip), col_number(g.col_number), IsSym(g.IsSym) {}
00027    ~GetSubMatrix() {}
00028    GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp);
00029    void operator=(const BaseMatrix&);
00030    void operator+=(const BaseMatrix&);
00031    void operator-=(const BaseMatrix&);
00032    void operator=(const GetSubMatrix& m) { operator=((const BaseMatrix&)m); }
00033    void operator<<(const BaseMatrix&);
00034    void operator<<(const double*);                // copy from array
00035    void operator<<(const float*);                // copy from array
00036    void operator<<(const int*);                 // copy from array
00037    MatrixInput operator<<(double);                // for loading a list
00038    MatrixInput operator<<(float);                // for loading a list
00039    MatrixInput operator<<(int f);
00040    void operator=(Real);                        // copy from constant
00041    void operator+=(Real);                       // add constant
00042    void operator-=(Real r) { operator+=(-r); }  // subtract constant
00043    void operator*=(Real);                       // multiply by constant
00044    void operator/=(Real r) { operator*=(1.0/r); } // divide by constant
00045    void inject(const GeneralMatrix&);           // copy stored els only
00046    void Inject(const GeneralMatrix& GM) { inject(GM); }
00047    MatrixBandWidth bandwidth() const;
00048    NEW_DELETE(GetSubMatrix)
00049 };
00050 
00051 #endif
00052 


lo
Author(s): U. Klank
autogenerated on Mon Oct 6 2014 10:44:15