cluster::Tree01< CNode > Class Template Reference

Cluster tree. More...

#include <tree01.hh>

Inheritance diagram for cluster::Tree01< CNode >:
cluster::Tree< CNode >

Public Types

typedef Traits::F F
 
typedef CNode Node
 Node type of the tree used for the interface of the far field matrices. More...
 
typedef TreeTraits01< CNode > Traits
 Interface of the tree. More...
 

Public Member Functions

virtual std::ostream & info (std::ostream &os) const
 
uint nclst () const
 Number of clusters. More...
 
uint nleaf () const
 Number of leafs. More...
 
const CNode * root () const
 Root node of the tree. More...
 
void sketch (std::ostream &os, const CNode *lnk=0, uint l=0)
 Sketch of a subtree. More...
 
const concepts::Space< F > & space () const
 Space of the tree. More...
 
 Tree01 (const concepts::Space< F > &spc, const BBall< F > &ball, uint nlfmin=1)
 Constructor. More...
 
 ~Tree01 ()
 

Private Member Functions

CNode * concat_ (CNode *a, CNode *b)
 Concats two lists. More...
 
CNode * constructor_ (CNode *lfset)
 Constructor used for recursive calls. More...
 
void destructor_ (CNode *clst)
 Destructor used for recursive calls. More...
 
void info_ (const Node *clst, concepts::Real &rhomin, concepts::Real &rhomax, concepts::Real &taumin, concepts::Real &taumax, uint &h) const
 Computes some information used by info() More...
 

Private Attributes

uint nclst_
 Number of clusters in the tree. More...
 
uint nlf_
 Number of leafs in the tree. More...
 
uint nlfmin_
 Minimal leafs contained in a cluster. More...
 
CNode * root_
 Root of the cluster tree. More...
 
const concepts::Space< F > & spc_
 Space of the tree. More...
 

Detailed Description

template<class CNode>
class cluster::Tree01< CNode >

Cluster tree.

The clusters are approximated by a bounding box. The subdivision is done by cutting the longest side of the bounding box into two pieces.

Parameters
CNodeNode type of the cluster tree

Definition at line 44 of file tree01.hh.

Member Typedef Documentation

◆ F

template<class CNode >
typedef Traits::F cluster::Tree01< CNode >::F

Definition at line 48 of file tree01.hh.

◆ Node

template<class CNode >
typedef CNode cluster::Tree< CNode >::Node
inherited

Node type of the tree used for the interface of the far field matrices.

Definition at line 294 of file tree.hh.

◆ Traits

template<class CNode >
typedef TreeTraits01<CNode> cluster::Tree01< CNode >::Traits

Interface of the tree.

Definition at line 47 of file tree01.hh.

Constructor & Destructor Documentation

◆ Tree01()

template<class CNode >
cluster::Tree01< CNode >::Tree01 ( const concepts::Space< F > &  spc,
const BBall< F > &  ball,
uint  nlfmin = 1 
)

Constructor.

Parameters
spcSpace which elements should be clusterd
ballBounding ball for the elements of the space
nlfminMinimal leafs contained in a cluster

◆ ~Tree01()

template<class CNode >
cluster::Tree01< CNode >::~Tree01 ( )
inline

Definition at line 57 of file tree01.hh.

Member Function Documentation

◆ concat_()

template<class CNode >
CNode* cluster::Tree01< CNode >::concat_ ( CNode *  a,
CNode *  b 
)
private

Concats two lists.

◆ constructor_()

template<class CNode >
CNode* cluster::Tree01< CNode >::constructor_ ( CNode *  lfset)
private

Constructor used for recursive calls.

◆ destructor_()

template<class CNode >
void cluster::Tree01< CNode >::destructor_ ( CNode *  clst)
private

Destructor used for recursive calls.

◆ info()

template<class CNode >
std::ostream & cluster::Tree< CNode >::info ( std::ostream &  os) const
virtualinherited

Definition at line 364 of file tree.hh.

◆ info_()

template<class CNode >
void cluster::Tree< CNode >::info_ ( const Node clst,
concepts::Real rhomin,
concepts::Real rhomax,
concepts::Real taumin,
concepts::Real taumax,
uint &  h 
) const
privateinherited

Computes some information used by info()

Parameters
clstNode of the tree
rhominRatio of child radius divided by cluster radius
rhomaxRatio of child radius divided by cluster radius
tauminRatio of number of leafs of the child divided by the number of leafs of the cluster
hLongest path in the tree from clst to the leafs

Definition at line 330 of file tree.hh.

◆ nclst()

template<class CNode >
uint cluster::Tree01< CNode >::nclst ( ) const
inlinevirtual

Number of clusters.

Implements cluster::Tree< CNode >.

Definition at line 60 of file tree01.hh.

◆ nleaf()

template<class CNode >
uint cluster::Tree01< CNode >::nleaf ( ) const
inlinevirtual

Number of leafs.

Implements cluster::Tree< CNode >.

Definition at line 62 of file tree01.hh.

◆ root()

template<class CNode >
const CNode* cluster::Tree01< CNode >::root ( ) const
inlinevirtual

Root node of the tree.

Implements cluster::Tree< CNode >.

Definition at line 64 of file tree01.hh.

◆ sketch()

template<class CNode >
void cluster::Tree01< CNode >::sketch ( std::ostream &  os,
const CNode *  lnk = 0,
uint  l = 0 
)

Sketch of a subtree.

Parameters
osOutput stream
lnkRoot of the subtree which is sketched
lLevel, number of blanks printed on the left side

◆ space()

template<class CNode >
const concepts::Space<F>& cluster::Tree< CNode >::space ( ) const
inlineinherited

Space of the tree.

Definition at line 310 of file tree.hh.

Member Data Documentation

◆ nclst_

template<class CNode >
uint cluster::Tree01< CNode >::nclst_
private

Number of clusters in the tree.

Definition at line 79 of file tree01.hh.

◆ nlf_

template<class CNode >
uint cluster::Tree01< CNode >::nlf_
private

Number of leafs in the tree.

Definition at line 77 of file tree01.hh.

◆ nlfmin_

template<class CNode >
uint cluster::Tree01< CNode >::nlfmin_
private

Minimal leafs contained in a cluster.

Definition at line 75 of file tree01.hh.

◆ root_

template<class CNode >
CNode* cluster::Tree01< CNode >::root_
private

Root of the cluster tree.

Definition at line 81 of file tree01.hh.

◆ spc_

template<class CNode >
const concepts::Space<F>& cluster::Tree< CNode >::spc_
privateinherited

Space of the tree.

Definition at line 314 of file tree.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich