|
Packit |
67cb25 |
.. index:: Bessel functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
The routines described in this section compute the Cylindrical Bessel
|
|
Packit |
67cb25 |
functions :math:`J_n(x)`, :math:`Y_n(x)`, Modified cylindrical Bessel
|
|
Packit |
67cb25 |
functions :math:`I_n(x)`, :math:`K_n(x)`, Spherical Bessel functions
|
|
Packit |
67cb25 |
:math:`j_l(x)`, :math:`y_l(x)`, and Modified Spherical Bessel functions
|
|
Packit |
67cb25 |
:math:`i_l(x)`, :math:`k_l(x)`. For more information see Abramowitz & Stegun,
|
|
Packit |
67cb25 |
Chapters 9 and 10. The Bessel functions are defined in the header file
|
|
Packit |
67cb25 |
:file:`gsl_sf_bessel.h`.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Regular Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
------------------------------------
|
|
Packit |
67cb25 |
.. index:: Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
.. index:: Regular Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: J(x), Bessel Functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_J0 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_J0_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular cylindrical Bessel function of zeroth
|
|
Packit |
67cb25 |
order, :math:`J_0(x)`.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_J1 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_J1_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular cylindrical Bessel function of first
|
|
Packit |
67cb25 |
order, :math:`J_1(x)`.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Jn (int n, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Jn_e (int n, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular cylindrical Bessel function of
|
|
Packit |
67cb25 |
order :data:`n`, :math:`J_n(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_Jn_array (int nmin, int nmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the regular cylindrical Bessel
|
|
Packit |
67cb25 |
functions :math:`J_n(x)` for :math:`n` from :data:`nmin` to :data:`nmax`
|
|
Packit |
67cb25 |
inclusive, storing the results in the array :data:`result_array`. The
|
|
Packit |
67cb25 |
values are computed using recurrence relations for efficiency, and
|
|
Packit |
67cb25 |
therefore may differ slightly from the exact values.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Irregular Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
--------------------------------------
|
|
Packit |
67cb25 |
.. index:: Irregular Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: Y(x), Bessel Functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Y0 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Y0_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular cylindrical Bessel function of zeroth
|
|
Packit |
67cb25 |
order, :math:`Y_0(x)`, for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Y1 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Y1_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular cylindrical Bessel function of first
|
|
Packit |
67cb25 |
order, :math:`Y_1(x)`, for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Yn (int n, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Yn_e (int n, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular cylindrical Bessel function of
|
|
Packit |
67cb25 |
order :data:`n`, :math:`Y_n(x)`, for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_Yn_array (int nmin, int nmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the irregular cylindrical Bessel
|
|
Packit |
67cb25 |
functions :math:`Y_n(x)` for :math:`n` from :data:`nmin` to :data:`nmax`
|
|
Packit |
67cb25 |
inclusive, storing the results in the array :data:`result_array`. The
|
|
Packit |
67cb25 |
domain of the function is :math:`x>0`. The values are computed using
|
|
Packit |
67cb25 |
recurrence relations for efficiency, and therefore may differ slightly
|
|
Packit |
67cb25 |
from the exact values.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Regular Modified Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
---------------------------------------------
|
|
Packit |
67cb25 |
.. index:: Modified Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
.. index:: Regular Modified Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: I(x), Bessel Functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_I0 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_I0_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular modified cylindrical Bessel function
|
|
Packit |
67cb25 |
of zeroth order, :math:`I_0(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EOVRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_I1 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_I1_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular modified cylindrical Bessel function
|
|
Packit |
67cb25 |
of first order, :math:`I_1(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_In (int n, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_In_e (int n, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular modified cylindrical Bessel function
|
|
Packit |
67cb25 |
of order :data:`n`, :math:`I_n(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_In_array (int nmin, int nmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the regular modified cylindrical
|
|
Packit |
67cb25 |
Bessel functions :math:`I_n(x)` for :math:`n` from :data:`nmin` to
|
|
Packit |
67cb25 |
:data:`nmax` inclusive, storing the results in the array
|
|
Packit |
67cb25 |
:data:`result_array`. The start of the range :data:`nmin` must be positive
|
|
Packit |
67cb25 |
or zero. The values are computed using recurrence relations for
|
|
Packit |
67cb25 |
efficiency, and therefore may differ slightly from the exact values.
|
|
Packit |
67cb25 |
.. Domain: nmin >=0, nmax >= nmin
|
|
Packit |
67cb25 |
.. Conditions: n=nmin,...,nmax, nmin >=0, nmax >= nmin
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_I0_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_I0_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled regular modified cylindrical Bessel
|
|
Packit |
67cb25 |
function of zeroth order :math:`\exp(-|x|) I_0(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: none
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_I1_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_I1_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled regular modified cylindrical Bessel
|
|
Packit |
67cb25 |
function of first order :math:`\exp(-|x|) I_1(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_In_scaled (int n, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_In_scaled_e (int n, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled regular modified cylindrical Bessel
|
|
Packit |
67cb25 |
function of order :data:`n`, :math:`\exp(-|x|) I_n(x)`
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_In_scaled_array (int nmin, int nmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the scaled regular cylindrical
|
|
Packit |
67cb25 |
Bessel functions :math:`\exp(-|x|) I_n(x)` for :math:`n` from
|
|
Packit |
67cb25 |
:data:`nmin` to :data:`nmax` inclusive, storing the results in the array
|
|
Packit |
67cb25 |
:data:`result_array`. The start of the range :data:`nmin` must be positive
|
|
Packit |
67cb25 |
or zero. The values are computed using recurrence relations for
|
|
Packit |
67cb25 |
efficiency, and therefore may differ slightly from the exact values.
|
|
Packit |
67cb25 |
.. Domain: nmin >=0, nmax >= nmin
|
|
Packit |
67cb25 |
.. Conditions: n=nmin,...,nmax
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Irregular Modified Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
-----------------------------------------------
|
|
Packit |
67cb25 |
.. index:: Irregular Modified Cylindrical Bessel Functions
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: K(x), Bessel Functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_K0 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_K0_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular modified cylindrical Bessel
|
|
Packit |
67cb25 |
function of zeroth order, :math:`K_0(x)`, for :math:`x > 0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_K1 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_K1_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular modified cylindrical Bessel
|
|
Packit |
67cb25 |
function of first order, :math:`K_1(x)`, for :math:`x > 0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Kn (int n, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Kn_e (int n, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular modified cylindrical Bessel
|
|
Packit |
67cb25 |
function of order :data:`n`, :math:`K_n(x)`, for :math:`x > 0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_Kn_array (int nmin, int nmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the irregular modified cylindrical
|
|
Packit |
67cb25 |
Bessel functions :math:`K_n(x)` for :math:`n` from :data:`nmin` to
|
|
Packit |
67cb25 |
:data:`nmax` inclusive, storing the results in the array
|
|
Packit |
67cb25 |
:data:`result_array`. The start of the range :data:`nmin` must be positive
|
|
Packit |
67cb25 |
or zero. The domain of the function is :math:`x>0`. The values are
|
|
Packit |
67cb25 |
computed using recurrence relations for efficiency, and therefore
|
|
Packit |
67cb25 |
may differ slightly from the exact values.
|
|
Packit |
67cb25 |
.. Conditions: n=nmin,...,nmax
|
|
Packit |
67cb25 |
.. Domain: x > 0.0, nmin>=0, nmax >= nmin
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_K0_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_K0_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled irregular modified cylindrical Bessel
|
|
Packit |
67cb25 |
function of zeroth order :math:`\exp(x) K_0(x)` for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_K1_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_K1_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled irregular modified cylindrical Bessel
|
|
Packit |
67cb25 |
function of first order :math:`\exp(x) K_1(x)` for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Kn_scaled (int n, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Kn_scaled_e (int n, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled irregular modified cylindrical Bessel
|
|
Packit |
67cb25 |
function of order :data:`n`, :math:`\exp(x) K_n(x)`, for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_Kn_scaled_array (int nmin, int nmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the scaled irregular cylindrical
|
|
Packit |
67cb25 |
Bessel functions :math:`\exp(x) K_n(x)` for :math:`n` from :data:`nmin` to
|
|
Packit |
67cb25 |
:data:`nmax` inclusive, storing the results in the array
|
|
Packit |
67cb25 |
:data:`result_array`. The start of the range :data:`nmin` must be positive
|
|
Packit |
67cb25 |
or zero. The domain of the function is :math:`x>0`. The values are
|
|
Packit |
67cb25 |
computed using recurrence relations for efficiency, and therefore
|
|
Packit |
67cb25 |
may differ slightly from the exact values.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0, nmin >=0, nmax >= nmin
|
|
Packit |
67cb25 |
.. Conditions: n=nmin,...,nmax
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Regular Spherical Bessel Functions
|
|
Packit |
67cb25 |
----------------------------------
|
|
Packit |
67cb25 |
.. index:: Spherical Bessel Functions
|
|
Packit |
67cb25 |
.. index:: Regular Spherical Bessel Functions
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: j(x), Bessel Functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_j0 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_j0_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular spherical Bessel function of zeroth
|
|
Packit |
67cb25 |
order, :math:`j_0(x) = \sin(x)/x`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: none
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_j1 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_j1_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular spherical Bessel function of first
|
|
Packit |
67cb25 |
order, :math:`j_1(x) = (\sin(x)/x - \cos(x))/x`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_j2 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_j2_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular spherical Bessel function of second
|
|
Packit |
67cb25 |
order, :math:`j_2(x) = ((3/x^2 - 1)\sin(x) - 3\cos(x)/x)/x`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_jl (int l, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_jl_e (int l, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular spherical Bessel function of
|
|
Packit |
67cb25 |
order :data:`l`, :math:`j_l(x)`, for
|
|
Packit |
67cb25 |
:math:`l \geq 0` and :math:`x \geq 0`.
|
|
Packit |
67cb25 |
.. Domain: l >= 0, x >= 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_jl_array (int lmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the regular spherical Bessel
|
|
Packit |
67cb25 |
functions :math:`j_l(x)` for :math:`l` from 0 to :data:`lmax`
|
|
Packit |
67cb25 |
inclusive for
|
|
Packit |
67cb25 |
:math:`lmax \geq 0` and
|
|
Packit |
67cb25 |
:math:`x \geq 0`, storing the results in the array :data:`result_array`.
|
|
Packit |
67cb25 |
The values are computed using recurrence relations for
|
|
Packit |
67cb25 |
efficiency, and therefore may differ slightly from the exact values.
|
|
Packit |
67cb25 |
.. Domain: lmax >= 0
|
|
Packit |
67cb25 |
.. Conditions: l=0,1,...,lmax
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_jl_steed_array (int lmax, double x, double * result_array)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine uses Steed's method to compute the values of the regular
|
|
Packit |
67cb25 |
spherical Bessel functions :math:`j_l(x)` for :math:`l` from 0 to
|
|
Packit |
67cb25 |
:data:`lmax` inclusive for
|
|
Packit |
67cb25 |
:math:`lmax \geq 0` and
|
|
Packit |
67cb25 |
:math:`x \geq 0`, storing the results in the array
|
|
Packit |
67cb25 |
:data:`result_array`.
|
|
Packit |
67cb25 |
The Steed/Barnett algorithm is described in Comp. Phys. Comm. 21,
|
|
Packit |
67cb25 |
297 (1981). Steed's method is more stable than the
|
|
Packit |
67cb25 |
recurrence used in the other functions but is also slower.
|
|
Packit |
67cb25 |
.. Domain: lmax >= 0
|
|
Packit |
67cb25 |
.. Conditions: l=0,1,...,lmax
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Irregular Spherical Bessel Functions
|
|
Packit |
67cb25 |
------------------------------------
|
|
Packit |
67cb25 |
.. index:: Irregular Spherical Bessel Functions
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: y(x), Bessel Functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_y0 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_y0_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular spherical Bessel function of zeroth
|
|
Packit |
67cb25 |
order, :math:`y_0(x) = -\cos(x)/x`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: none
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_y1 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_y1_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular spherical Bessel function of first
|
|
Packit |
67cb25 |
order, :math:`y_1(x) = -(\cos(x)/x + \sin(x))/x`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_y2 (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_y2_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular spherical Bessel function of second
|
|
Packit |
67cb25 |
order, :math:`y_2(x) = (-3/x^3 + 1/x)\cos(x) - (3/x^2)\sin(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_yl (int l, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_yl_e (int l, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular spherical Bessel function of
|
|
Packit |
67cb25 |
order :data:`l`, :math:`y_l(x)`, for
|
|
Packit |
67cb25 |
:math:`l \geq 0`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_yl_array (int lmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the irregular spherical Bessel
|
|
Packit |
67cb25 |
functions :math:`y_l(x)` for :math:`l` from 0 to :data:`lmax`
|
|
Packit |
67cb25 |
inclusive for
|
|
Packit |
67cb25 |
:math:`lmax \geq 0`, storing the results in the array :data:`result_array`.
|
|
Packit |
67cb25 |
The values are computed using recurrence relations for
|
|
Packit |
67cb25 |
efficiency, and therefore may differ slightly from the exact values.
|
|
Packit |
67cb25 |
.. Domain: lmax >= 0
|
|
Packit |
67cb25 |
.. Conditions: l=0,1,...,lmax
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Regular Modified Spherical Bessel Functions
|
|
Packit |
67cb25 |
-------------------------------------------
|
|
Packit |
67cb25 |
.. index:: Modified Spherical Bessel Functions
|
|
Packit |
67cb25 |
.. index:: Regular Modified Spherical Bessel Functions
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: i(x), Bessel Functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
The regular modified spherical Bessel functions :math:`i_l(x)`
|
|
Packit |
67cb25 |
are related to the modified Bessel functions of fractional order,
|
|
Packit |
67cb25 |
:math:`i_l(x) = \sqrt{\pi/(2x)} I_{l+1/2}(x)`
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_i0_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_i0_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled regular modified spherical Bessel
|
|
Packit |
67cb25 |
function of zeroth order, :math:`\exp(-|x|) i_0(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: none
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_i1_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_i1_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled regular modified spherical Bessel
|
|
Packit |
67cb25 |
function of first order, :math:`\exp(-|x|) i_1(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_i2_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_i2_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled regular modified spherical Bessel
|
|
Packit |
67cb25 |
function of second order, :math:`\exp(-|x|) i_2(x)`
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_il_scaled (int l, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_il_scaled_e (int l, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled regular modified spherical Bessel
|
|
Packit |
67cb25 |
function of order :data:`l`, :math:`\exp(-|x|) i_l(x)`
|
|
Packit |
67cb25 |
.. Domain: l >= 0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_il_scaled_array (int lmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the scaled regular modified
|
|
Packit |
67cb25 |
spherical Bessel functions :math:`\exp(-|x|) i_l(x)` for :math:`l` from
|
|
Packit |
67cb25 |
0 to :data:`lmax` inclusive for
|
|
Packit |
67cb25 |
:math:`lmax \geq 0`, storing the results in
|
|
Packit |
67cb25 |
the array :data:`result_array`.
|
|
Packit |
67cb25 |
The values are computed using recurrence relations for
|
|
Packit |
67cb25 |
efficiency, and therefore may differ slightly from the exact values.
|
|
Packit |
67cb25 |
.. Domain: lmax >= 0
|
|
Packit |
67cb25 |
.. Conditions: l=0,1,...,lmax
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Irregular Modified Spherical Bessel Functions
|
|
Packit |
67cb25 |
---------------------------------------------
|
|
Packit |
67cb25 |
.. index:: Irregular Modified Spherical Bessel Functions
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: k(x), Bessel Functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
The irregular modified spherical Bessel functions :math:`k_l(x)`
|
|
Packit |
67cb25 |
are related to the irregular modified Bessel functions of fractional order,
|
|
Packit |
67cb25 |
:math:`k_l(x) = \sqrt{\pi/(2x)} K_{l+1/2}(x)`.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_k0_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_k0_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled irregular modified spherical Bessel
|
|
Packit |
67cb25 |
function of zeroth order, :math:`\exp(x) k_0(x)`, for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_k1_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_k1_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled irregular modified spherical Bessel
|
|
Packit |
67cb25 |
function of first order, :math:`\exp(x) k_1(x)`, for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW, GSL_EOVRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_k2_scaled (double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_k2_scaled_e (double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled irregular modified spherical Bessel
|
|
Packit |
67cb25 |
function of second order, :math:`\exp(x) k_2(x)`, for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW, GSL_EOVRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_kl_scaled (int l, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_kl_scaled_e (int l, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled irregular modified spherical Bessel
|
|
Packit |
67cb25 |
function of order :data:`l`, :math:`\exp(x) k_l(x)`, for :math:`x>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0.0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_kl_scaled_array (int lmax, double x, double result_array[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the values of the scaled irregular modified
|
|
Packit |
67cb25 |
spherical Bessel functions :math:`\exp(x) k_l(x)` for :math:`l` from
|
|
Packit |
67cb25 |
0 to :data:`lmax` inclusive for
|
|
Packit |
67cb25 |
:math:`lmax \geq 0` and :math:`x>0`, storing the results in
|
|
Packit |
67cb25 |
the array :data:`result_array`.
|
|
Packit |
67cb25 |
The values are computed using recurrence relations for
|
|
Packit |
67cb25 |
efficiency, and therefore may differ slightly from the exact values.
|
|
Packit |
67cb25 |
.. Domain: lmax >= 0
|
|
Packit |
67cb25 |
.. Conditions: l=0,1,...,lmax
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Regular Bessel Function---Fractional Order
|
|
Packit |
67cb25 |
------------------------------------------
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: Fractional Order Bessel Functions
|
|
Packit |
67cb25 |
single: Bessel Functions, Fractional Order
|
|
Packit |
67cb25 |
single: Regular Bessel Functions, Fractional Order
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Jnu (double nu, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Jnu_e (double nu, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular cylindrical Bessel function of
|
|
Packit |
67cb25 |
fractional order :math:`\nu`, :math:`J_\nu(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_bessel_sequence_Jnu_e (double nu, gsl_mode_t mode, size_t size, double v[])
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This function computes the regular cylindrical Bessel function of
|
|
Packit |
67cb25 |
fractional order :math:`\nu`, :math:`J_\nu(x)`, evaluated at a series of
|
|
Packit |
67cb25 |
:math:`x` values. The array :data:`v` of length :data:`size` contains the
|
|
Packit |
67cb25 |
:math:`x` values. They are assumed to be strictly ordered and positive.
|
|
Packit |
67cb25 |
The array is over-written with the values of :math:`J_\nu(x_i)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EINVAL
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Irregular Bessel Functions---Fractional Order
|
|
Packit |
67cb25 |
---------------------------------------------
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Ynu (double nu, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Ynu_e (double nu, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular cylindrical Bessel function of
|
|
Packit |
67cb25 |
fractional order :math:`\nu`, :math:`Y_\nu(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Regular Modified Bessel Functions---Fractional Order
|
|
Packit |
67cb25 |
----------------------------------------------------
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: Modified Bessel Functions, Fractional Order
|
|
Packit |
67cb25 |
single: Regular Modified Bessel Functions, Fractional Order
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Inu (double nu, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Inu_e (double nu, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the regular modified Bessel function of
|
|
Packit |
67cb25 |
fractional order :math:`\nu`, :math:`I_\nu(x)` for :math:`x>0`,
|
|
Packit |
67cb25 |
:math:`\nu>0`.
|
|
Packit |
67cb25 |
.. Domain: x >= 0, nu >= 0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EOVRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Inu_scaled (double nu, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Inu_scaled_e (double nu, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled regular modified Bessel function of
|
|
Packit |
67cb25 |
fractional order :math:`\nu`, :math:`\exp(-|x|)I_\nu(x)` for :math:`x>0`,
|
|
Packit |
67cb25 |
:math:`\nu>0`.
|
|
Packit |
67cb25 |
.. Domain: x >= 0, nu >= 0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Irregular Modified Bessel Functions---Fractional Order
|
|
Packit |
67cb25 |
------------------------------------------------------
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: Irregular Modified Bessel Functions, Fractional Order
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Knu (double nu, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Knu_e (double nu, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the irregular modified Bessel function of
|
|
Packit |
67cb25 |
fractional order :math:`\nu`, :math:`K_\nu(x)` for :math:`x>0`,
|
|
Packit |
67cb25 |
:math:`\nu>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0, nu >= 0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_lnKnu (double nu, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_lnKnu_e (double nu, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the logarithm of the irregular modified Bessel
|
|
Packit |
67cb25 |
function of fractional order :math:`\nu`, :math:`\ln(K_\nu(x))` for
|
|
Packit |
67cb25 |
:math:`x>0`, :math:`\nu>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0, nu >= 0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_Knu_scaled (double nu, double x)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_Knu_scaled_e (double nu, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the scaled irregular modified Bessel function of
|
|
Packit |
67cb25 |
fractional order :math:`\nu`, :math:`\exp(+|x|) K_\nu(x)` for :math:`x>0`,
|
|
Packit |
67cb25 |
:math:`\nu>0`.
|
|
Packit |
67cb25 |
.. Domain: x > 0, nu >= 0
|
|
Packit |
67cb25 |
.. Exceptional Return Values: GSL_EDOM
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Zeros of Regular Bessel Functions
|
|
Packit |
67cb25 |
---------------------------------
|
|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: Zeros of Regular Bessel Functions
|
|
Packit |
67cb25 |
single: Regular Bessel Functions, Zeros of
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_zero_J0 (unsigned int s)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_zero_J0_e (unsigned int s, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the location of the :data:`s`-th positive zero of
|
|
Packit |
67cb25 |
the Bessel function :math:`J_0(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_zero_J1 (unsigned int s)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_zero_J1_e (unsigned int s, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the location of the :data:`s`-th positive zero of
|
|
Packit |
67cb25 |
the Bessel function :math:`J_1(x)`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_bessel_zero_Jnu (double nu, unsigned int s)
|
|
Packit |
67cb25 |
int gsl_sf_bessel_zero_Jnu_e (double nu, unsigned int s, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the location of the :data:`s`-th positive zero of
|
|
Packit |
67cb25 |
the Bessel function :math:`J_\nu(x)`. The current implementation does not
|
|
Packit |
67cb25 |
support negative values of :data:`nu`.
|
|
Packit |
67cb25 |
.. Exceptional Return Values:
|