8 typedef double wave_number_t;
12 typedef cluster_t::location_t location_t;
19 location_t *src_begin =
new location_t[N_src];
20 for (
size_t i = 0; i < N_src; ++i)
21 src_begin[i].setRandom();
23 location_t *rec_begin =
new location_t[N_rec];
24 for (
size_t i = 0; i < N_rec; ++i)
26 rec_begin[i].setRandom();
27 rec_begin[i](0) += 2.0;
33 rec_begin, rec_begin + N_rec,
40 wave_number_t k = 2.0;
43 fmm.init_level_data(tree);
45 for (
size_t c = 0; c < tree.get_n_clusters(); ++c)
46 tree[c].set_p_level_data(&fmm.get_level_data(tree[c].get_level()));
51 fmm.create_p2p<0, 0>(),
61 auto p2p = fmm.create_p2p<0, 0>();
62 std::cout << p2p(*rec_begin, *src_begin) << std::endl;
64 auto idx_fctr = NiHu::fmm::create_indexed_functor(
65 src_begin, src_begin + N_src,
66 rec_begin, rec_begin + N_rec,
69 auto pre_fctr = NiHu::fmm::create_precompute_functor(tree, lists);
71 auto pre_collection = ops.transform(idx_fctr).transform(pre_fctr);
77 Eigen::Matrix<std::complex<double>, Eigen::Dynamic, 1> xct(N_src, 1);
80 auto resp = mat * xct;