Class documentation of Concepts

Loading...
Searching...
No Matches
tree01.hh
Go to the documentation of this file.
1
6#ifndef clusterTree01_hh
7#define clusterTree01_hh
8
9#include "cluster/tree.hh"
10
11namespace cluster {
12
13 // ********************************************************** TreeTraits01 **
14
19 template<class Node>
20 class TreeTraits01 : public TreeTraits<Node> {
21 public:
22 typedef typename TreeTraits<Node>::F F;
23
24 static Node* newNode(const concepts::Element<F>& elm, const BBall<F>& ball,
25 Node* lnk) {return new Node(elm, ball, lnk);}
26 static Node* newNode(uint idx, Node& chld, const concepts::Real3d& c,
27 concepts::Real r, uint nlf = 0) {
28 return new Node(idx, chld, c, r, nlf);
29 }
30
31 static Node* child(const Node* nd) {return nd->child();}
32 static Node* link(const Node* nd) {return nd->link();}
33 static Node*& link(Node* nd) {return nd->link();}
34 };
35
36 // **************************************************************** Tree01 **
37
43 template<class CNode>
44 class Tree01 : public Tree<CNode> {
45 public:
48 typedef typename Traits::F F;
49
55 Tree01(const concepts::Space<F>& spc, const BBall<F>& ball,
56 uint nlfmin = 1);
57 inline ~Tree01() {destructor_(root_); delete root_;}
58
60 inline uint nclst() const {return nclst_;}
62 inline uint nleaf() const {return nlf_;}
64 inline const CNode* root() const {return root_;}
65
71 void sketch(std::ostream& os, const CNode* lnk = 0, uint l = 0);
72
73 private:
75 uint nlfmin_;
77 uint nlf_;
79 uint nclst_;
81 CNode* root_;
82
84 CNode* constructor_(CNode* lfset);
86 void destructor_(CNode* clst);
88 CNode* concat_(CNode* a, CNode* b);
89 };
90
91} // namespace cluster
92
93#endif // clusterTree01_hh
uint nleaf() const
Number of leafs.
Definition tree01.hh:62
TreeTraits01< CNode > Traits
Interface of the tree.
Definition tree01.hh:47
uint nclst() const
Number of clusters.
Definition tree01.hh:60
const CNode * root() const
Root node of the tree.
Definition tree01.hh:64
void sketch(std::ostream &os, const CNode *lnk=0, uint l=0)
Tree01(const concepts::Space< F > &spc, const BBall< F > &ball, uint nlfmin=1)
Node::CF F
Field of the node (Real or Cmplx)
Definition tree.hh:255
double Real
Definition typedefs.hh:39