Go to the documentation of this file.
16 m_expansion_length = L;
28 return m_expansion_length;
33 m_interp_dns.resize(n, m_interp_dns[0]);
34 m_interp_ups.resize(n, m_interp_ups[0]);
40 auto const idx = omp_get_thread_num();
41 return m_interp_ups[idx].interpolate(x);
47 auto const idx = omp_get_thread_num();
48 return m_interp_dns[idx].interpolate(x);
53 for (
auto &a : m_interp_ups)
59 for (
auto &a : m_interp_dns)
void set_num_threads(size_t n)
set the number of threads
void set_interp_up(interpolator const &interp)
set the up-interpolator object (for all threads)
const cvector_t & interp_up(cvector_t const &x) const
interpolate a function on the unit sphere up to this level
class interpolating over the unit sphere
void set_interp_dn(interpolator const &interp)
set the down-interpolator object (for all threads)
void set_expansion_length(size_t L)
set the expansion length
Eigen::Matrix< std::complex< double >, Eigen::Dynamic, 1 > cvector_t
complex dynamic Eigen vector
size_t get_expansion_length() const
return the expansion length
class performing interpolation and integration over the unit sphere
level data of the the helmholtz 3d high frequency fmm
const cvector_t & interp_down(cvector_t const &x) const
interpolate a function on the unit sphere down to this level
const unit_sphere & get_unit_sphere() const
return the stored unit sphere