You are here:
Concepts
>
Concepts Web
>
Class documentation
Class documentation of Concepts
Loading...
Searching...
No Matches
cluster
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
11
namespace
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
:
47
typedef
TreeTraits01<CNode>
Traits
;
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
cluster::BBall
Definition
tree.hh:36
cluster::Tree01
Definition
tree01.hh:44
cluster::Tree01::nleaf
uint nleaf() const
Number of leafs.
Definition
tree01.hh:62
cluster::Tree01::Traits
TreeTraits01< CNode > Traits
Interface of the tree.
Definition
tree01.hh:47
cluster::Tree01::nclst
uint nclst() const
Number of clusters.
Definition
tree01.hh:60
cluster::Tree01::root
const CNode * root() const
Root node of the tree.
Definition
tree01.hh:64
cluster::Tree01::sketch
void sketch(std::ostream &os, const CNode *lnk=0, uint l=0)
cluster::Tree01::Tree01
Tree01(const concepts::Space< F > &spc, const BBall< F > &ball, uint nlfmin=1)
cluster::TreeTraits01
Definition
tree01.hh:20
cluster::TreeTraits
Definition
tree.hh:252
cluster::TreeTraits::F
Node::CF F
Field of the node (Real or Cmplx)
Definition
tree.hh:255
cluster::Tree
Definition
tree.hh:285
concepts::Element
Definition
element.hh:52
concepts::Point< Real, 3 >
concepts::Space
Definition
space.hh:44
tree.hh
cluster
Definition
cluster.hh:33
concepts::Real
double Real
Definition
typedefs.hh:39
Generated on Wed Sep 13 2023 21:06:18 for Concepts by
1.9.8