Boost C++ 库

...世界上最受推崇和设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

球汉克尔函数

概要
#if !defined(__CUDACC__) && !defined(__CUDACC_RTC__)

template <class T1, class T2>
BOOST_MATH_GPU_ENABLED std::complex<calculated-result-type> sph_hankel_1(T1 v, T2 x);

template <class T1, class T2, class Policy>
BOOST_MATH_GPU_ENABLED std::complex<calculated-result-type> sph_hankel_1(T1 v, T2 x, const Policy&);

template <class T1, class T2>
BOOST_MATH_GPU_ENABLED std::complex<calculated-result-type> sph_hankel_2(T1 v, T2 x);

template <class T1, class T2, class Policy>
BOOST_MATH_GPU_ENABLED std::complex<calculated-result-type> sph_hankel_2(T1 v, T2 x, const Policy&);

#else // When using cuda we use namespace cuda::std:: instead of std::

template <class T1, class T2>
BOOST_MATH_GPU_ENABLED cuda::std::complex<calculated-result-type> sph_hankel_1(T1 v, T2 x);

template <class T1, class T2, class Policy>
BOOST_MATH_GPU_ENABLED cuda::std::complex<calculated-result-type> sph_hankel_1(T1 v, T2 x, const Policy&);

template <class T1, class T2>
BOOST_MATH_GPU_ENABLED cuda::std::complex<calculated-result-type> sph_hankel_2(T1 v, T2 x);

template <class T1, class T2, class Policy>
BOOST_MATH_GPU_ENABLED cuda::std::complex<calculated-result-type> sph_hankel_2(T1 v, T2 x, const Policy&);

#endif
描述

函数 sph_hankel_1sph_hankel_2 返回第一类和第二类球汉克尔函数的结果

当 T1 和 T2 是不同类型时,这些函数的返回类型使用结果类型计算规则计算。 这些函数也针对 T1 为整数的相对常见情况进行了优化。

最后的 策略 参数是可选的,可用于控制函数的行为:如何处理错误、使用什么级别的精度等。 有关更多详细信息,请参阅策略文档

请注意,虽然这些函数的参数是实数值,但结果是复数。 这意味着这些函数只能在类型 floatdoublelong double 上实例化。 这些函数也已扩展到在 vx 的整个范围内运行(与 cyl_bessel_jcyl_neumann 不同)。

测试

只有一些 spot 测试来练习所有特殊情况处理 - 大部分测试都在这些函数所基于的贝塞尔函数上完成。

精度

请参阅 cyl_bessel_jcyl_neumann

实现

这些函数是根据 cyl_hankel_1cyl_hankel_2 轻松实现的。


PrevUpHomeNext