00001 00006 /* 00007 * Kurt Garloff <K.Garloff@Phys.TUE.NL>, 08/2000 00008 * $Id: precond.h,v 1.4.2.7 2006/08/14 18:43:05 garloff Exp $ 00009 */ 00010 00011 #ifndef TBCI_SOLVER_PRECOND_H 00012 #define TBCI_SOLVER_PRECOND_H 00013 00014 #include "../basics.h" 00015 #include "../vector.h" 00016 #include "../matrix_sig.h" 00017 #if !defined(NO_GD) && !defined(AUTO_DECL) 00018 # include "precond_gd.h" 00019 #endif 00020 00021 NAMESPACE_TBCI 00022 00023 template <typename T> class BdMatrix; 00024 00039 template <typename T, typename MatrixType = BdMatrix<T> > 00040 class Preconditioner_Sig 00041 { 00042 public: 00043 Preconditioner_Sig () {} 00044 /*virtual*/ Preconditioner_Sig (const MatrixType &)/* = 0*/; 00045 virtual ~Preconditioner_Sig () {} 00046 00047 // update-Funktion 00048 virtual void update (const MatrixType &) = 0; 00049 00050 // Solve-Funktionen 00051 virtual /*inline*/ TVector<T> solve (const Vector<T> &) const = 0; 00052 virtual /*inline*/ TVector<T> solve (TVector<T>) const = 0; 00053 00054 virtual /*inline*/ TVector<T> transSolve (const Vector<T> &) const = 0; 00055 virtual /*inline*/ TVector<T> transSolve ( TVector<T>) const = 0; 00056 }; 00057 00058 NAMESPACE_END 00059 00060 #endif /* TBCI_SOLVER_PRECOND_H */
1.5.6