...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Prototype defining the essential features
of a RealType class (see real_concept.hpp). Most applications will use
double
as the RealType (and
short typedef
names of distributions
are reserved for this type where possible), a few will use float
or long
double
, but it is also possible
to use higher precision types like NTL::RR,
GNU Multiple Precision Arithmetic Library,
GNU MPFR library that conform
to the requirements specified by real_concept.
Templated definition of some highly accurate math constants (in constants.hpp).
Distributions used in mathematics and, especially, statistics: Gaussian, Students-t, Fisher, Binomial etc
Policy framework, for handling user requested behaviour modifications.
Math functions generally regarded as 'special', like beta, cbrt, erf, gamma, lgamma, tgamma ... (Some of these are specified in C++, and C99/TR1, and perhaps TR2).
Tools used by functions, like evaluating polynomials, continued fractions, root finding, precision and limits, and by tests. Some will find application outside this package.
Documentation source files in Quickbook format processed into html and pdf formats.
Examples and demos of using math functions and distributions.
Performance testing and tuning program.
Test files, in many .cpp files, most using Boost.Test (some with test data as .ipp files, usually generated using NTL RR type with ample precision for the type, often for precisions suitable for up to 256-bit significand real types).
Programs used to generate test data. Also changes to the NTL released package to provide a few additional (and vital) extra features.