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