1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
|
.. index::
single: hypergeometric functions
single: confluent hypergeometric functions
Hypergeometric functions are described in Abramowitz & Stegun, Chapters
13 and 15. These functions are declared in the header file
:file:`gsl_sf_hyperg.h`.
.. function:: double gsl_sf_hyperg_0F1 (double c, double x)
int gsl_sf_hyperg_0F1_e (double c, double x, gsl_sf_result * result)
These routines compute the hypergeometric function
.. only:: not texinfo
.. math:: {}_0F_1(c,x)
.. only:: texinfo
.. math:: 0F1(c,x)
.. It is related to Bessel functions
.. 0F1[c,x] =
.. Gamma[c] x^(1/2(1-c)) I_(c-1)(2 Sqrt[x])
.. Gamma[c] (-x)^(1/2(1-c)) J_(c-1)(2 Sqrt[-x])
.. exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
.. function:: double gsl_sf_hyperg_1F1_int (int m, int n, double x)
int gsl_sf_hyperg_1F1_int_e (int m, int n, double x, gsl_sf_result * result)
These routines compute the confluent hypergeometric function
.. only:: not texinfo
.. math:: {}_1F_1(m,n,x) = M(m,n,x)
.. only:: texinfo
.. math:: 1F1(m,n,x) = M(m,n,x)
for integer parameters :data:`m`, :data:`n`.
.. exceptions:
.. function:: double gsl_sf_hyperg_1F1 (double a, double b, double x)
int gsl_sf_hyperg_1F1_e (double a, double b, double x, gsl_sf_result * result)
These routines compute the confluent hypergeometric function
.. only:: not texinfo
.. math:: {}_1F_1(a,b,x) = M(a,b,x)
.. only:: texinfo
.. math:: 1F1(a,b,x) = M(a,b,x)
for general parameters :data:`a`, :data:`b`.
.. exceptions:
.. function:: double gsl_sf_hyperg_U_int (int m, int n, double x)
int gsl_sf_hyperg_U_int_e (int m, int n, double x, gsl_sf_result * result)
These routines compute the confluent hypergeometric function
:math:`U(m,n,x)` for integer parameters :data:`m`, :data:`n`.
.. exceptions:
.. function:: int gsl_sf_hyperg_U_int_e10_e (int m, int n, double x, gsl_sf_result_e10 * result)
This routine computes the confluent hypergeometric function
:math:`U(m,n,x)` for integer parameters :data:`m`, :data:`n` using the
:type:`gsl_sf_result_e10` type to return a result with extended range.
.. function:: double gsl_sf_hyperg_U (double a, double b, double x)
int gsl_sf_hyperg_U_e (double a, double b, double x, gsl_sf_result * result)
These routines compute the confluent hypergeometric function :math:`U(a,b,x)`.
.. exceptions:
.. function:: int gsl_sf_hyperg_U_e10_e (double a, double b, double x, gsl_sf_result_e10 * result)
This routine computes the confluent hypergeometric function
:math:`U(a,b,x)` using the :type:`gsl_sf_result_e10` type to return a
result with extended range.
.. exceptions:
.. function:: double gsl_sf_hyperg_2F1 (double a, double b, double c, double x)
int gsl_sf_hyperg_2F1_e (double a, double b, double c, double x, gsl_sf_result * result)
These routines compute the Gauss hypergeometric function
.. only:: not texinfo
.. math:: {}_2F_1(a,b,c,x) = F(a,b,c,x)
.. only:: texinfo
.. math:: 2F1(a,b,c,x) = F(a,b,c,x)
for :math:`|x| < 1`. If the arguments :math:`(a,b,c,x)` are too close to a singularity then
the function can return the error code :macro:`GSL_EMAXITER` when the
series approximation converges too slowly. This occurs in the region of
:math:`x = 1`, :math:`c - a - b = m` for integer m.
.. exceptions:
.. function:: double gsl_sf_hyperg_2F1_conj (double aR, double aI, double c, double x)
int gsl_sf_hyperg_2F1_conj_e (double aR, double aI, double c, double x, gsl_sf_result * result)
These routines compute the Gauss hypergeometric function
.. only:: not texinfo
.. math:: {}_2F_1(a_R + i a_I, aR - i aI, c, x)
.. only:: texinfo
.. math:: 2F1(a_R + i a_I, aR - i aI, c, x)
with complex parameters for :math:`|x| < 1`.
.. function:: double gsl_sf_hyperg_2F1_renorm (double a, double b, double c, double x)
int gsl_sf_hyperg_2F1_renorm_e (double a, double b, double c, double x, gsl_sf_result * result)
These routines compute the renormalized Gauss hypergeometric function
.. only:: not texinfo
.. math:: {}_2F_1(a,b,c,x) / \Gamma(c)
.. only:: texinfo
.. math:: 2F1(a,b,c,x) / \Gamma(c)
for :math:`|x| < 1`.
.. exceptions:
.. function:: double gsl_sf_hyperg_2F1_conj_renorm (double aR, double aI, double c, double x)
int gsl_sf_hyperg_2F1_conj_renorm_e (double aR, double aI, double c, double x, gsl_sf_result * result)
These routines compute the renormalized Gauss hypergeometric function
.. only:: not texinfo
.. math:: {}_2F_1(a_R + i a_I, a_R - i a_I, c, x) / \Gamma(c)
.. only:: texinfo
.. math:: 2F1(a_R + i a_I, a_R - i a_I, c, x) / \Gamma(c)
for :math:`|x| < 1`.
.. exceptions:
.. function:: double gsl_sf_hyperg_2F0 (double a, double b, double x)
int gsl_sf_hyperg_2F0_e (double a, double b, double x, gsl_sf_result * result)
These routines compute the hypergeometric function
.. only:: not texinfo
.. math:: {}_2F_0(a,b,x)
.. only:: texinfo
.. math:: 2F0(a,b,x)
The series representation is a divergent hypergeometric series.
However, for :math:`x < 0` we have
.. only:: not texinfo
.. math:: {}_2F_0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)
.. only:: texinfo
.. math:: 2F0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)
.. exceptions: GSL_EDOM
|