Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

function/basis.hh
Go to the documentation of this file.
00001 /* Basis for the functions
00002  */
00003 
00004 #ifndef fncbasis_hh
00005 #define fncbasis_hh
00006 
00007 #include "basics/outputOperator.hh"
00008 #include "space/space.hh"
00009 
00010 namespace concepts {
00011 
00012   // ************************************************************** Function **
00013 
00017   template<class F>
00018   class Function : public OutputOperator {
00019   public:
00021     template<class G>
00022     inline Function(const Space<G>& spc) : dim_(spc.dim()) {}
00023     inline Function(const uint dim) : dim_(dim) {}
00024 
00026     virtual Function<F>& operator=(const Function<F>& fnc) = 0;
00027 
00029     virtual F& operator()(uint i) = 0;
00031     virtual F operator()(uint i) const = 0;
00032 
00034     virtual Function<F>& operator+=(const Function<F>& fnc);
00036     virtual Function<F>& operator+=(F c);
00037 
00039     virtual Function<F>& operator-=(const Function<F>& fnc);
00041     virtual Function<F>& operator-=(F c);
00042 
00044     virtual Function<F>& operator*=(F a);
00045 
00047     virtual Function<F>& add(const Function<F>& fnc, F a);
00048 
00050     uint dim() const { return dim_; }
00051   protected:
00052     virtual std::ostream& info(std::ostream& os) const;
00054     const uint dim_;
00055   };
00056 
00057 } // namespace concepts
00058 
00059 #endif // fncbasis_hh

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)