Next: Pochhammer Symbol, Previous: Gamma Functions, Up: Gamma and Beta Functions [Index]

Although factorials can be computed from the Gamma function, using
the relation *n! = \Gamma(n+1)* for non-negative integer *n*,
it is usually more efficient to call the functions in this section,
particularly for small values of *n*, whose factorial values are
maintained in hardcoded tables.

- Function:
*double***gsl_sf_fact***(unsigned int*`n`) - Function:
*int***gsl_sf_fact_e***(unsigned int*`n`, gsl_sf_result *`result`) -
These routines compute the factorial

*n!*. The factorial is related to the Gamma function by*n! = \Gamma(n+1)*. The maximum value of*n*such that*n!*is not considered an overflow is given by the macro`GSL_SF_FACT_NMAX`

and is 170.

- Function:
*double***gsl_sf_doublefact***(unsigned int*`n`) - Function:
*int***gsl_sf_doublefact_e***(unsigned int*`n`, gsl_sf_result *`result`) -
These routines compute the double factorial

*n!! = n(n-2)(n-4) \dots*. The maximum value of*n*such that*n!!*is not considered an overflow is given by the macro`GSL_SF_DOUBLEFACT_NMAX`

and is 297.

- Function:
*double***gsl_sf_lnfact***(unsigned int*`n`) - Function:
*int***gsl_sf_lnfact_e***(unsigned int*`n`, gsl_sf_result *`result`) -
These routines compute the logarithm of the factorial of

`n`,*\log(n!)*. The algorithm is faster than computing*\ln(\Gamma(n+1))*via`gsl_sf_lngamma`

for*n < 170*, but defers for larger`n`.

- Function:
*double***gsl_sf_lndoublefact***(unsigned int*`n`) - Function:
*int***gsl_sf_lndoublefact_e***(unsigned int*`n`, gsl_sf_result *`result`) -
These routines compute the logarithm of the double factorial of

`n`,*\log(n!!)*.

- Function:
*double***gsl_sf_choose***(unsigned int*`n`, unsigned int`m`) - Function:
*int***gsl_sf_choose_e***(unsigned int*`n`, unsigned int`m`, gsl_sf_result *`result`) -
These routines compute the combinatorial factor

`n choose m`

*= n!/(m!(n-m)!)*

- Function:
*double***gsl_sf_lnchoose***(unsigned int*`n`, unsigned int`m`) - Function:
*int***gsl_sf_lnchoose_e***(unsigned int*`n`, unsigned int`m`, gsl_sf_result *`result`) -
These routines compute the logarithm of

`n choose m`

. This is equivalent to the sum*\log(n!) - \log(m!) - \log((n-m)!)*.

- Function:
*double***gsl_sf_taylorcoeff***(int*`n`, double`x`) - Function:
*int***gsl_sf_taylorcoeff_e***(int*`n`, double`x`, gsl_sf_result *`result`) -
These routines compute the Taylor coefficient

*x^n / n!*for*x >= 0*,*n >= 0*.

Next: Pochhammer Symbol, Previous: Gamma Functions, Up: Gamma and Beta Functions [Index]