|
Packit |
67cb25 |
.. index::
|
|
Packit |
67cb25 |
single: hypergeometric functions
|
|
Packit |
67cb25 |
single: confluent hypergeometric functions
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
Hypergeometric functions are described in Abramowitz & Stegun, Chapters
|
|
Packit |
67cb25 |
13 and 15. These functions are declared in the header file
|
|
Packit |
67cb25 |
:file:`gsl_sf_hyperg.h`.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_0F1 (double c, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_0F1_e (double c, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the hypergeometric function
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: not texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: {}_0F_1(c,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: 0F1(c,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. It is related to Bessel functions
|
|
Packit |
67cb25 |
.. 0F1[c,x] =
|
|
Packit |
67cb25 |
.. Gamma[c] x^(1/2(1-c)) I_(c-1)(2 Sqrt[x])
|
|
Packit |
67cb25 |
.. Gamma[c] (-x)^(1/2(1-c)) J_(c-1)(2 Sqrt[-x])
|
|
Packit |
67cb25 |
.. exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_1F1_int (int m, int n, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_1F1_int_e (int m, int n, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the confluent hypergeometric function
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: not texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: {}_1F_1(m,n,x) = M(m,n,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: 1F1(m,n,x) = M(m,n,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
for integer parameters :data:`m`, :data:`n`.
|
|
Packit |
67cb25 |
.. exceptions:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_1F1 (double a, double b, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_1F1_e (double a, double b, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the confluent hypergeometric function
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: not texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: {}_1F_1(a,b,x) = M(a,b,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: 1F1(a,b,x) = M(a,b,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
for general parameters :data:`a`, :data:`b`.
|
|
Packit |
67cb25 |
.. exceptions:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_U_int (int m, int n, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_U_int_e (int m, int n, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the confluent hypergeometric function
|
|
Packit |
67cb25 |
:math:`U(m,n,x)` for integer parameters :data:`m`, :data:`n`.
|
|
Packit |
67cb25 |
.. exceptions:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_hyperg_U_int_e10_e (int m, int n, double x, gsl_sf_result_e10 * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the confluent hypergeometric function
|
|
Packit |
67cb25 |
:math:`U(m,n,x)` for integer parameters :data:`m`, :data:`n` using the
|
|
Packit |
67cb25 |
:type:`gsl_sf_result_e10` type to return a result with extended range.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_U (double a, double b, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_U_e (double a, double b, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the confluent hypergeometric function :math:`U(a,b,x)`.
|
|
Packit |
67cb25 |
.. exceptions:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: int gsl_sf_hyperg_U_e10_e (double a, double b, double x, gsl_sf_result_e10 * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
This routine computes the confluent hypergeometric function
|
|
Packit |
67cb25 |
:math:`U(a,b,x)` using the :type:`gsl_sf_result_e10` type to return a
|
|
Packit |
67cb25 |
result with extended range.
|
|
Packit |
67cb25 |
.. exceptions:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_2F1 (double a, double b, double c, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_2F1_e (double a, double b, double c, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the Gauss hypergeometric function
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: not texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: {}_2F_1(a,b,c,x) = F(a,b,c,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: 2F1(a,b,c,x) = F(a,b,c,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
for :math:`|x| < 1`. If the arguments :math:`(a,b,c,x)` are too close to a singularity then
|
|
Packit |
67cb25 |
the function can return the error code :macro:`GSL_EMAXITER` when the
|
|
Packit |
67cb25 |
series approximation converges too slowly. This occurs in the region of
|
|
Packit |
67cb25 |
:math:`x = 1`, :math:`c - a - b = m` for integer m.
|
|
Packit |
67cb25 |
.. exceptions:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_2F1_conj (double aR, double aI, double c, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_2F1_conj_e (double aR, double aI, double c, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the Gauss hypergeometric function
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: not texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: {}_2F_1(a_R + i a_I, aR - i aI, c, x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: 2F1(a_R + i a_I, aR - i aI, c, x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
with complex parameters for :math:`|x| < 1`.
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_2F1_renorm (double a, double b, double c, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_2F1_renorm_e (double a, double b, double c, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the renormalized Gauss hypergeometric function
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: not texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: {}_2F_1(a,b,c,x) / \Gamma(c)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: 2F1(a,b,c,x) / \Gamma(c)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
for :math:`|x| < 1`.
|
|
Packit |
67cb25 |
.. exceptions:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_2F1_conj_renorm (double aR, double aI, double c, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_2F1_conj_renorm_e (double aR, double aI, double c, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the renormalized Gauss hypergeometric function
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: not texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: {}_2F_1(a_R + i a_I, a_R - i a_I, c, x) / \Gamma(c)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: 2F1(a_R + i a_I, a_R - i a_I, c, x) / \Gamma(c)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
for :math:`|x| < 1`.
|
|
Packit |
67cb25 |
.. exceptions:
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. function:: double gsl_sf_hyperg_2F0 (double a, double b, double x)
|
|
Packit |
67cb25 |
int gsl_sf_hyperg_2F0_e (double a, double b, double x, gsl_sf_result * result)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
These routines compute the hypergeometric function
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: not texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: {}_2F_0(a,b,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: 2F0(a,b,x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
The series representation is a divergent hypergeometric series.
|
|
Packit |
67cb25 |
However, for :math:`x < 0` we have
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: not texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: {}_2F_0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. only:: texinfo
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. math:: 2F0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
.. exceptions: GSL_EDOM
|