inline static void eval(Context& c, const typename Context::target_box_type& box) { apply(c.expansion(), c.local(box), box.extents(), box.level()); }
inline static void eval(Context& c, const typename Context::target_box_type& sbox, const typename Context::target_box_type& tbox) { apply(c.expansion(), c.local(sbox), c.local(tbox), tbox.center() - sbox.center()); }
inline static void eval(Context& c, const typename Context::target_box_type& tbox) { apply(c.expansion(), c.local(tbox), tbox.center(), c.target_begin(tbox), c.target_end(tbox), c.result_begin(tbox)); }
inline static void eval(Context& c, const typename Context::source_box_type& sbox, const typename Context::target_box_type& tbox) { #if defined(FMMTL_DEBUG) std::cout << "M2L:" << "\n " << sbox << "\n " << tbox << std::endl; #endif FMMTL_LOG("M2L"); M2L::eval(c.expansion(), c.multipole(sbox), c.local(tbox), tbox.center() - sbox.center()); }