NAME¶
math::combinatorics - Combinatorial functions in the Tcl Math Library
SYNOPSIS¶
package require
Tcl 8.2
package require
math ?1.2.3?
::math::ln_Gamma z
::math::factorial x
::math::choose n k
::math::Beta z w
DESCRIPTION¶
The
math package contains implementations of several functions useful in
combinatorial problems.
COMMANDS¶
- ::math::ln_Gamma z
- Returns the natural logarithm of the Gamma function for the argument
z.
The Gamma function is defined as the improper integral from zero to positive
infinity of
The approximation used in the Tcl Math Library is from Lanczos,
ISIAM J.
Numerical Analysis, series B, volume 1, p. 86. For "
x >
1", the absolute error of the result is claimed to be smaller than
5.5*10**-10 -- that is, the resulting value of Gamma when
- is computed is expected to be precise to better than nine significant
figures.
- ::math::factorial x
- Returns the factorial of the argument x.
For integer x, 0 <= x <= 12, an exact integer result is
returned.
For integer x, 13 <= x <= 21, an exact floating-point
result is returned on machines with IEEE floating point.
For integer x, 22 <= x <= 170, the result is exact to 1
ULP.
For real x, x >= 0, the result is approximated by computing
Gamma(x+1) using the ::math::ln_Gamma function, and the
result is expected to be precise to better than nine significant figures.
It is an error to present x <= -1 or x > 170, or a value
of x that is not numeric.
- ::math::choose n k
- Returns the binomial coefficient C(n, k)
- If both parameters are integers and the result fits in 32 bits, the result
is rounded to an integer.
Integer results are exact up to at least n = 34. Floating point
results are precise to better than nine significant figures.
- ::math::Beta z w
- Returns the Beta function of the parameters z and w.
Beta(z,w) = Beta(w,z) = Gamma(z) * Gamma(w) / Gamma(z+w)
- Results are returned as a floating point number precise to better than
nine significant digits provided that w and z are both at
least 1.
BUGS, IDEAS, FEEDBACK¶
This document, and the package it describes, will undoubtedly contain bugs and
other problems. Please report such in the category
math of the
Tcllib Trackers [
http://core.tcl.tk/tcllib/reportlist]. Please also
report any ideas for enhancements you may have for either package and/or
documentation.
CATEGORY¶
Mathematics