29 #ifndef TOOLS_CONNECTIVITY_NUMBERS_3D_TBB_HH
30 # define TOOLS_CONNECTIVITY_NUMBERS_3D_TBB_HH
32 #include <tbb/blocked_range.h>
33 #include <tbb/parallel_for.h>
35 #include "connectivity_numbers_3d.hh"
49 : f_(f), nbh_(nbh), numbers_(numbers)
53 void operator()(
const tbb::blocked_range<config_3d_t>& r)
const
59 typedef mln_domain(I) B;
60 typedef mln_psite(I) P;
62 B b = make::box3d(-1,-1,-1, 1,1,1);
74 mln_fwd_niter_(
N) n(nbh_, p);
81 numbers_[i] = f_(ima);
91 conn_numbers_t& numbers_;
100 connectivity_numbers_3d_tbb(F f)
103 const unsigned dim = 3;
104 const unsigned max_nneighbs = mlc_pow_int(3, dim) - 1;
105 const unsigned nconfigs = mlc_pow_int(2, max_nneighbs);
109 conn_numbers_t numbers(nconfigs, 0);
110 tbb::parallel_for(tbb::blocked_range<config_3d_t>(0, nconfigs),
122 connectivity_numbers_3d_tbb__6_26()
124 return connectivity_numbers_3d_tbb(connectivity_number_3d__6_26_one);
134 connectivity_numbers_3d_tbb__26_6()
136 return connectivity_numbers_3d_tbb(connectivity_number_3d__26_6_one);
146 connectivity_numbers_3d_tbb__6p_18()
148 return connectivity_numbers_3d_tbb(connectivity_number_3d__6p_18_one);
158 connectivity_numbers_3d_tbb__18_6p()
160 return connectivity_numbers_3d_tbb(connectivity_number_3d__18_6p_one);
163 #endif // ! TOOLS_CONNECTIVITY_NUMBERS_3D_TBB_HH