NiHu  2.0
lib_bessel.cpp
1 #include "../util/math_functions.hpp"
2 
3 #include <boost/math/constants/constants.hpp>
4 
5 namespace NiHu
6 {
7 namespace bessel
8 {
9  template <>
10  std::complex<double> K<0>(std::complex<double> const &z)
11  {
12  using namespace std::complex_literals;
13  using namespace boost::math::double_constants;
14  return half_pi * 1.i * (std::imag(z) < 0. ? H<0, 1>(1.i*z) : -H<0, 2>(-1.i*z));
15  }
16 
17  template <>
18  std::complex<double> K<1>(std::complex<double> const &z)
19  {
20  using namespace std::complex_literals;
21  using namespace boost::math::double_constants;
22  return -half_pi * (std::imag(z) < 0. ? H<1, 1>(1.i*z) : H<1, 2>(-1.i*z));
23  }
24 }
25 }