Go to the documentation of this file.
7 #ifndef NIHU_DIVIDE_HPP_INCLUDED
8 #define NIHU_DIVIDE_HPP_INCLUDED
27 template <
class Derived>
33 template <
class Cluster>
34 bool operator()(Cluster
const &c)
const
36 return derived().operator()(c);
66 template <
class Cluster>
69 return c.get_level() < m_depth;
83 : m_max_nodes(max_nodes)
92 template <
class Cluster>
95 size_t s = c.get_n_src_nodes();
96 size_t r = c.get_n_rec_nodes();
97 return std::max(s, r) > m_max_nodes;
120 template <
class Cluster>
123 return c.get_bounding_box().get_diameter() > m_diameter;
class representing a balanced tree division predicate by leaf diameter
divide_diameter(double d)
constructor
divide_depth(size_t depth)
Constructor.
#define NIHU_CRTP_HELPERS
define CRTP helper function
Class representing a balanced tree division predicate.
Class representing a cluster division based on number of nodes.
divide_num_nodes(size_t max_nodes)
constructor
Base CRTP class for cluster division.
Define CRTP helper functions and metafunctions.
implementation of class NiHu::fmm::cluster_base
bool operator()(Cluster const &c) const
determine if a cluster needs to be divided or not
bool operator()(Cluster const &c) const
Determine if a cluster needs to be divided.
bool operator()(Cluster const &c) const
determine if a cluster needs to be divided