@cindex hypergeometric functions @cindex 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}. @deftypefun double gsl_sf_hyperg_0F1 (double @var{c}, double @var{x}) @deftypefunx int gsl_sf_hyperg_0F1_e (double @var{c}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the hypergeometric function @c{${}_0F_1(c,x)$} @math{0F1(c,x)}. @comment It is related to Bessel functions @comment 0F1[c,x] = @comment Gamma[c] x^(1/2(1-c)) I_(c-1)(2 Sqrt[x]) @comment Gamma[c] (-x)^(1/2(1-c)) J_(c-1)(2 Sqrt[-x]) @comment exceptions: GSL_EOVRFLW, GSL_EUNDRFLW @end deftypefun @deftypefun double gsl_sf_hyperg_1F1_int (int @var{m}, int @var{n}, double @var{x}) @deftypefunx int gsl_sf_hyperg_1F1_int_e (int @var{m}, int @var{n}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the confluent hypergeometric function @c{${}_1F_1(m,n,x) = M(m,n,x)$} @math{1F1(m,n,x) = M(m,n,x)} for integer parameters @var{m}, @var{n}. @comment exceptions: @end deftypefun @deftypefun double gsl_sf_hyperg_1F1 (double @var{a}, double @var{b}, double @var{x}) @deftypefunx int gsl_sf_hyperg_1F1_e (double @var{a}, double @var{b}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the confluent hypergeometric function @c{${}_1F_1(a,b,x) = M(a,b,x)$} @math{1F1(a,b,x) = M(a,b,x)} for general parameters @var{a}, @var{b}. @comment exceptions: @end deftypefun @deftypefun double gsl_sf_hyperg_U_int (int @var{m}, int @var{n}, double @var{x}) @deftypefunx int gsl_sf_hyperg_U_int_e (int @var{m}, int @var{n}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the confluent hypergeometric function @math{U(m,n,x)} for integer parameters @var{m}, @var{n}. @comment exceptions: @end deftypefun @deftypefun int gsl_sf_hyperg_U_int_e10_e (int @var{m}, int @var{n}, double @var{x}, gsl_sf_result_e10 * @var{result}) This routine computes the confluent hypergeometric function @math{U(m,n,x)} for integer parameters @var{m}, @var{n} using the @code{gsl_sf_result_e10} type to return a result with extended range. @end deftypefun @deftypefun double gsl_sf_hyperg_U (double @var{a}, double @var{b}, double @var{x}) @deftypefunx int gsl_sf_hyperg_U_e (double @var{a}, double @var{b}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the confluent hypergeometric function @math{U(a,b,x)}. @comment exceptions: @end deftypefun @deftypefun int gsl_sf_hyperg_U_e10_e (double @var{a}, double @var{b}, double @var{x}, gsl_sf_result_e10 * @var{result}) This routine computes the confluent hypergeometric function @math{U(a,b,x)} using the @code{gsl_sf_result_e10} type to return a result with extended range. @comment exceptions: @end deftypefun @deftypefun double gsl_sf_hyperg_2F1 (double @var{a}, double @var{b}, double @var{c}, double @var{x}) @deftypefunx int gsl_sf_hyperg_2F1_e (double @var{a}, double @var{b}, double @var{c}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the Gauss hypergeometric function @c{${}_2F_1(a,b,c,x)$} @math{2F1(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 @code{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. @comment exceptions: @end deftypefun @deftypefun double gsl_sf_hyperg_2F1_conj (double @var{aR}, double @var{aI}, double @var{c}, double @var{x}) @deftypefunx int gsl_sf_hyperg_2F1_conj_e (double @var{aR}, double @var{aI}, double @var{c}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the Gauss hypergeometric function @c{${}_2F_1(a_R + i a_I, aR - i aI, c, x)$} @math{2F1(a_R + i a_I, a_R - i a_I, c, x)} with complex parameters for @math{|x| < 1}. exceptions: @end deftypefun @deftypefun double gsl_sf_hyperg_2F1_renorm (double @var{a}, double @var{b}, double @var{c}, double @var{x}) @deftypefunx int gsl_sf_hyperg_2F1_renorm_e (double @var{a}, double @var{b}, double @var{c}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the renormalized Gauss hypergeometric function @c{${}_2F_1(a,b,c,x) / \Gamma(c)$} @math{2F1(a,b,c,x) / \Gamma(c)} for @math{|x| < 1}. @comment exceptions: @end deftypefun @deftypefun double gsl_sf_hyperg_2F1_conj_renorm (double @var{aR}, double @var{aI}, double @var{c}, double @var{x}) @deftypefunx int gsl_sf_hyperg_2F1_conj_renorm_e (double @var{aR}, double @var{aI}, double @var{c}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the renormalized Gauss hypergeometric function @c{${}_2F_1(a_R + i a_I, a_R - i a_I, c, x) / \Gamma(c)$} @math{2F1(a_R + i a_I, a_R - i a_I, c, x) / \Gamma(c)} for @math{|x| < 1}. @comment exceptions: @end deftypefun @deftypefun double gsl_sf_hyperg_2F0 (double @var{a}, double @var{b}, double @var{x}) @deftypefunx int gsl_sf_hyperg_2F0_e (double @var{a}, double @var{b}, double @var{x}, gsl_sf_result * @var{result}) These routines compute the hypergeometric function @c{${}_2F_0(a,b,x)$} @math{2F0(a,b,x)}. The series representation is a divergent hypergeometric series. However, for @math{x < 0} we have @c{${}_2F_0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)$} @math{2F0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)} @comment exceptions: GSL_EDOM @end deftypefun