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).\]