Blame doc/specfunc-hyperg.rst

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