00001 /* Preconditioner.h 00002 */ 00003 #ifndef _STAT_PRECONDITIONER_H 00004 #define _STAT_PRECONDITIONER_H 00005 00006 #include <cstddef> 00007 namespace osl 00008 { 00009 namespace stat 00010 { 00011 00012 class Preconditioner 00013 { 00014 public: 00015 // CREATORS 00016 Preconditioner(); 00017 virtual ~Preconditioner(); 00018 // MANIPULATORS 00019 // ACCESSORS 00020 virtual void solve(const double*x, double *out) const=0; 00021 }; 00022 00023 class IdentityPreconditioner : public Preconditioner 00024 { 00025 size_t m_dim; 00026 public: 00027 // CREATORS 00028 explicit IdentityPreconditioner(size_t dim); 00029 ~IdentityPreconditioner(); 00030 // MANIPULATORS 00031 // ACCESSORS 00032 void solve(const double*x, double *out) const; 00033 }; 00034 00035 } // namespace stat 00036 } // namespace osl 00037 00038 #endif /* _STAT_PRECONDITIONER_H */ 00039 // ;;; Local Variables: 00040 // ;;; mode:c++ 00041 // ;;; c-basic-offset:2 00042 // ;;; End: