Actual source code: taomat.h
1: #ifndef TAOMATRIX_H
2: #define TAOMATRIX_H
4: #include "tao_basictypes.h"
6: class TaoIndexSet;
7: class TaoVec;
9: class TaoMat {
11: protected:
13: public:
15: virtual ~TaoMat() { };
17: virtual int Compatible(TaoVec *, TaoVec *, TaoTruth *);
19: /** Get the dimension of the vector spaces */
20: virtual int GetDimensions(int *, int *);
22: virtual int Multiply(TaoVec *, TaoVec *);
23: virtual int MultiplyTranspose(TaoVec *, TaoVec *);
25: virtual int SetDiagonal(TaoVec *);
26: virtual int AddDiagonal(TaoVec *);
27: virtual int GetDiagonal(TaoVec *);
28: virtual int ShiftDiagonal(double);
30: virtual int RowScale(TaoVec *);
31: virtual int ColScale(TaoVec *);
33: virtual int Norm1(double *);
35: virtual int D_Fischer(TaoVec *, TaoVec *, TaoVec *, TaoVec *,
36: TaoVec *, TaoVec *, TaoVec *, TaoVec *);
37: virtual int D_SFischer(TaoVec *, TaoVec *, TaoVec *, TaoVec *, double,
38: TaoVec *, TaoVec *, TaoVec *, TaoVec *, TaoVec *);
40: virtual int CreateReducedMatrix(TaoIndexSet*,TaoIndexSet*,TaoMat**);
41: virtual int SetReducedMatrix(TaoMat*,TaoIndexSet*,TaoIndexSet*);
43: virtual int View();
45: /* These two routines are not needed. A linear solver may be used instead */
46: virtual int Presolve();
47: virtual int Solve(TaoVec *, TaoVec *, TaoTruth *);
48: };
50: #endif