@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})
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
