00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #if !defined(LINOP_HPP)
00016 #define LINOP_HPP
00017
00018
00019 #include "gtypes.h"
00020 #include "gtvector.hpp"
00021
00022 class Elem2D;
00023
00024 class LinOp
00025 {
00026 public:
00027 LinOp();
00028 LinOp(LinOp *){};
00029 LinOp(Elem2D*){};
00030 virtual ~LinOp(){};
00031
00032 virtual GVector operator*(GVector){cout << "LinOp::*: illegal entry; check derived operator API"
00033 << endl; exit(1); GVector v; return v;}
00034
00035 virtual void OpVec_prod(GVector &x, GVector &ret)
00036 {cout << "LinOp::OpVec_prod: illegal entry; check derived operator API"
00037 << endl; exit(1); }
00038
00039 virtual void SetConst(GDOUBLE c)
00040 {cout << "LinOp::SetConst: illegal entry; check derived operator API"
00041 << endl; exit(1); }
00042 virtual void SetElem()
00043 {cout << "LinOp::SetElem: illegal entry; check derived operator API"
00044 << endl; exit(1); }
00045 virtual Elem2D *GetElem()
00046 {cout << "LinOp::GetElem: illegal entry; check derived operator API"
00047 << endl; exit(1); return NULL;}
00048 virtual GINT GetNumIntermedProd()
00049 {cout << "LinOp::GetIntermedProd: illegal entry; check derived operator API"
00050 << endl; exit(1); return 0; }
00051 virtual LinOp *GetIntermedOp()
00052 {cout << "LinOp::GetIntermedOp: illegal entry; check derived operator API"
00053 << endl; exit(1); return NULL; }
00054 virtual GVector *GetIntermedProd(GINT itag)
00055 {cout << "LinOp::GetIntermedProd: illegal entry; check derived operator API"
00056 << endl; exit(1); return NULL; }
00057 virtual void SetMask(GVector *m);
00058
00059
00060 protected:
00061 GVector *mask;
00062
00063 };
00064
00065 #endif