mirror of
https://github.com/boostorg/math.git
synced 2026-01-26 18:52:10 +00:00
158 lines
6.4 KiB
Plaintext
158 lines
6.4 KiB
Plaintext
[library Math Toolkit
|
|
[quickbook 1.3]
|
|
[copyright 2006 John Maddock and Paul A. Bristow]
|
|
[purpose Various Special Functions, Statistical Distributions, and Numerical Tools]
|
|
[license
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
[@http://www.boost.org/LICENSE_1_0.txt])
|
|
]
|
|
[authors [Maddock, John], [Bristow, Paul A.]]
|
|
[category math]
|
|
[/last-revision $Date$]
|
|
]
|
|
|
|
[def __effects [*Effects: ]]
|
|
[def __formula [*Formula: ]]
|
|
[def __exm1 '''<code>e<superscript>x</superscript> - 1</code>''']
|
|
[def __ex '''<code>e<superscript>x</superscript></code>''']
|
|
[def __te '''2ɛ''']
|
|
[def __lanczos [link lanczos Lanczos approximation]]
|
|
[def __zero_error [link zero_error effectively zero error]]
|
|
[def __NTL_RR [@http://shoup.net/ntl/doc/RR.txt NTL::RR]]
|
|
[def __NTL_quad_float [@http://shoup.net/ntl/doc/quad_float.txt NTL::quad_float]]
|
|
|
|
[def __godfrey [link godfrey Godfrey]]
|
|
[def __pugh [link pugh Pugh]]
|
|
|
|
[def __caution This is not an official Boost library, it is a library under
|
|
construction, the code is fully functional and robust, but
|
|
interfaces, library structure, and function and distribution names
|
|
may be changed without notice.]
|
|
|
|
[def __domain_error [link domain_error domain_error]]
|
|
[def __pole_error [link pole_error pole_error]]
|
|
[def __overflow_error [link overflow_error overflow_error]]
|
|
[def __underflow_error [link underflow_error underflow_error]]
|
|
[def __denorm_error [link denorm_error denorm_error]]
|
|
[def __logic_error [link logic_error logic_error]]
|
|
[def __checked_narrowing_cast [link checked_narrowing_cast checked_narrowing_cast]]
|
|
|
|
[template super[x]'''<superscript>'''[x]'''</superscript>''']
|
|
[template sub[x]'''<subscript>'''[x]'''</subscript>''']
|
|
|
|
[section:intro Introduction]
|
|
|
|
This library is work in progress, it is intended to fulfil several needs:
|
|
|
|
# To provide a reasonably comprehensive set of
|
|
[@http://en.wikipedia.org/wiki/List_of_probability_distributions statistical distributions],
|
|
upon which higher level statistical tests can be built.
|
|
The initial focus is on the central
|
|
[@http://en.wikipedia.org/wiki/Univariate univariate ]
|
|
[@http://mathworld.wolfram.com/StatisticalDistribution.html distributions].\n
|
|
Both [@http://mathworld.wolfram.com/ContinuousDistribution.html continuous]
|
|
(like [@http://mathworld.wolfram.com/NormalDistribution.html normal]
|
|
& [@http://mathworld.wolfram.com/F-Distribution.html Fisher])
|
|
and [@http://mathworld.wolfram.com/DiscreteDistribution.html discrete]
|
|
(like [@http://mathworld.wolfram.com/BinomialDistribution.html binomial]
|
|
& [@http://mathworld.wolfram.com/PoissonDistribution.html Poisson]) distributions are provided.
|
|
|
|
# To provide a small number of high quality
|
|
[@http://en.wikipedia.org/wiki/Special_functions special functions],
|
|
initially these will be concentrated on functions used in statistical applications.
|
|
The functions currently implemented are the gamma, beta & erf functions
|
|
along with the incomplete gamma and beta functions (four variants
|
|
of each) and all the possible inverses of these. All the implementations
|
|
are fully generic and support the use of arbitrary "real-number" types,
|
|
although they are optimised for use with types with known-about
|
|
[@http://en.wikipedia.org/wiki/Significand significand (or mantissa)]
|
|
sizes: typically `float`, `double` or `long double`.
|
|
Use of these functions with interval arithmetic (Boost.Interval)
|
|
isn't quite supported yet, but it's something that needs to be investigated.
|
|
|
|
# To provide at least some of the tools required to implement
|
|
mathematical special functions, hopefully the presence of
|
|
these will encourage other authors to contribute more special
|
|
function implementations in the future. Currently implemented
|
|
are helpers for the evaluation of infinite series, continued
|
|
fractions and rational approximations. There are also
|
|
a fairly comprehensive set of root finding algorithms:
|
|
both with and without derivative support. There are also classes
|
|
for the manipulation of polynomials, for testing a special function
|
|
against tabulated test data, and for the rapid generation of test
|
|
data and/or data for output to an external graphing application.
|
|
|
|
# To provide the most common
|
|
[@http://en.wikipedia.org/wiki/List_of_probability_distributions probability distributions]
|
|
used for statistics as C++ templated objects, fully generic,
|
|
to support the use of arbitrary "real-number" types, so that they can be used not only with
|
|
built-in floating-point types but also User-Defined Types (UDT) conforming to the
|
|
real_concept archetype.
|
|
These distributions are implemented using the special functions above.
|
|
There are several examples of using the distributions for
|
|
some typical applications in statistics.
|
|
|
|
[endsect][/section:intro Introduction]
|
|
|
|
[section:dist Statistical Distributions and Functions]
|
|
[include dist_tutorial.qbk]
|
|
[include dist_reference.qbk]
|
|
[endsect][/section:dist Statistical Distributions and Functions]
|
|
|
|
[section:special Special Functions]
|
|
[include tgamma.qbk]
|
|
[include lgamma.qbk]
|
|
[include digamma.qbk]
|
|
[include gamma_ratios.qbk]
|
|
[include factorials.qbk]
|
|
[include igamma.qbk]
|
|
[include igamma_inv.qbk]
|
|
[include erf.qbk]
|
|
[include erf_inv.qbk]
|
|
[include beta.qbk]
|
|
[include ibeta.qbk]
|
|
[include ibeta_inv.qbk]
|
|
[include beta_gamma_derivatives.qbk]
|
|
[include fpclassify.qbk]
|
|
[include error_handling.qbk]
|
|
[endsect][/section:special Special Functions]
|
|
|
|
[section:toolkit Toolkit]
|
|
[include series.qbk]
|
|
[include fraction.qbk]
|
|
[include rational.qbk]
|
|
[include roots.qbk]
|
|
[include roots_without_derivatives.qbk]
|
|
[include minima.qbk]
|
|
[endsect][/section:toolkit Toolkit]
|
|
|
|
[section:intenals Tools for Internal Testing and Development Use (Experimental)]
|
|
[include internals_overview.qbk]
|
|
[include polynomial.qbk]
|
|
[include minimax.qbk]
|
|
[include relative_error.qbk]
|
|
[include test_data.qbk]
|
|
[endsect]
|
|
|
|
[section:Using_UDT Use with User Defined Floating-Point Types]
|
|
[include concepts.qbk]
|
|
[endsect][/section:Using_UDT Use with User Defined Floating-Point Types]
|
|
|
|
[section:backgrounders Backgrounders]
|
|
[include error.qbk]
|
|
[include lanczos.qbk]
|
|
[endsect][/section:backgrounds Backgrounders]
|
|
|
|
[section:status Status and Roadmap]
|
|
[include roadmap.qbk]
|
|
[include issues.qbk]
|
|
[endsect][/section:status Status and Roadmap]
|
|
|
|
[/ math.qbk
|
|
Copyright 2006 John Maddock and Paul A. Bristow.
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
http://www.boost.org/LICENSE_1_0.txt).
|
|
]
|