template <class T1, class T2>
std::complex<calculated-result-type> sph_hankel_1(T1 v, T2 x);
template <class T1, class T2, class Policy>
std::complex<calculated-result-type> sph_hankel_1(T1 v, T2 x, const Policy&);
template <class T1, class T2>
std::complex<calculated-result-type> sph_hankel_2(T1 v, T2 x);
template <class T1, class T2, class Policy>
std::complex<calculated-result-type> sph_hankel_2(T1 v, T2 x, const Policy&);
Функцииsph_hankel_1иsph_hankel_2возвращают результатсферических функций Ганкеляпервого и второго рода соответственно:


Тип возврата этих функций вычисляется с использованиемправил расчета типа результата, когда T1 и T2 являются различными типами. Функции также оптимизированы для относительно распространенного случая, когда T1 является целым числом.
Окончательный аргументПолитикаявляется необязательным и может использоваться для контроля поведения функции: как она обрабатывает ошибки, какой уровень точности использовать и т. д. См. документацию по политикедля более подробной информации.
Обратите внимание, что хотя аргументы в пользу этих функций являются реальными значениями, результаты являются сложными. Это означает, что функции могут быть реализованы только на типах<float
>,<double
>и<longdouble
>. Функции также были расширены для работы во всем диапазонеvиx(в отличие отcyl_bessel_jиcyl_neumann).
Существует всего несколько точечных тестов для выполнения всей специальной обработки корпуса - основная часть тестирования выполняется на функциях Бесселя, на которых они основаны.
cyl_bessel_jиcyl_neumann.
Эти функции тривиально реализуются в терминахcyl_hankel_1иcyl_hankel_2.