7 #ifndef NIHU_X2X_CLUSTER_INDEXED_HPP_INCLUDED
8 #define NIHU_X2X_CLUSTER_INDEXED_HPP_INCLUDED
13 #include <type_traits>
22 template <
class Operator>
24 :
public fmm_operator<typename std::decay<Operator>::type::fmm_tag>
27 typedef typename std::decay<Operator>::type operator_t;
28 typedef typename operator_t::cluster_t cluster_t;
30 typedef typename operator_t::result_t result_t;
33 : m_op(std::forward<Operator>(op))
38 result_t operator()(
size_t to,
size_t from)
const
40 return m_op(m_tree[to], m_tree[from]);
43 tree_t const &get_tree()
const
55 template <
class Operator>
57 create_x2x_cluster_indexed(Operator &&op,
58 cluster_tree<
typename std::decay<Operator>::type::cluster_t>
const &tree)