Go to the documentation of this file.
6 #ifndef clusterTree03_hh
7 #define clusterTree03_hh
26 Node* lnk) {
return new Node(elm, ball, lnk);}
29 return new Node(idx, chld, c, r, nlf);
32 static Node*
child(
const Node* nd) {
return nd->child();}
33 static Node*
link(
const Node* nd) {
return nd->link();}
34 static Node*&
link(Node* nd) {
return nd->link();}
81 : nvtx_(nvtx), vtxtag_(), tag_(0) {
121 void sketch(std::ostream& os,
const CNode* lnk = 0, uint l = 0);
145 #endif // clusterTree03_hh
An abstract class for an element of a space.
const concepts::Real3d ** vtx_
List containing the points to compute the Cebysev ball.
std::unordered_map< uint, uint > vtxtag_
Hash map to select the vertices of the Node list.
CNode * root_
Root of the cluster tree.
static Node *& link(Node *nd)
uint nvtx_
Maximal number of vertices to compute the Cebysev ball.
Abstract class for a space.
Interface class for a node in the cluster tree Tree01.
uint nclst() const
Number of clusters.
uint nlfmin_
Minimal leafs contained in a cluster.
Tree03(const concepts::Space< F > &spc, const BBall< F > &ball, uint nlfmin=1)
Constructor.
static concepts::Real eps_
CNode * constructor_(CNode *lfset, CebyCenter< CNode > &cby)
Constructor used for recursive calls.
static Node * newNode(const concepts::Element< F > &elm, const BBall< F > &ball, Node *lnk)
Interface class for a node in a cluster tree.
CNode * concat_(CNode *a, CNode *b)
Concats two lists.
void destructor_(CNode *clst)
Destructor used for recursive calls.
static Node * newNode(uint idx, Node &chld, const concepts::Real3d &c, concepts::Real r, uint nlf=0)
Abstract class to compute a bounding ball of an element (the leafs of a cluster tree).
Class to compute the Cebysev ball of a point set, i.e., the smallest ball containing all points.
void operator()(const Node *lfset, concepts::Real3d &c, concepts::Real &r, const concepts::Real3d *(&e)[4], uint &ne)
Application operator computes the Cebysev ball.
uint nlf_
Number of leafs in the tree.
Node::CF F
Field of the node (Real or Cmplx)
Abstract class for a cluster tree.
uint nclst_
Number of clusters in the tree.
TreeTraits03< Node > Traits
Interface for the algorithm.
CebyCenter(uint nvtx)
Constructor.
Used for the cluster classes for the boundary element method.
static Node * child(const Node *nd)
uint nleaf() const
Number of leafs.
const CNode * root() const
Root node of the tree.
uint tag_
Actual tag for vertices in the Node list.
TreeTraits03< CNode > Traits
Interface of the tree.
static Node * link(const Node *nd)
void sketch(std::ostream &os, const CNode *lnk=0, uint l=0)
Sketch of a subtree.
double Real
Type normally used for a floating point number.