1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>About the Math Toolkit</title> 5<link rel="stylesheet" href="../math.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../index.html" title="Math Toolkit 2.12.0"> 8<link rel="up" href="../overview.html" title="Chapter 1. Overview"> 9<link rel="prev" href="../overview.html" title="Chapter 1. Overview"> 10<link rel="next" href="navigation.html" title="Navigation"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="../overview.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="navigation.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 27<a name="math_toolkit.main_intro"></a><a class="link" href="main_intro.html" title="About the Math Toolkit">About the Math Toolkit</a> 28</h2></div></div></div> 29<p> 30 This library is divided into several interconnected parts: 31 </p> 32<h5> 33<a name="math_toolkit.main_intro.h0"></a> 34 <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 35 Point Utilities</a> 36 </h5> 37<p> 38 Utility functions for dealing with floating-point arithmetic, includes functions 39 for floating point classification (<code class="computeroutput"><span class="identifier">fpclassify</span></code>, 40 <code class="computeroutput"><span class="identifier">isnan</span></code>, <code class="computeroutput"><span class="identifier">isinf</span></code> 41 etc), sign manipulation, rounding, comparison, and computing the distance between 42 floating point numbers. 43 </p> 44<h5> 45<a name="math_toolkit.main_intro.h1"></a> 46 <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 47 Width Floating-Point Types</a> 48 </h5> 49<p> 50 A set of <code class="computeroutput"><span class="keyword">typedef</span></code>s similar to those 51 provided by <code class="computeroutput"><span class="special"><</span><span class="identifier">cstdint</span><span class="special">></span></code> but for floating-point types. 52 </p> 53<h5> 54<a name="math_toolkit.main_intro.h2"></a> 55 <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 56 Constants</a> 57 </h5> 58<p> 59 A wide range of high-precision constants ranging from various multiples of 60 π, fractions, through to Euler's constant etc. 61 </p> 62<p> 63 These are of course usable from template code, or as non-templates with a simplified 64 interface if that is more appropriate. 65 </p> 66<h5> 67<a name="math_toolkit.main_intro.h3"></a> 68 <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 69 Distributions</a> 70 </h5> 71<p> 72 Provides a reasonably comprehensive set of <a class="link" href="../dist.html" title="Chapter 5. Statistical Distributions and Functions">statistical 73 distributions</a>, upon which higher level statistical tests can be built. 74 </p> 75<p> 76 The initial focus is on the central <a href="http://en.wikipedia.org/wiki/Univariate" target="_top">univariate 77 </a> <a href="http://mathworld.wolfram.com/StatisticalDistribution.html" target="_top">distributions</a>. 78 Both <a href="http://mathworld.wolfram.com/ContinuousDistribution.html" target="_top">continuous</a> 79 (like <a class="link" href="dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">normal</a> 80 & <a class="link" href="dist_ref/dists/f_dist.html" title="F Distribution">Fisher</a>) and 81 <a href="http://mathworld.wolfram.com/DiscreteDistribution.html" target="_top">discrete</a> 82 (like <a class="link" href="dist_ref/dists/binomial_dist.html" title="Binomial Distribution">binomial</a> 83 & <a class="link" href="dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson</a>) 84 distributions are provided. 85 </p> 86<p> 87 A <a class="link" href="stat_tut.html" title="Statistical Distributions Tutorial">comprehensive tutorial is provided</a>, 88 along with a series of <a class="link" href="stat_tut/weg.html" title="Worked Examples">worked examples</a> 89 illustrating how the library is used to conduct statistical tests. 90 </p> 91<h5> 92<a name="math_toolkit.main_intro.h4"></a> 93 <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 94 Special Functions</a> 95 </h5> 96<p> 97 Provides a small number of high quality <a class="link" href="../special.html" title="Chapter 8. Special Functions">special functions</a>, 98 initially these were concentrated on functions used in statistical applications 99 along with those in the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical 100 Report on C++ Library Extensions</a>. 101 </p> 102<p> 103 The function families currently implemented are the gamma, beta & erf functions 104 along with the incomplete gamma and beta functions (four variants of each) 105 and all the possible inverses of these, plus digamma, various factorial functions, 106 Bessel functions, elliptic integrals, sinus cardinals (along with their hyperbolic 107 variants), inverse hyperbolic functions, Legendre/Laguerre/Hermite polynomials 108 and various special power and logarithmic functions. 109 </p> 110<p> 111 All the implementations are fully generic and support the use of arbitrary 112 "real-number" types, including <a href="../../../../../libs/multiprecision/doc/html/index.html" target="_top">Boost.Multiprecision</a>, 113 although they are optimised for use with types with known-about <a href="http://en.wikipedia.org/wiki/Significand" target="_top">significand 114 (or mantissa)</a> sizes: typically <code class="computeroutput"><span class="keyword">float</span></code>, 115 <code class="computeroutput"><span class="keyword">double</span></code> or <code class="computeroutput"><span class="keyword">long</span> 116 <span class="keyword">double</span></code>. 117 </p> 118<p> 119 These functions also provide the basis of support for the TR1 special functions. 120 </p> 121<h5> 122<a name="math_toolkit.main_intro.h5"></a> 123 <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 124 and Function Minimisation</a> 125 </h5> 126<p> 127 A comprehensive set of root finding algorithms over the real-line, both with 128 and without derivative support. 129 </p> 130<p> 131 Also function minimisation via Brent's Method. 132 </p> 133<h5> 134<a name="math_toolkit.main_intro.h6"></a> 135 <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 136 and Rational Functions</a> 137 </h5> 138<p> 139 Tools for manipulating polynomials and for efficient evaluation of rationals 140 or polynomials. 141 </p> 142<h5> 143<a name="math_toolkit.main_intro.h7"></a> 144 <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> 145 </h5> 146<p> 147 Function interpolation via Barycentric or cubic B_spline approximations. Smoothing. 148 </p> 149<h5> 150<a name="math_toolkit.main_intro.h8"></a> 151 <span class="phrase"><a name="math_toolkit.main_intro.numerical_integration_quadrature"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.numerical_integration_quadrature">Numerical 152 Integration (Quadrature) and Differentiation</a> 153 </h5> 154<p> 155 A reasonably comprehensive set of routines for integration (trapezoidal, Gauss-Legendre, 156 Gauss-Kronrod and double-exponential) and differentiation. (See also automatic 157 differentiation). 158 </p> 159<p> 160 The integration routines are all usable for functions returning complex results 161 - and as a result for contour integrals as well. 162 </p> 163<h5> 164<a name="math_toolkit.main_intro.h9"></a> 165 <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 166 and Octonions</a> 167 </h5> 168<p> 169 Quaternions 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>. 170 </p> 171<h5> 172<a name="math_toolkit.main_intro.h10"></a> 173 <span class="phrase"><a name="math_toolkit.main_intro.automatic_differentiation"></a></span><a class="link" href="main_intro.html#math_toolkit.main_intro.automatic_differentiation">Automatic 174 Differentiation</a> 175 </h5> 176<p> 177 Autodiff is a header-only C++ library that facilitates the automaticdifferentiation 178 (forward mode) of mathematical functions of single and multiple variables. 179 </p> 180</div> 181<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 182<td align="left"></td> 183<td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar 184 Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, 185 Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan 186 Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg, 187 Daryle Walker and Xiaogang Zhang<p> 188 Distributed under the Boost Software License, Version 1.0. (See accompanying 189 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) 190 </p> 191</div></td> 192</tr></table> 193<hr> 194<div class="spirit-nav"> 195<a accesskey="p" href="../overview.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="navigation.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 196</div> 197</body> 198</html> 199