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

vectorial/blockOperator.hh
Go to the documentation of this file.
00001 #ifndef blockOperator_hh
00002 #define blockOperator_hh
00003 
00004 #include <string>
00005 #include <memory>
00006 #include "basics/typedefs.hh"
00007 #include "operator/compositions.hh"
00008 #include "vectorial/vectorial.hh"
00009 
00010 namespace vectorial {
00011 
00012   // ********************************************************* BlockOperator **
00013 
00023   template<class F>
00024   class BlockOperator : public concepts::Operator<F> {
00025   public:
00032     BlockOperator(concepts::Operator<F>* A = 0,
00033                   concepts::Operator<F>* B = 0,
00034                   concepts::Operator<F>* C = 0,
00035                   concepts::Operator<F>* D = 0);
00045     BlockOperator(uint dimX, uint dimY,
00046                   concepts::Operator<F>* A = 0,
00047                   concepts::Operator<F>* B = 0,
00048                   concepts::Operator<F>* C = 0,
00049                   concepts::Operator<F>* D = 0);
00050 
00052     virtual void operator()(const concepts::Function<F>& fncY,
00053                             concepts::Function<F>& fncX);
00055     void operator()(const concepts::Vector<F>& fncY,
00056                     concepts::Vector<F>& fncX);
00057   protected:
00058     virtual std::ostream& info(std::ostream& os) const;
00059   private:
00061     uint bdimX_[2], bdimY_[2];
00063     concepts::Operator<F>* A_;
00065     concepts::Operator<F>* B_;
00067     concepts::Operator<F>* C_;
00069     concepts::Operator<F>* D_;
00070   };
00071 
00072 } // namespace vectorial
00073 
00074 #endif // blockOperator_hh

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