00001 #ifndef MLAPI_PRECONDITIONER_H 00002 #define MLAPI_PRECONDITIONER_H 00003 00013 /* ******************************************************************** */ 00014 /* See the file COPYRIGHT for a complete copyright notice, contact */ 00015 /* person and disclaimer. */ 00016 /* ******************************************************************** */ 00017 00018 #include "MLAPI_BaseObject.h" 00019 00020 namespace MLAPI { 00021 00022 class MultiVector; 00023 class Space; 00024 00036 class BaseOperator : public BaseObject { 00037 00038 public: 00039 00041 virtual ~BaseOperator() {} 00042 00044 virtual int Apply(const MultiVector& LHS, MultiVector& RHS) const = 0; 00045 00047 virtual const Space GetOperatorDomainSpace() const = 0; 00048 00050 virtual const Space GetOperatorRangeSpace() const = 0; 00051 00052 }; 00053 } // namespace MLAPI 00054 00055 #endif