Gamma and Beta Functions#
This following routines compute the gamma and beta functions in their full and incomplete forms.
Gamma Functions#
The Gamma function is defined by the following integral,
It is related to the factorial function by \(\Gamma(n)=(n-1)!\) for positive integer \(n\). Further information on the Gamma function can be found in Abramowitz & Stegun, Chapter 6.
-
gsl_sf_gamma(x)#
This routine computes the Gamma function \(\Gamma(x)\), subject to \(x\) not being a negative integer or zero. The function is computed using the real Lanczos method. The maximum value of \(x\) such that \(\Gamma(x)\) is not considered an overflow is 171.0.
-
gsl_sf_lngamma(x)#
This routine computes the logarithm of the Gamma function, \(\log(\Gamma(x))\), subject to \(x\) not being a negative integer or zero. For \(x<0\) the real part of \(\log(\Gamma(x))\) is returned, which is equivalent to \(\log(|\Gamma(x)|)\). The function is computed using the real Lanczos method.
-
gsl_sf_gammastar(x)#
This routine computes the regulated Gamma Function \(\Gamma^*(x)\) for \(x > 0\). The regulated gamma function is given by,
\[\Gamma^*(x) = \Gamma(x)/(\sqrt{2\pi} x^{(x-1/2)} \exp(-x)) = (1 + (1/12x) + ...) \text{ for } x \to \infty\]and is a useful suggestion of Temme.
-
gsl_sf_gammainv(x)#
This routine computes the reciprocal of the gamma function, \(1/\Gamma(x)\) using the real Lanczos method.
Pochhammer Symbol#
-
gsl_sf_poch(a, x)#
This routine computes the Pochhammer symbol \((a)_x = \Gamma(a + x)/\Gamma(a)\). The Pochhammer symbol is also known as the Apell symbol and sometimes written as \((a,x)\). When \(a\) and \(a+x\) are negative integers or zero, the limiting value of the ratio is returned.
-
gsl_sf_lnpoch(a, x)#
This routine computes the logarithm of the Pochhammer symbol, \(\log((a)_x) = \log(\Gamma(a + x)/\Gamma(a))\).
-
gsl_sf_pochrel(a, x)#
This routine computes the relative Pochhammer symbol \(((a)_x - 1)/x\) where \((a)_x = \Gamma(a + x)/\Gamma(a)\).
Incomplete Gamma Functions#
-
gsl_sf_gamma_inc(a, x)#
This routine computes the unnormalized incomplete Gamma Function \(\Gamma(a,x) = \int_x^\infty t^{a-1} \exp(-t) dt\) for a real and \(x \geq 0\).
-
gsl_sf_gamma_inc_Q(a, x)#
This routine computes the normalized incomplete Gamma Function \(Q(a,x) = 1/\Gamma(a) \int_x^\infty t^{a-1} \exp(-t) dt\) for \(a > 0\), \(x \geq 0\).
-
gsl_sf_gamma_inc_P(a, x)#
This routine computes the complementary normalized incomplete Gamma Function
\[P(a,x) = 1 - Q(a,x) = 1/\Gamma(a) \int_0^x t^{a-1} \exp(-t) dt \text{ for } a > 0, x \geq 0.\]Note that Abramowitz & Stegun call \(P(a,x)\) the incomplete gamma function (section 6.5).
Beta Functions#
-
gsl_sf_beta(a, b)#
This routine computes the Beta Function, \(\operatorname{B}(a,b) = \Gamma(a)\Gamma(b)/\Gamma(a+b)\) subject to \(a\) and \(b\) not being negative integers.
-
gsl_sf_lnbeta(a, b)#
This routine computes the logarithm of the Beta Function, \(\log(\operatorname{B}(a,b))\) subject to \(a\) and \(b\) not being negative integers.
Incomplete Beta Function#
-
gsl_sf_beta_inc(a, b, x)#
This routine computes the normalized incomplete Beta function \(I_x(a,b) = \operatorname{B}_x(a,b)/\operatorname{B}(a,b)\) where \(\operatorname{B}_x(a,b) = \int_0^x t^{a-1} (1-t)^{b-1} dt\) for \(0 \leq x \leq 1\). For \(a > 0\), \(b > 0\) the value is computed using a continued fraction expansion. For all other values it is computed using the relation
\[I_x(a,b) = (1/a) x^a {}_2F_1(a,1-b,a+1,x)/\operatorname{B}(a,b).\]