mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-17 17:42:02 -05:00
110 lines
2.9 KiB
Plaintext
110 lines
2.9 KiB
Plaintext
|
|
||
|
[section:bessel_derivatives Derivatives of the Bessel Functions]
|
||
|
|
||
|
[h4 Synopsis]
|
||
|
|
||
|
`#include <boost/math/special_functions/bessel_prime.hpp>`
|
||
|
|
||
|
template <class T1, class T2>
|
||
|
``__sf_result`` cyl_bessel_j_prime(T1 v, T2 x);
|
||
|
|
||
|
template <class T1, class T2, class ``__Policy``>
|
||
|
``__sf_result`` cyl_bessel_j_prime(T1 v, T2 x, const ``__Policy``&);
|
||
|
|
||
|
template <class T1, class T2>
|
||
|
``__sf_result`` cyl_neumann_prime(T1 v, T2 x);
|
||
|
|
||
|
template <class T1, class T2, class ``__Policy``>
|
||
|
``__sf_result`` cyl_neumann_prime(T1 v, T2 x, const ``__Policy``&);
|
||
|
|
||
|
template <class T1, class T2>
|
||
|
``__sf_result`` cyl_bessel_i_prime(T1 v, T2 x);
|
||
|
|
||
|
template <class T1, class T2, class ``__Policy``>
|
||
|
``__sf_result`` cyl_bessel_i_prime(T1 v, T2 x, const ``__Policy``&);
|
||
|
|
||
|
template <class T1, class T2>
|
||
|
``__sf_result`` cyl_bessel_k_prime(T1 v, T2 x);
|
||
|
|
||
|
template <class T1, class T2, class ``__Policy``>
|
||
|
``__sf_result`` cyl_bessel_k_prime(T1 v, T2 x, const ``__Policy``&);
|
||
|
|
||
|
template <class T1, class T2>
|
||
|
``__sf_result`` sph_bessel_prime(T1 v, T2 x);
|
||
|
|
||
|
template <class T1, class T2, class ``__Policy``>
|
||
|
``__sf_result`` sph_bessel_prime(T1 v, T2 x, const ``__Policy``&);
|
||
|
|
||
|
template <class T1, class T2>
|
||
|
``__sf_result`` sph_neumann_prime(T1 v, T2 x);
|
||
|
|
||
|
template <class T1, class T2, class ``__Policy``>
|
||
|
``__sf_result`` sph_neumann_prime(T1 v, T2 x, const ``__Policy``&);
|
||
|
|
||
|
|
||
|
[h4 Description]
|
||
|
|
||
|
These functions return the first derivative with respect to /x/ of the corresponding Bessel function.
|
||
|
|
||
|
The return type of these functions is computed using the __arg_promotion_rules
|
||
|
when T1 and T2 are different types. The functions are also optimised for the
|
||
|
relatively common case that T1 is an integer.
|
||
|
|
||
|
[optional_policy]
|
||
|
|
||
|
The functions return the result of __domain_error whenever the result is
|
||
|
undefined or complex.
|
||
|
|
||
|
[h4 Testing]
|
||
|
|
||
|
There are two sets of test values: spot values calculated using
|
||
|
[@http://www.wolframalpha.com/ wolframalpha.com],
|
||
|
and a much larger set of tests computed using
|
||
|
a relation to the underlying Bessel functions that the implementation
|
||
|
does not use.
|
||
|
|
||
|
[h4 Accuracy]
|
||
|
|
||
|
The accuracy of these functions is broadly similar to the underlying Bessel functions.
|
||
|
|
||
|
[table_cyl_bessel_i_prime_integer_orders_]
|
||
|
|
||
|
[table_cyl_bessel_i_prime]
|
||
|
|
||
|
[table_cyl_bessel_j_prime_integer_orders_]
|
||
|
|
||
|
[table_cyl_bessel_j_prime]
|
||
|
|
||
|
[table_cyl_bessel_k_prime_integer_orders_]
|
||
|
|
||
|
[table_cyl_bessel_k_prime]
|
||
|
|
||
|
[table_sph_bessel_prime]
|
||
|
|
||
|
[table_sph_neumann_prime]
|
||
|
|
||
|
|
||
|
[h4 Implementation]
|
||
|
|
||
|
In the general case, the derivatives are calculated using the relations:
|
||
|
|
||
|
[equation bessel_derivatives1]
|
||
|
|
||
|
There are also a number of special cases, for large x we have:
|
||
|
|
||
|
[equation bessel_derivatives4]
|
||
|
|
||
|
And for small x:
|
||
|
|
||
|
[equation bessel_derivatives5]
|
||
|
|
||
|
[endsect]
|
||
|
|
||
|
[/
|
||
|
Copyright 2013, 2013 John Maddock, Anton Bikineev.
|
||
|
|
||
|
Distributed under the Boost Software License, Version 1.0.
|
||
|
(See accompanying file LICENSE_1_0.txt or copy at
|
||
|
http://www.boost.org/LICENSE_1_0.txt).
|
||
|
]
|