Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

MatSchur_Type.h

Go to the documentation of this file.
00001 
00005 class MatSchurUDC(Type) : public HandleId
00006 
00007 {
00008 public:
00009 
00010   MatSchurUDC(Type) () {}
00011 
00012   virtual ~MatSchurUDC(Type) () {}
00013 
00014   virtual void prod
00015     (const Vector(Type)& xb,
00016            Vector(Type)& yb,
00017            TransposeMode tpmode = NOT_TRANSPOSED,
00018            bool          add_to_yb = false
00019     ) = 0; 
00020 };
00021 
00022 
00055 class MatSchur(Type) : public Matrix(Type)
00056 
00057 {
00058 protected:
00059 
00060   int mat_size;
00061   MatSchurUDC(Type) *udc;                    
00062 
00063 public:
00064 
00065   
00066   MatSchur(Type) ();
00067   MatSchur(Type) (int n);
00068   virtual ~MatSchur(Type) () {}
00069 
00070   virtual void attachUserCode  (MatSchurUDC(Type)& user_code);
00071 
00072   
00073   virtual int  getNoRows () const;
00074   virtual int  getNoColumns () const;
00075   virtual int  getNoNonzeroes () const;
00076   virtual void size (int& m, int& n) const;
00077   virtual real getStorage() const;
00078 
00079   
00080   virtual bool makeItSimilar (Handle(Matrix(Type))& M) const;
00081   virtual bool redim (const Matrix(prm_Type)& pm);
00082 
00083   
00084   virtual bool redim         (const VecSimple(int)& ivec,
00085                               const VecSimple(int)& jvec,
00086                               int new_nrows,
00087                               int new_ncolumns);
00088   virtual void getIndexSet   (VecSimple(int)& ivec,
00089                               VecSimple(int)& jvec) const;
00090   virtual bool validIndexSet (const VecSimple(int)& ivec,
00091                               const VecSimple(int)& jvec,
00092                               const int new_nrows,
00093                               const int new_ncolumns);
00094   
00095   virtual Type& elm (int i, int j);  
00096   virtual void fill (const Matrix(Type)& X);
00097   virtual void fill (Type a);
00098 
00099   
00100   virtual void add
00101     (Matrix(Type)& bm, Matrix(Type)& cm);
00102 
00103   virtual void add
00104     (Matrix(Type)& bm, char s, Matrix(Type)& cm);
00105 
00106   virtual void add
00107     (Matrix(Type)& bm, Type b, Matrix(Type)& cm);
00108 
00109   virtual void add
00110     (Type a, Matrix(Type)& bm, Type b, Matrix(Type)& cm);
00111 
00112 
00113   virtual void prod     
00114     (
00115      const Vector(Type)& xb,
00116            Vector(Type)& yb,
00117            TransposeMode tpmode = NOT_TRANSPOSED,
00118      bool                add_to_yb = false
00119     ) const;
00120 
00121   
00122   virtual bool factorize (const FactStrategy& fstrategy);
00123   virtual void forwBack  (Vector(Type)& bb, Vector(Type)& xb);
00124 
00125   
00126 
00127   virtual void SSOR1it     (Vector(Type)& xnew, const Vector(Type)& xold,
00128                             const Vector(Type)& b, real omega,
00129                             TransposeMode tpmode = NOT_TRANSPOSED) const;
00130   virtual void SSORsolve   (Vector(Type)& y, const Vector(Type)& c,
00131                             real omega,
00132                             TransposeMode tpmode = NOT_TRANSPOSED) const;
00133 
00134   virtual void SOR1it      (Vector(Type)& xnew, const Vector(Type)& xold,
00135                             const Vector(Type)& b, real omega,
00136                             TransposeMode tpmode = NOT_TRANSPOSED) const;
00137   virtual void SORsolve    (Vector(Type)& y, const Vector(Type)& c,
00138                             real omega,
00139                             TransposeMode tpmode = NOT_TRANSPOSED) const;
00140 
00141   virtual void Jacobi1it   (Vector(Type)& xnew, const Vector(Type)& xold,
00142                             const Vector(Type)& b,
00143                             TransposeMode tpmode = NOT_TRANSPOSED) const;
00144   virtual void Jacobisolve (Vector(Type)& y, const Vector(Type)& c,
00145                             TransposeMode tpmode = NOT_TRANSPOSED) const;
00146 
00147   
00148   virtual void print (Os os, const char* header = NULL,
00149                       int nentries_per_line = 3) const;
00150   virtual void printAscii (Os os, const char* header = NULL) const;
00151 
00152   virtual void scan  (Is is);
00153 
00154   CLASS_INFO
00155   VIRTUAL_CAST(MatSchur(Type));
00156 };
00157 
00158 

Copyright © 2003 inuTech GmbH. All rights reserved.