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

cluster/xy.hh
Go to the documentation of this file.
00001 /* Far field matrices X, Y
00002  */
00003 
00004 #ifndef clusterXY_hh
00005 #define clusterXY_hh
00006 
00007 #include "basics/outputOperator.hh"
00008 #include "function/vector.hh"
00009 #include "cluster/tree.hh"
00010 
00011 namespace cluster {
00012 
00013   // ******************************************************************** XY **
00014 
00018   template<class Node>
00019   class ClstXY : public concepts::OutputOperator {
00020   public:
00022     typedef TreeTraits<Node>   Traits;
00023     typedef typename Traits::F F;
00024 
00025     virtual ~ClstXY() {}
00026 
00030     virtual F* operator[](uint i) const = 0;
00032     virtual const Tree<Node>& tree() const = 0;
00034     virtual const concepts::Space<F>& space() const = 0;
00036     virtual void zero() = 0;
00037   };
00038 
00039   // ********************************************************************* X **
00040 
00044   template<class Node>
00045   class ClstX : public ClstXY<Node> {
00046   public:
00047     typedef typename ClstXY<Node>::F F;
00048 
00049     virtual void gather(concepts::Vector<F>& fnc) = 0;
00050   };
00051 
00052   // ********************************************************************* Y **
00053 
00057   template<class Node>
00058   class ClstY : public ClstXY<Node> {
00059   public:
00060     typedef typename ClstXY<Node>::F F;
00061 
00062     virtual void scatter(const concepts::Vector<F>& fnc) = 0;
00063   };
00064 
00065 }
00066 
00067 #endif // clusterXY_hh
00068 
00069 

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