mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-25 01:50:30 -04: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). | ||
|  | ] |