.. 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