7 #ifndef NIHU_UNIT_SPHERE_INTERPOLATOR_H_INCLUDED
8 #define NIHU_UNIT_SPHERE_INTERPOLATOR_H_INCLUDED
12 #include <boost/math/constants/constants.hpp>
13 #include <Eigen/Dense>
27 typedef Eigen::Matrix<std::complex<double>, Eigen::Dynamic, Eigen::Dynamic> cmatrix_t;
28 typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> dmatrix_t;
29 typedef Eigen::Matrix<std::complex<double>, Eigen::Dynamic, 1> cvector_t;
30 typedef Eigen::Matrix<double, Eigen::Dynamic, 1> dvector_t;
43 fftw_destroy_plan(dft_plan);
44 fftw_destroy_plan(idft_plan);
60 cvector_t
const &
interpolate(cvector_t
const &other)
const;
63 static dmatrix_t Amatrix(
int L,
int m,
64 dvector_t
const &theta,
66 dvector_t
const &wxi);
68 static double C(
int l,
int m);
71 size_t m_Lfrom, m_Lto;
72 std::vector<dmatrix_t> m_A;
73 fftw_plan dft_plan, idft_plan;
75 mutable cmatrix_t m_Phi;
76 mutable cmatrix_t m_Q;
77 mutable cvector_t m_res;