mirror of
https://github.com/boostorg/math.git
synced 2026-01-19 04:22:09 +00:00
Documentation: Update overview.
Add README.md. [CI SKIP]
This commit is contained in:
91
README.md
Normal file
91
README.md
Normal file
@@ -0,0 +1,91 @@
|
||||
Boost Math Library
|
||||
==================
|
||||
|
||||
This library is divided into several interconnected parts:
|
||||
|
||||
===Floating Point Utilities===
|
||||
|
||||
Utility functions for dealing with floating point arithmetic, includes functions for floating point classification (fpclassify, isnan, isinf etc), sign manipulation, rounding, comparison, and computing the distance between floating point numbers.
|
||||
|
||||
===Specific Width Floating Point Types===
|
||||
|
||||
A set of typedefs similar to those provided by <cstdint> but for floating point types.
|
||||
|
||||
===Mathematical Constants===
|
||||
|
||||
A wide range of constants ranging from various multiples of pi, fractions, through to euler's constant etc.
|
||||
|
||||
These are of course usable from template code, or as non-templates with a simplified interface if that is more appropriate.
|
||||
|
||||
===Statistical Distributions===
|
||||
|
||||
Provides a reasonably comprehensive set of statistical distributions, upon which higher level statistical tests can be built.
|
||||
|
||||
The initial focus is on the central univariate distributions. Both continuous (like normal & Fisher) and discrete (like binomial & Poisson) distributions are provided.
|
||||
|
||||
A comprehensive tutorial is provided, along with a series of worked examples illustrating how the library is used to conduct statistical tests.
|
||||
|
||||
===Mathematical Special Functions===
|
||||
|
||||
Provides a small number of high quality special functions, initially these were concentrated on functions used in statistical applications along with those in the Technical Report on C++ Library Extensions.
|
||||
|
||||
The function families 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, plus digamma, various factorial functions, Bessel functions, elliptic integrals, sinus cardinals (along with their hyperbolic variants), inverse hyperbolic functions, Legrendre/Laguerre/Hermite polynomials and various special power and logarithmic functions.
|
||||
|
||||
All the implementations are fully generic and support the use of arbitrary "real-number" types, including Boost.Multiprecision, although they are optimised for use with types with known-about significand (or mantissa) sizes: typically float, double or long double.
|
||||
|
||||
These functions also provide the basis of support for the TR1 special functions.
|
||||
|
||||
===Root Finding and Function Minimisation===
|
||||
|
||||
A comprehensive set of root finding algorithms over the real-line, both with and without derivative support.
|
||||
|
||||
Also function minimisation via Brent's Method.
|
||||
|
||||
===Polynomials and Rational Functions===
|
||||
|
||||
Tools for manipulating polynomials and for efficient evaluation of rationals or polynomials.
|
||||
|
||||
===Interpolation===
|
||||
|
||||
Function interpolation via Barycentic or cubic B_spline approximations.
|
||||
|
||||
===Numerical Integration and Differentiation===
|
||||
|
||||
A reasonably comprehensive set of routines for integration (trapezoidal, Gaus-Legendre, Gaus-Kronrod and double-exponential) and differentiation.
|
||||
|
||||
The integration routines are all usable for functions returning complex results - and as a result for contour integrals as well.
|
||||
|
||||
===Quaternions and Octonions===
|
||||
|
||||
Quaternion and Octonians as class templates similar to std::complex.
|
||||
|
||||
The full documentation is available on [boost.org](http://www.boost.org/doc/libs/release/libs/math).
|
||||
|
||||
## Support, bugs and feature requests ##
|
||||
|
||||
Bugs and feature requests can be reported through the [Gitub issue tracker](https://github.com/boostorg/math/issues)
|
||||
(see [open issues](https://github.com/boostorg/math/issues) and
|
||||
[closed issues](https://github.com/boostorg/math/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aclosed)).
|
||||
|
||||
You can submit your changes through a [pull request](https://github.com/boostorg/math/pulls).
|
||||
|
||||
There is no mailing-list specific to Boost Math, although you can use the general-purpose Boost [mailing-list](http://lists.boost.org/mailman/listinfo.cgi/boost-users) using the tag [math].
|
||||
|
||||
|
||||
## Development ##
|
||||
|
||||
Clone the whole boost project, which includes the individual Boost projects as submodules ([see boost+git doc](https://github.com/boostorg/boost/wiki/Getting-Started)):
|
||||
|
||||
git clone https://github.com/boostorg/boost
|
||||
cd boost
|
||||
git submodule update --init
|
||||
|
||||
The Boost Math Library is located in `libs/math/`.
|
||||
|
||||
### Running tests ###
|
||||
First, make sure you are in `libs/math/test`.
|
||||
You can either run all the tests listed in `Jamfile.v2` or run a single test:
|
||||
|
||||
../../../b2 <- run all tests
|
||||
../../../b2 static_assert_test <- single test
|
||||
|
||||
@@ -122,7 +122,7 @@ This manual is also available in <a href="http://sourceforge.net/projects/boost/
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><p><small>Last revised: October 10, 2018 at 19:16:15 GMT</small></p></td>
|
||||
<td align="left"><p><small>Last revised: October 15, 2018 at 18:11:40 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id1788544"></a>Function Index</h2></div></div></div>
|
||||
<a name="id1800633"></a>Function Index</h2></div></div></div>
|
||||
<p><a class="link" href="s01.html#idx_id_0">1</a> <a class="link" href="s01.html#idx_id_1">2</a> <a class="link" href="s01.html#idx_id_2">4</a> <a class="link" href="s01.html#idx_id_3">A</a> <a class="link" href="s01.html#idx_id_4">B</a> <a class="link" href="s01.html#idx_id_5">C</a> <a class="link" href="s01.html#idx_id_6">D</a> <a class="link" href="s01.html#idx_id_7">E</a> <a class="link" href="s01.html#idx_id_8">F</a> <a class="link" href="s01.html#idx_id_9">G</a> <a class="link" href="s01.html#idx_id_10">H</a> <a class="link" href="s01.html#idx_id_11">I</a> <a class="link" href="s01.html#idx_id_12">J</a> <a class="link" href="s01.html#idx_id_13">K</a> <a class="link" href="s01.html#idx_id_14">L</a> <a class="link" href="s01.html#idx_id_15">M</a> <a class="link" href="s01.html#idx_id_16">N</a> <a class="link" href="s01.html#idx_id_17">O</a> <a class="link" href="s01.html#idx_id_18">P</a> <a class="link" href="s01.html#idx_id_19">Q</a> <a class="link" href="s01.html#idx_id_20">R</a> <a class="link" href="s01.html#idx_id_21">S</a> <a class="link" href="s01.html#idx_id_22">T</a> <a class="link" href="s01.html#idx_id_23">U</a> <a class="link" href="s01.html#idx_id_24">V</a> <a class="link" href="s01.html#idx_id_25">W</a> <a class="link" href="s01.html#idx_id_26">X</a> <a class="link" href="s01.html#idx_id_27">Y</a> <a class="link" href="s01.html#idx_id_28">Z</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id1812129"></a>Class Index</h2></div></div></div>
|
||||
<a name="id1825097"></a>Class Index</h2></div></div></div>
|
||||
<p><a class="link" href="s02.html#idx_id_32">A</a> <a class="link" href="s02.html#idx_id_33">B</a> <a class="link" href="s02.html#idx_id_34">C</a> <a class="link" href="s02.html#idx_id_35">D</a> <a class="link" href="s02.html#idx_id_36">E</a> <a class="link" href="s02.html#idx_id_37">F</a> <a class="link" href="s02.html#idx_id_38">G</a> <a class="link" href="s02.html#idx_id_39">H</a> <a class="link" href="s02.html#idx_id_40">I</a> <a class="link" href="s02.html#idx_id_43">L</a> <a class="link" href="s02.html#idx_id_44">M</a> <a class="link" href="s02.html#idx_id_45">N</a> <a class="link" href="s02.html#idx_id_46">O</a> <a class="link" href="s02.html#idx_id_47">P</a> <a class="link" href="s02.html#idx_id_48">Q</a> <a class="link" href="s02.html#idx_id_49">R</a> <a class="link" href="s02.html#idx_id_50">S</a> <a class="link" href="s02.html#idx_id_51">T</a> <a class="link" href="s02.html#idx_id_52">U</a> <a class="link" href="s02.html#idx_id_54">W</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id1817610"></a>Typedef Index</h2></div></div></div>
|
||||
<a name="id1824230"></a>Typedef Index</h2></div></div></div>
|
||||
<p><a class="link" href="s03.html#idx_id_61">A</a> <a class="link" href="s03.html#idx_id_62">B</a> <a class="link" href="s03.html#idx_id_63">C</a> <a class="link" href="s03.html#idx_id_64">D</a> <a class="link" href="s03.html#idx_id_65">E</a> <a class="link" href="s03.html#idx_id_66">F</a> <a class="link" href="s03.html#idx_id_67">G</a> <a class="link" href="s03.html#idx_id_68">H</a> <a class="link" href="s03.html#idx_id_69">I</a> <a class="link" href="s03.html#idx_id_72">L</a> <a class="link" href="s03.html#idx_id_74">N</a> <a class="link" href="s03.html#idx_id_75">O</a> <a class="link" href="s03.html#idx_id_76">P</a> <a class="link" href="s03.html#idx_id_78">R</a> <a class="link" href="s03.html#idx_id_79">S</a> <a class="link" href="s03.html#idx_id_80">T</a> <a class="link" href="s03.html#idx_id_81">U</a> <a class="link" href="s03.html#idx_id_82">V</a> <a class="link" href="s03.html#idx_id_83">W</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id1821976"></a>Macro Index</h2></div></div></div>
|
||||
<a name="id1828751"></a>Macro Index</h2></div></div></div>
|
||||
<p><a class="link" href="s04.html#idx_id_91">B</a> <a class="link" href="s04.html#idx_id_95">F</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id1821169"></a>Index</h2></div></div></div>
|
||||
<a name="id1831590"></a>Index</h2></div></div></div>
|
||||
<p><a class="link" href="s05.html#idx_id_116">1</a> <a class="link" href="s05.html#idx_id_117">2</a> <a class="link" href="s05.html#idx_id_118">4</a> <a class="link" href="s05.html#idx_id_119">A</a> <a class="link" href="s05.html#idx_id_120">B</a> <a class="link" href="s05.html#idx_id_121">C</a> <a class="link" href="s05.html#idx_id_122">D</a> <a class="link" href="s05.html#idx_id_123">E</a> <a class="link" href="s05.html#idx_id_124">F</a> <a class="link" href="s05.html#idx_id_125">G</a> <a class="link" href="s05.html#idx_id_126">H</a> <a class="link" href="s05.html#idx_id_127">I</a> <a class="link" href="s05.html#idx_id_128">J</a> <a class="link" href="s05.html#idx_id_129">K</a> <a class="link" href="s05.html#idx_id_130">L</a> <a class="link" href="s05.html#idx_id_131">M</a> <a class="link" href="s05.html#idx_id_132">N</a> <a class="link" href="s05.html#idx_id_133">O</a> <a class="link" href="s05.html#idx_id_134">P</a> <a class="link" href="s05.html#idx_id_135">Q</a> <a class="link" href="s05.html#idx_id_136">R</a> <a class="link" href="s05.html#idx_id_137">S</a> <a class="link" href="s05.html#idx_id_138">T</a> <a class="link" href="s05.html#idx_id_139">U</a> <a class="link" href="s05.html#idx_id_140">V</a> <a class="link" href="s05.html#idx_id_141">W</a> <a class="link" href="s05.html#idx_id_142">X</a> <a class="link" href="s05.html#idx_id_143">Y</a> <a class="link" href="s05.html#idx_id_144">Z</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
@@ -67,7 +67,10 @@
|
||||
<dd><div class="index"><ul class="index" style="list-style-type: none; ">
|
||||
<li class="listitem" style="list-style-type: none">
|
||||
<p><span class="index-entry-level-0">About the Math Toolkit</span></p>
|
||||
<div class="index"><ul class="index" style="list-style-type: none; "><li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/main_intro.html" title="About the Math Toolkit"><span class="index-entry-level-1">functions</span></a></p></li></ul></div>
|
||||
<div class="index"><ul class="index" style="list-style-type: none; ">
|
||||
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/main_intro.html" title="About the Math Toolkit"><span class="index-entry-level-1">constants</span></a></p></li>
|
||||
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/main_intro.html" title="About the Math Toolkit"><span class="index-entry-level-1">functions</span></a></p></li>
|
||||
</ul></div>
|
||||
</li>
|
||||
<li class="listitem" style="list-style-type: none">
|
||||
<p><span class="index-entry-level-0">abscissa</span></p>
|
||||
@@ -1902,6 +1905,7 @@
|
||||
<li class="listitem" style="list-style-type: none">
|
||||
<p><span class="index-entry-level-0">constants</span></p>
|
||||
<div class="index"><ul class="index" style="list-style-type: none; ">
|
||||
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/main_intro.html" title="About the Math Toolkit"><span class="index-entry-level-1">About the Math Toolkit</span></a></p></li>
|
||||
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_implementation.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</span></a></p></li>
|
||||
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/barycentric.html" title="Barycentric Rational Interpolation"><span class="index-entry-level-1">Barycentric Rational Interpolation</span></a></p></li>
|
||||
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<a name="math_toolkit.conventions"></a><a class="link" href="conventions.html" title="Document Conventions">Document Conventions</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
<a class="indexterm" name="id901845"></a>
|
||||
<a class="indexterm" name="id914339"></a>
|
||||
</p>
|
||||
<p>
|
||||
This documentation aims to use of the following naming and formatting conventions.
|
||||
|
||||
@@ -27,10 +27,42 @@
|
||||
<a name="math_toolkit.main_intro"></a><a class="link" href="main_intro.html" title="About the Math Toolkit">About the Math Toolkit</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
This library is divided into three interconnected parts:
|
||||
This library is divided into several interconnected parts:
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h0"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.floating_point_utilities"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.floating_point_utilities">Floating
|
||||
Point Utilities</a>
|
||||
</h5>
|
||||
<p>
|
||||
Utility functions for dealing with floating point arithmetic, includes functions
|
||||
for floating point classification (fpclassify, isnan, isinf etc), sign manipulation,
|
||||
rounding, comparison, and computing the distance between floating point numbers.
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h1"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.specific_width_floating_point_ty"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.specific_width_floating_point_ty">Specific
|
||||
Width Floating Point Types</a>
|
||||
</h5>
|
||||
<p>
|
||||
A set of typedefs similar to those provided by <code class="computeroutput"><span class="special"><</span><span class="identifier">cstdint</span><span class="special">></span></code>
|
||||
but for floating point types.
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h2"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.mathematical_constants"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.mathematical_constants">Mathematical
|
||||
Constants</a>
|
||||
</h5>
|
||||
<p>
|
||||
A wide range of constants ranging from various multiples of π, fractions, through
|
||||
to euler's constant etc.
|
||||
</p>
|
||||
<p>
|
||||
These are of course usable from template code, or as non-templates with a simplified
|
||||
interface if that is more appropriate.
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.statistical_distributions"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.statistical_distributions">Statistical
|
||||
Distributions</a>
|
||||
</h5>
|
||||
@@ -55,7 +87,7 @@
|
||||
illustrating how the library is used to conduct statistical tests.
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h1"></a>
|
||||
<a name="math_toolkit.main_intro.h4"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.mathematical_special_functions"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.mathematical_special_functions">Mathematical
|
||||
Special Functions</a>
|
||||
</h5>
|
||||
@@ -81,45 +113,57 @@
|
||||
<code class="computeroutput"><span class="keyword">double</span></code> or <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
These functions also provide the basis of support for the TR1 special functions.
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h2"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.implementation_toolkit"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.implementation_toolkit">Implementation
|
||||
Toolkit</a>
|
||||
<a name="math_toolkit.main_intro.h5"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.root_finding_and_function_minimi"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.root_finding_and_function_minimi">Root Finding
|
||||
and Function Minimisation</a>
|
||||
</h5>
|
||||
<p>
|
||||
The section <a class="link" href="internals_overview.html" title="Overview">Internal tools</a>
|
||||
provides many 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.
|
||||
A comprehensive set of root finding algorithms over the real-line, both with
|
||||
and without derivative support.
|
||||
</p>
|
||||
<p>
|
||||
Some tools are now considered well-tried and their signatures stable and unlikely
|
||||
to change.
|
||||
Also function minimisation via Brent's Method.
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h6"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.polynomials_and_rational_functio"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.polynomials_and_rational_functio">Polynomials
|
||||
and Rational Functions</a>
|
||||
</h5>
|
||||
<p>
|
||||
Tools for manipulating polynomials and for efficient evaluation of rationals
|
||||
or polynomials.
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h7"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.interpolation"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.interpolation">Interpolation</a>
|
||||
</h5>
|
||||
<p>
|
||||
Function interpolation via Barycentic or cubic B_spline approximations.
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h8"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.numerical_integration_and_differ"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.numerical_integration_and_differ">Numerical
|
||||
Integration and Differentiation</a>
|
||||
</h5>
|
||||
<p>
|
||||
A reasonably comprehensive set of routines for integration (trapezoidal, Gaus-Legendre,
|
||||
Gaus-Kronrod and double-exponential) and differentiation.
|
||||
</p>
|
||||
<p>
|
||||
There is a fairly comprehensive set of root finding both <a class="link" href="roots_noderiv.html" title="Root Finding Without Derivatives">root-finding
|
||||
without derivatives</a> and <a class="link" href="roots_deriv.html" title="Root Finding With Derivatives: Newton-Raphson, Halley & Schröder">root-finding
|
||||
with derivatives</a> with derivative support, and function minimization
|
||||
using <a class="link" href="brent_minima.html" title="Locating Function Minima using Brent's algorithm">Brent's method</a>.
|
||||
The integration routines are all usable for functions returning complex results
|
||||
- and as a result for contour integrals as well.
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.main_intro.h9"></a>
|
||||
<span class="phrase"><a name="math_toolkit.main_intro.quaternions_and_octonions"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.quaternions_and_octonions">Quaternions
|
||||
and Octonions</a>
|
||||
</h5>
|
||||
<p>
|
||||
Other <a class="link" href="internals_overview.html" title="Overview">Internal tools</a>
|
||||
are currently still considered experimental: they are "exposed implementation
|
||||
details" whose interfaces and/or implementations may change without notice.
|
||||
</p>
|
||||
<p>
|
||||
There are helpers for the <a class="link" href="internals/series_evaluation.html" title="Series Evaluation">evaluation
|
||||
of infinite series</a>, <a class="link" href="internals/cf.html" title="Continued Fraction Evaluation">continued
|
||||
fractions</a> and <a class="link" href="rational.html" title="Polynomial and Rational Function Evaluation">rational approximations</a>.
|
||||
A <a class="link" href="internals/minimax.html" title="Minimax Approximations and the Remez Algorithm">Remez algorithm implementation</a>
|
||||
allows for the locating of minimax rational approximations.
|
||||
</p>
|
||||
<p>
|
||||
There are also (experimental) classes for the <a class="link" href="polynomials.html" title="Polynomials">manipulation
|
||||
of polynomials</a>, for <a class="link" href="internals/error_test.html" title="Relative Error and Testing">testing
|
||||
a special function against tabulated test data</a>, and for the <a class="link" href="internals/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions">rapid
|
||||
generation of test data</a> and/or data for output to an external graphing
|
||||
application.
|
||||
Quaternion and Octonians as class templates similar to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<a name="math_toolkit.navigation"></a><a class="link" href="navigation.html" title="Navigation">Navigation</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
<a class="indexterm" name="id901719"></a>
|
||||
<a class="indexterm" name="id914249"></a>
|
||||
</p>
|
||||
<p>
|
||||
Boost.Math documentation is provided in both HTML and PDF formats.
|
||||
|
||||
@@ -1,6 +1,22 @@
|
||||
[section:main_intro About the Math Toolkit]
|
||||
|
||||
This library is divided into three interconnected parts:
|
||||
This library is divided into several interconnected parts:
|
||||
|
||||
[h4 Floating Point Utilities]
|
||||
|
||||
Utility functions for dealing with floating point arithmetic, includes functions
|
||||
for floating point classification (fpclassify, isnan, isinf etc), sign manipulation,
|
||||
rounding, comparison, and computing the distance between floating point numbers.
|
||||
|
||||
[h4 Specific Width Floating Point Types]
|
||||
|
||||
A set of typedefs similar to those provided by `<cstdint>` but for floating point types.
|
||||
|
||||
[h4 Mathematical Constants]
|
||||
|
||||
A wide range of constants ranging from various multiples of [pi], fractions, through to euler's constant etc.
|
||||
|
||||
These are of course usable from template code, or as non-templates with a simplified interface if that is more appropriate.
|
||||
|
||||
[h4 Statistical Distributions]
|
||||
|
||||
@@ -47,43 +63,33 @@ 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`.
|
||||
|
||||
[h4 Implementation Toolkit]
|
||||
These functions also provide the basis of support for the TR1 special functions.
|
||||
|
||||
The section [link math_toolkit.internals_overview Internal tools]
|
||||
provides many 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.
|
||||
[h4 Root Finding and Function Minimisation]
|
||||
|
||||
Some tools are now considered well-tried and their signatures stable and unlikely to change.
|
||||
A comprehensive set of root finding algorithms over the real-line, both with and without derivative support.
|
||||
|
||||
There is a fairly comprehensive set of root finding both
|
||||
__root_finding_without_derivatives
|
||||
and __root_finding_with_derivatives with derivative support,
|
||||
and function minimization using __brent_minima.
|
||||
Also function minimisation via Brent's Method.
|
||||
|
||||
Other [link math_toolkit.internals_overview Internal tools]
|
||||
are currently still considered experimental: they are "exposed implementation details"
|
||||
whose interfaces and\/or implementations may change without notice.
|
||||
[h4 Polynomials and Rational Functions]
|
||||
|
||||
There are helpers for the
|
||||
[link math_toolkit.internals.series_evaluation evaluation of infinite series],
|
||||
[link math_toolkit.internals.cf continued
|
||||
fractions] and [link math_toolkit.rational
|
||||
rational approximations].
|
||||
A [link math_toolkit.internals.minimax Remez algorithm implementation]
|
||||
allows for the locating of minimax rational
|
||||
approximations.
|
||||
Tools for manipulating polynomials and for efficient evaluation of rationals or polynomials.
|
||||
|
||||
There are also (experimental) classes for the
|
||||
[link math_toolkit.polynomials manipulation of polynomials], for
|
||||
[link math_toolkit.internals.error_test
|
||||
testing a special function against tabulated test data], and for
|
||||
the [link math_toolkit.internals.test_data
|
||||
rapid generation of test data] and/or data for output to an
|
||||
external graphing application.
|
||||
[h4 Interpolation]
|
||||
|
||||
[endsect] [/section:intro Introduction]
|
||||
Function interpolation via Barycentic or cubic B_spline approximations.
|
||||
|
||||
[h4 Numerical Integration and Differentiation]
|
||||
|
||||
A reasonably comprehensive set of routines for integration (trapezoidal, Gaus-Legendre, Gaus-Kronrod and double-exponential) and differentiation.
|
||||
|
||||
The integration routines are all usable for functions returning complex results - and as a result for contour integrals as well.
|
||||
|
||||
[h4 Quaternions and Octonions]
|
||||
|
||||
Quaternion and Octonians as class templates similar to `std::complex`.
|
||||
|
||||
[endsect]
|
||||
|
||||
[/
|
||||
Copyright 2006, 2012, 2015 John Maddock and Paul A. Bristow.
|
||||
|
||||
Reference in New Issue
Block a user