
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: Statistical distributions: ~~~~~~~~~~~~~~~~~~~~~~~~~~ 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. Special Functions: ~~~~~~~~~~~~~~~~~~ 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, hypot). 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. Misc Tools: ~~~~~~~~~~~ Series Evaluation, Continued Fraction Evaluation, Root Finding With Derivatives, Root Finding Without Derivatives, Function Minimization. Availability: ~~~~~~~~~~~~~ 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. Instructions: ~~~~~~~~~~~~~ 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). Review Manager: ~~~~~~~~~~~~~~~ Should some kind soul care to volunteer, we would be very grateful :-) Many thanks for your consideration, John Maddock.