From: John Maddock (john_at_[hidden])
Date: 2007-01-05 08:05:26
The "Math Toolkit" has now matured to the point where Paul Bristow and I
would like to ask for a formal review.
The toolkit contains:
Bernoulli, Beta, Binomial, Cauchy-Lorentz, Chi Squared, Exponential, Extreme
Value, F, Gamma (and Erlang), Log Normal, Negative Binomial, Normal
(Gaussian), Poisson, Students t, Triangular, Weibull, Uniform.
Operations on distributions:
cdf, cdf complement, cumulative hazard, hazard, kurtosis, kurtosis_excess,
mean, median, mode, pdf, range, quantile, quantile from the complement,
skewness, standard_deviation, support, variance.
The focus is twofold: functions required for the implementation of the
statistical distributions, and functions that are part of TR1:
Gamma Functions (Gamma, Log Gamma, Digamma, Ratios of Gamma Functions,
Incomplete Gamma Functions, Incomplete Gamma Function Inverses, Derivative
of the Incomplete Gamma Function).
Factorials and Binomial Coefficients (Factorial, Double Factorial, Rising
Factorial, Falling Factorial, Binomial Coefficients).
Beta Functions (Beta, Incomplete Beta Functions, Incomplete Beta Function
Inverses, Derivative of the Incomplete Beta Function).
Error Functions (erf/erc, Error Function Inverses).
Polynomials (Legendre (and Associated) Polynomials, Laguerre (and
Associated) Polynomials, Hermite Polynomials, Spherical Harmonics).
Elliptic Integrals(Carlson Form, Elliptic Integrals of the First Kind -
Legendre Form, Elliptic Integrals of the Second Kind - Legendre Form,
Elliptic Integrals of the Third Kind - Legendre Form).
Logs, Powers, Roots and Exponentials (log1p, expm1, cbrt, sqrt1pm1, powm1,
Sinus Cardinal and Hyperbolic Sinus Cardinal Functions (sinc_pi, sinhc_pi).
Inverse Hyperbolic Functions (acosh, asinh, atanh).
Floating Point Classification: Infinities and NaN's
Unified Error Handling.
Series Evaluation, Continued Fraction Evaluation, Root Finding With
Derivatives, Root Finding Without Derivatives, Function Minimization.
Head to the Boost Vault (http://boost-consulting.com/vault) select the
"Math - Numerics" directory, and you will find:
math-toolkit-code.tar.bz2 Headers and tests: note only available in bz2
format due to size restrictions in the vault :-( If this causes undue
problems let me know.
math-toolkit-docs.zip HTML format docs.
math_toolkit.pdf PDF format docs.
Extract to a directory *separate* from your boost tree, then set the
environment variable BOOST_ROOT to point to a copy of boost-1.34 (release
branch cvs) or to 1.35 (cvs HEAD). Sorry but Boost-1.33.x or earlier won't
work. The Jamfiles should then "just work" and enable testing of the
library without having to integrate into your Boost tree. Please note that
in order to catch regressions the tolerances for the tests are set quite
low: when they are first run on a new platform many tests will very likely
fail, a human eyeball then has to be cast over the results and judge whether
the error rates are acceptable or whether they represent real issues.
Currently the lib has been tested on Win32, Linux, HP-UX and FreeBSD with a
variety of compilers (VC++ Intel, gcc, HP aCC).
Should some kind soul care to volunteer, we would be very grateful :-)
Many thanks for your consideration,
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk