2
0
mirror of https://github.com/boostorg/math.git synced 2026-01-19 04:22:09 +00:00

Prep for 1.77:

Rework hypergeometric distro equations.
Fix up Fibonacci docs.
Fix Fibonacci constexpr and noexcept usage and add to testing.
Regenerate docs.
This commit is contained in:
jzmaddock
2021-06-27 19:38:05 +01:00
parent 4cdc6450d5
commit a7bfb5a914
30 changed files with 1460 additions and 163 deletions

View File

@@ -229,18 +229,24 @@ gives the required CDF.
The median is simply the quantile at 0.5, and the remaining properties are
calculated via:
[equation hypergeometric6]
[/
Requires amsmath and mathtools:
\DeclarePairedDelimiter{\floor}{\lfloor}{\rfloor}
\begin{equation*}
\begin{split}
mean & = \frac{rn}{N} \\
mode & = \floor*{ \frac{(r+1)(n+1)}{N+2} }\\
variance & = \frac{r(\frac{n}{N})(1-\frac{n}{N})(N-r)}{(N-1)}\\
skewness & = \frac{(N-2n)\sqrt{(N-1)}(N-2r)}{\sqrt{rn(N-n)(N-r)}(N-2)}\\
kertosis\:excess & = \frac{(N-1)N^2(N(N+1)-6r(N-r)-6n(N-n)+6nr(N-r)(N-n)(5N-6)}{nr(N-r)(N-n)(N-2)(N-3)}
\end{split}
\end{equation*}
[note The kurtosis formula above is not quite correct and kurtosis excess is now calculated
from
[@https://www.wolframalpha.com/input/?i=kurtosis+hypergeometric+distribution Wolfram Alpha hypergeometric distribution kurtosis].
(The hypergeometric distribution kurtosis excess is mentioned in
[@https://mathworld.wolfram.com/HypergeometricDistribution.html Wolfram Hypergeometric distribution]
but coyly only described as ['\"the kurtosis excess is given by a complicated expression.\"]).
This has been found numerically equivalent to the
[@https://en.wikipedia.org/wiki/Hypergeometric_distribution Wikipedia hypergeometric kurtosis excess formula].
]
[equation hypergeometric6]
[endsect]
[/ hypergeometric.qbk

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -134,7 +134,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: June 16, 2021 at 10:35:24 GMT</small></p></td>
<td align="left"><p><small>Last revised: June 27, 2021 at 18:26:02 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@@ -24,7 +24,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2124353"></a>Function Index</h2></div></div></div>
<a name="id2043453"></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_5">A</a> <a class="link" href="s01.html#idx_id_6">B</a> <a class="link" href="s01.html#idx_id_7">C</a> <a class="link" href="s01.html#idx_id_8">D</a> <a class="link" href="s01.html#idx_id_9">E</a> <a class="link" href="s01.html#idx_id_10">F</a> <a class="link" href="s01.html#idx_id_11">G</a> <a class="link" href="s01.html#idx_id_12">H</a> <a class="link" href="s01.html#idx_id_13">I</a> <a class="link" href="s01.html#idx_id_14">J</a> <a class="link" href="s01.html#idx_id_15">K</a> <a class="link" href="s01.html#idx_id_16">L</a> <a class="link" href="s01.html#idx_id_17">M</a> <a class="link" href="s01.html#idx_id_18">N</a> <a class="link" href="s01.html#idx_id_19">O</a> <a class="link" href="s01.html#idx_id_20">P</a> <a class="link" href="s01.html#idx_id_21">Q</a> <a class="link" href="s01.html#idx_id_22">R</a> <a class="link" href="s01.html#idx_id_23">S</a> <a class="link" href="s01.html#idx_id_24">T</a> <a class="link" href="s01.html#idx_id_25">U</a> <a class="link" href="s01.html#idx_id_26">V</a> <a class="link" href="s01.html#idx_id_27">W</a> <a class="link" href="s01.html#idx_id_28">X</a> <a class="link" href="s01.html#idx_id_29">Y</a> <a class="link" href="s01.html#idx_id_30">Z</a></p>
<div class="variablelist"><dl class="variablelist">
<dt>
@@ -123,6 +123,10 @@
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">addition</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">add_fn</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/ulps_plots.html" title="ULPs Plots"><span class="index-entry-level-1">ULPs Plots</span></a></p></li></ul></div>
</li>
@@ -277,7 +281,10 @@
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">at</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/sf_implementation.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</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/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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">atanh</span></p>
@@ -1320,6 +1327,10 @@
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">fibonacci</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">find_alpha</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/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-1">Beta Distribution</span></a></p></li></ul></div>
</li>
@@ -2060,6 +2071,7 @@
<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/root_finding_examples/elliptic_eg.html" title="A More complex example - Inverting the Elliptic Integrals"><span class="index-entry-level-1">A More complex example - Inverting the Elliptic Integrals</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals/agm.html" title="Arithmetic-Geometric Mean"><span class="index-entry-level-1">Arithmetic-Geometric Mean</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/cardinal_b_splines.html" title="Cardinal B-splines"><span class="index-entry-level-1">Cardinal B-splines</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/catmull_rom.html" title="Catmull-Rom Splines"><span class="index-entry-level-1">Catmull-Rom Splines</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_intro.html" title="Elliptic Integral Overview"><span class="index-entry-level-1">Elliptic Integral Overview</span></a></p></li>
@@ -2502,10 +2514,6 @@
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">means</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/stat_tut/weg/f_eg.html" title="F Distribution Examples"><span class="index-entry-level-1">F Distribution Examples</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">means_and_covariance</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/bivariate_statistics.html" title="Bivariate Statistics"><span class="index-entry-level-1">Bivariate Statistics</span></a></p></li></ul></div>
</li>
@@ -2720,6 +2728,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/autodiff.html" title="Automatic Differentiation"><span class="index-entry-level-1">Automatic Differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel_first.html" title="Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Bessel Functions of the First and Second Kinds</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/empirical_cdf.html" title="Empirical Cumulative Distribution Function"><span class="index-entry-level-1">Empirical Cumulative Distribution Function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/diff0.html" title="Lanczos Smoothing Derivatives"><span class="index-entry-level-1">Lanczos Smoothing Derivatives</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Modified Bessel Functions of the First and Second Kinds</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/double_exponential/de_tanh_sinh.html" title="tanh_sinh"><span class="index-entry-level-1">tanh_sinh</span></a></p></li>
@@ -2765,6 +2774,7 @@
<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/root_finding_examples/elliptic_eg.html" title="A More complex example - Inverting the Elliptic Integrals"><span class="index-entry-level-1">A More complex example - Inverting the Elliptic Integrals</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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cardinal_cubic_b.html" title="Cardinal Cubic B-spline interpolation"><span class="index-entry-level-1">Cardinal Cubic B-spline interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cardinal_quadratic_b.html" title="Cardinal Quadratic B-spline interpolation"><span class="index-entry-level-1">Cardinal Quadratic B-spline interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cardinal_quintic_b.html" title="Cardinal Quintic B-spline interpolation"><span class="index-entry-level-1">Cardinal Quintic B-spline interpolation</span></a></p></li>
@@ -2778,6 +2788,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cubic_hermite.html" title="Cubic Hermite interpolation"><span class="index-entry-level-1">Cubic Hermite interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/daubechies.html" title="Daubechies Wavelets and Scaling Functions"><span class="index-entry-level-1">Daubechies Wavelets and Scaling Functions</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/empirical_cdf.html" title="Empirical Cumulative Distribution Function"><span class="index-entry-level-1">Empirical Cumulative Distribution Function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/root_finding_examples/cbrt_eg.html" title="Finding the Cubed Root With and Without Derivatives"><span class="index-entry-level-1">Finding the Cubed Root With and Without Derivatives</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/root_finding_examples/nth_root.html" title="Generalizing to Compute the nth root"><span class="index-entry-level-1">Generalizing to Compute the nth root</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li>
@@ -3243,6 +3254,13 @@
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">set</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/reference.html" title="Reference"><span class="index-entry-level-1">Reference</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">set_zero</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/polynomials.html" title="Polynomials"><span class="index-entry-level-1">Polynomials</span></a></p></li></ul></div>
</li>
@@ -3631,6 +3649,10 @@
<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/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">Factorial</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">unchecked_fibonacci</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">unreal</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/oct_mem_fun.html" title="Octonion Member Functions"><span class="index-entry-level-1">Octonion Member Functions</span></a></p></li>

View File

@@ -24,7 +24,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2155303"></a>Class Index</h2></div></div></div>
<a name="id2073346"></a>Class Index</h2></div></div></div>
<p><a class="link" href="s02.html#idx_id_36">A</a> <a class="link" href="s02.html#idx_id_37">B</a> <a class="link" href="s02.html#idx_id_38">C</a> <a class="link" href="s02.html#idx_id_39">D</a> <a class="link" href="s02.html#idx_id_40">E</a> <a class="link" href="s02.html#idx_id_41">F</a> <a class="link" href="s02.html#idx_id_42">G</a> <a class="link" href="s02.html#idx_id_43">H</a> <a class="link" href="s02.html#idx_id_44">I</a> <a class="link" href="s02.html#idx_id_46">K</a> <a class="link" href="s02.html#idx_id_47">L</a> <a class="link" href="s02.html#idx_id_48">M</a> <a class="link" href="s02.html#idx_id_49">N</a> <a class="link" href="s02.html#idx_id_50">O</a> <a class="link" href="s02.html#idx_id_51">P</a> <a class="link" href="s02.html#idx_id_52">Q</a> <a class="link" href="s02.html#idx_id_53">R</a> <a class="link" href="s02.html#idx_id_54">S</a> <a class="link" href="s02.html#idx_id_55">T</a> <a class="link" href="s02.html#idx_id_56">U</a> <a class="link" href="s02.html#idx_id_57">V</a> <a class="link" href="s02.html#idx_id_58">W</a></p>
<div class="variablelist"><dl class="variablelist">
<dt>
@@ -45,6 +45,10 @@
</li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/bernoulli_dist.html" title="Bernoulli Distribution"><span class="index-entry-level-0">bernoulli_distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-0">beta_distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">bilinear_uniform</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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li></ul></div>
</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-0">binomial_distribution</span></a></p></li>
</ul></div></dd>
<dt>
@@ -182,6 +186,10 @@
</dt>
<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">fibonacci_generator</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">fisher_f_distribution</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/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li></ul></div>
</li>

View File

@@ -24,7 +24,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2159548"></a>Typedef Index</h2></div></div></div>
<a name="id2076117"></a>Typedef Index</h2></div></div></div>
<p><a class="link" href="s03.html#idx_id_67">A</a> <a class="link" href="s03.html#idx_id_68">B</a> <a class="link" href="s03.html#idx_id_69">C</a> <a class="link" href="s03.html#idx_id_70">D</a> <a class="link" href="s03.html#idx_id_71">E</a> <a class="link" href="s03.html#idx_id_72">F</a> <a class="link" href="s03.html#idx_id_73">G</a> <a class="link" href="s03.html#idx_id_74">H</a> <a class="link" href="s03.html#idx_id_75">I</a> <a class="link" href="s03.html#idx_id_77">K</a> <a class="link" href="s03.html#idx_id_78">L</a> <a class="link" href="s03.html#idx_id_80">N</a> <a class="link" href="s03.html#idx_id_82">P</a> <a class="link" href="s03.html#idx_id_84">R</a> <a class="link" href="s03.html#idx_id_85">S</a> <a class="link" href="s03.html#idx_id_86">T</a> <a class="link" href="s03.html#idx_id_87">U</a> <a class="link" href="s03.html#idx_id_88">V</a> <a class="link" href="s03.html#idx_id_89">W</a></p>
<div class="variablelist"><dl class="variablelist">
<dt>

View File

@@ -24,7 +24,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2161564"></a>Macro Index</h2></div></div></div>
<a name="id2080410"></a>Macro Index</h2></div></div></div>
<p><a class="link" href="s04.html#idx_id_99">B</a> <a class="link" href="s04.html#idx_id_103">F</a></p>
<div class="variablelist"><dl class="variablelist">
<dt>
@@ -308,6 +308,7 @@
<p><span class="index-entry-level-0">BOOST_MATH_STANDALONE</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/error_handling.html" title="Error Handling"><span class="index-entry-level-1">Error Handling</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special_tut/special_tut_test.html" title="Testing"><span class="index-entry-level-1">Testing</span></a></p></li>
</ul></div>
</li>

View File

@@ -23,7 +23,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2163136"></a>Index</h2></div></div></div>
<a name="id2083271"></a>Index</h2></div></div></div>
<p><a class="link" href="s05.html#idx_id_124">1</a> <a class="link" href="s05.html#idx_id_125">2</a> <a class="link" href="s05.html#idx_id_126">4</a> <a class="link" href="s05.html#idx_id_127">5</a> <a class="link" href="s05.html#idx_id_128">7</a> <a class="link" href="s05.html#idx_id_129">A</a> <a class="link" href="s05.html#idx_id_130">B</a> <a class="link" href="s05.html#idx_id_131">C</a> <a class="link" href="s05.html#idx_id_132">D</a> <a class="link" href="s05.html#idx_id_133">E</a> <a class="link" href="s05.html#idx_id_134">F</a> <a class="link" href="s05.html#idx_id_135">G</a> <a class="link" href="s05.html#idx_id_136">H</a> <a class="link" href="s05.html#idx_id_137">I</a> <a class="link" href="s05.html#idx_id_138">J</a> <a class="link" href="s05.html#idx_id_139">K</a> <a class="link" href="s05.html#idx_id_140">L</a> <a class="link" href="s05.html#idx_id_141">M</a> <a class="link" href="s05.html#idx_id_142">N</a> <a class="link" href="s05.html#idx_id_143">O</a> <a class="link" href="s05.html#idx_id_144">P</a> <a class="link" href="s05.html#idx_id_145">Q</a> <a class="link" href="s05.html#idx_id_146">R</a> <a class="link" href="s05.html#idx_id_147">S</a> <a class="link" href="s05.html#idx_id_148">T</a> <a class="link" href="s05.html#idx_id_149">U</a> <a class="link" href="s05.html#idx_id_150">V</a> <a class="link" href="s05.html#idx_id_151">W</a> <a class="link" href="s05.html#idx_id_152">X</a> <a class="link" href="s05.html#idx_id_153">Y</a> <a class="link" href="s05.html#idx_id_154">Z</a></p>
<div class="variablelist"><dl class="variablelist">
<dt>
@@ -375,6 +375,10 @@
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">addition</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">add_fn</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/ulps_plots.html" title="ULPs Plots"><span class="index-entry-level-1">ULPs Plots</span></a></p></li></ul></div>
</li>
@@ -612,7 +616,10 @@
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">at</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/sf_implementation.html" title="Additional Implementation Notes"><span class="index-entry-level-1">Additional Implementation Notes</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/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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">atanh</span></p>
@@ -818,6 +825,22 @@
</li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/beta_dist.html" title="Beta Distribution"><span class="index-entry-level-0">beta_distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">Bilinear Uniform Interpolation</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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">at</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">bilinear_uniform</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">K</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">operator</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">performance</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">bilinear_uniform</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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">binomial</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/dist_ref/dists/binomial_dist.html" title="Binomial Distribution"><span class="index-entry-level-1">Binomial Distribution</span></a></p></li></ul></div>
</li>
@@ -1221,6 +1244,7 @@
<p><span class="index-entry-level-0">BOOST_MATH_STANDALONE</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/error_handling.html" title="Error Handling"><span class="index-entry-level-1">Error Handling</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">History and What's New</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special_tut/special_tut_test.html" title="Testing"><span class="index-entry-level-1">Testing</span></a></p></li>
</ul></div>
</li>
@@ -2404,6 +2428,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals/agm.html" title="Arithmetic-Geometric Mean"><span class="index-entry-level-1">Arithmetic-Geometric Mean</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/autodiff.html" title="Automatic Differentiation"><span class="index-entry-level-1">Automatic Differentiation</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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform 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>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/binom_eg/binomial_quiz_example.html" title="Binomial Quiz Example"><span class="index-entry-level-1">Binomial Quiz Example</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bivariate_statistics.html" title="Bivariate Statistics"><span class="index-entry-level-1">Bivariate Statistics</span></a></p></li>
@@ -2430,6 +2455,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/expint/expint_i.html" title="Exponential Integral Ei"><span class="index-entry-level-1">Exponential Integral Ei</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/extreme_dist.html" title="Extreme Value Distribution"><span class="index-entry-level-1">Extreme Value Distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">Factorial</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/macros.html" title="Floating-Point Constant Macros"><span class="index-entry-level-1">Floating-Point Constant Macros</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gauss_kronrod.html" title="Gauss-Kronrod Quadrature"><span class="index-entry-level-1">Gauss-Kronrod Quadrature</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gauss.html" title="Gauss-Legendre quadrature"><span class="index-entry-level-1">Gauss-Legendre quadrature</span></a></p></li>
@@ -4142,6 +4168,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_intro.html" title="Elliptic Integral Overview"><span class="index-entry-level-1">Elliptic Integral Overview</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/f_dist.html" title="F Distribution"><span class="index-entry-level-1">F Distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">Factorial</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/find_eg/find_scale_eg.html" title="Find Scale (Standard Deviation) Example"><span class="index-entry-level-1">Find Scale (Standard Deviation) Example</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel_root.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution"><span class="index-entry-level-1">Gamma (and Erlang) Distribution</span></a></p></li>
@@ -4232,10 +4259,6 @@
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">F Distribution Examples</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/stat_tut/weg/f_eg.html" title="F Distribution Examples"><span class="index-entry-level-1">means</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">Facets for Floating-Point Infinities and NaNs</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/fp_facets.html" title="Facets for Floating-Point Infinities and NaNs"><span class="index-entry-level-1">nonfinite_num_get</span></a></p></li>
@@ -4303,6 +4326,29 @@
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">fibonacci</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">Fibonacci Numbers</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">addition</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">expression</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">fibonacci</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">fibonacci_generator</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">multiprecision</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">O</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">operator</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">set</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">unchecked_fibonacci</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">fibonacci_generator</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">file</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/directories.html" title="Directory and File Structure"><span class="index-entry-level-1">Directory and File Structure</span></a></p></li>
@@ -5129,6 +5175,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">2</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">accuracy</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">airy_bi_zero</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">BOOST_MATH_STANDALONE</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><span class="index-entry-level-1">bug</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/history1.html" title="History and What's New"><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/history1.html" title="History and What's New"><span class="index-entry-level-1">cpp_dec_float</span></a></p></li>
@@ -5588,6 +5635,7 @@
<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/roots_noderiv/TOMS748.html" title="Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions"><span class="index-entry-level-1">Algorithm TOMS 748: Alefeld, Potra and Shi: Enclosing zeros of continuous functions</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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/cardinal_b_splines.html" title="Cardinal B-splines"><span class="index-entry-level-1">Cardinal B-splines</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cardinal_cubic_b.html" title="Cardinal Cubic B-spline interpolation"><span class="index-entry-level-1">Cardinal Cubic B-spline interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cardinal_quadratic_b.html" title="Cardinal Quadratic B-spline interpolation"><span class="index-entry-level-1">Cardinal Quadratic B-spline interpolation</span></a></p></li>
@@ -6016,6 +6064,7 @@
<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/root_finding_examples/elliptic_eg.html" title="A More complex example - Inverting the Elliptic Integrals"><span class="index-entry-level-1">A More complex example - Inverting the Elliptic Integrals</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals/agm.html" title="Arithmetic-Geometric Mean"><span class="index-entry-level-1">Arithmetic-Geometric Mean</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_poly/cardinal_b_splines.html" title="Cardinal B-splines"><span class="index-entry-level-1">Cardinal B-splines</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/catmull_rom.html" title="Catmull-Rom Splines"><span class="index-entry-level-1">Catmull-Rom Splines</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_intro.html" title="Elliptic Integral Overview"><span class="index-entry-level-1">Elliptic Integral Overview</span></a></p></li>
@@ -6770,10 +6819,6 @@
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">means</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/stat_tut/weg/f_eg.html" title="F Distribution Examples"><span class="index-entry-level-1">F Distribution Examples</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">means_and_covariance</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/bivariate_statistics.html" title="Bivariate Statistics"><span class="index-entry-level-1">Bivariate Statistics</span></a></p></li></ul></div>
</li>
@@ -6892,6 +6937,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/ellint_intro.html" title="Elliptic Integral Overview"><span class="index-entry-level-1">Elliptic Integral Overview</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals/engel_expansion.html" title="Engel Expansion"><span class="index-entry-level-1">Engel Expansion</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_function.html" title="Error Function erf and complement erfc"><span class="index-entry-level-1">Error Function erf and complement erfc</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/airy/airy_root.html" title="Finding Zeros of Airy Functions"><span class="index-entry-level-1">Finding Zeros of Airy Functions</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel_root.html" title="Finding Zeros of Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Finding Zeros of Bessel Functions of the First and Second Kinds</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values"><span class="index-entry-level-1">Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values</span></a></p></li>
@@ -7324,6 +7370,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/autodiff.html" title="Automatic Differentiation"><span class="index-entry-level-1">Automatic Differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/bessel_first.html" title="Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Bessel Functions of the First and Second Kinds</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/empirical_cdf.html" title="Empirical Cumulative Distribution Function"><span class="index-entry-level-1">Empirical Cumulative Distribution Function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/diff0.html" title="Lanczos Smoothing Derivatives"><span class="index-entry-level-1">Lanczos Smoothing Derivatives</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Modified Bessel Functions of the First and Second Kinds</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/double_exponential/de_tanh_sinh.html" title="tanh_sinh"><span class="index-entry-level-1">tanh_sinh</span></a></p></li>
@@ -7429,6 +7476,7 @@
<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/root_finding_examples/elliptic_eg.html" title="A More complex example - Inverting the Elliptic Integrals"><span class="index-entry-level-1">A More complex example - Inverting the Elliptic Integrals</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/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cardinal_cubic_b.html" title="Cardinal Cubic B-spline interpolation"><span class="index-entry-level-1">Cardinal Cubic B-spline interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cardinal_quadratic_b.html" title="Cardinal Quadratic B-spline interpolation"><span class="index-entry-level-1">Cardinal Quadratic B-spline interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cardinal_quintic_b.html" title="Cardinal Quintic B-spline interpolation"><span class="index-entry-level-1">Cardinal Quintic B-spline interpolation</span></a></p></li>
@@ -7442,6 +7490,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/cubic_hermite.html" title="Cubic Hermite interpolation"><span class="index-entry-level-1">Cubic Hermite interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/daubechies.html" title="Daubechies Wavelets and Scaling Functions"><span class="index-entry-level-1">Daubechies Wavelets and Scaling Functions</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/empirical_cdf.html" title="Empirical Cumulative Distribution Function"><span class="index-entry-level-1">Empirical Cumulative Distribution Function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/root_finding_examples/cbrt_eg.html" title="Finding the Cubed Root With and Without Derivatives"><span class="index-entry-level-1">Finding the Cubed Root With and Without Derivatives</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/root_finding_examples/nth_root.html" title="Generalizing to Compute the nth root"><span class="index-entry-level-1">Generalizing to Compute the nth root</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals/test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions"><span class="index-entry-level-1">Graphing, Profiling, and Generating Test Data for Special Functions</span></a></p></li>
@@ -7598,6 +7647,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/perf_over1.html" title="Performance"><span class="index-entry-level-1">accuracy</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/internals/agm.html" title="Arithmetic-Geometric Mean"><span class="index-entry-level-1">Arithmetic-Geometric Mean</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/number_series/bernoulli_numbers.html" title="Bernoulli Numbers"><span class="index-entry-level-1">Bernoulli Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bilinear_uniform.html" title="Bilinear Uniform Interpolation"><span class="index-entry-level-1">Bilinear Uniform Interpolation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/main_faq.html" title="Boost.Math Frequently Asked Questions (FAQs)"><span class="index-entry-level-1">Boost.Math Frequently Asked Questions (FAQs)</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/config_macros.html#math_toolkit.config_macros.boost_math_tuning" title="Table 1.12. Boost.Math Tuning"><span class="index-entry-level-1">Boost.Math Tuning</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/overview_tr1.html" title="C99 and C++ TR1 C-style Functions"><span class="index-entry-level-1">C99 and C++ TR1 C-style Functions</span></a></p></li>
@@ -8126,6 +8176,7 @@
<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/fp_facets/reference.html" title="Reference"><span class="index-entry-level-1">function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/reference.html" title="Reference"><span class="index-entry-level-1">nan</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/reference.html" title="Reference"><span class="index-entry-level-1">set</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
@@ -8566,6 +8617,13 @@
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">set</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/reference.html" title="Reference"><span class="index-entry-level-1">Reference</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">Setting Polices at Namespace Scope</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/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope"><span class="index-entry-level-1">BOOST_MATH_DECLARE_DISTRIBUTIONS</span></a></p></li>
@@ -9467,6 +9525,10 @@
<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/factorials/sf_factorial.html" title="Factorial"><span class="index-entry-level-1">Factorial</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">unchecked_fibonacci</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/number_series/fibonacci_numbers.html" title="Fibonacci Numbers"><span class="index-entry-level-1">Fibonacci Numbers</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">uniform</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/dist_ref/dists/uniform_dist.html" title="Uniform Distribution"><span class="index-entry-level-1">Uniform Distribution</span></a></p></li></ul></div>
</li>

View File

@@ -45,6 +45,7 @@
<dt><span class="section"><a href="math_toolkit/makima.html">Modified Akima interpolation</a></span></dt>
<dt><span class="section"><a href="math_toolkit/pchip.html">PCHIP interpolation</a></span></dt>
<dt><span class="section"><a href="math_toolkit/quintic_hermite.html">Quintic Hermite interpolation</a></span></dt>
<dt><span class="section"><a href="math_toolkit/bilinear_uniform.html">Bilinear Uniform Interpolation</a></span></dt>
</dl>
</div>
</div>

View File

@@ -0,0 +1,144 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Bilinear Uniform Interpolation</title>
<link rel="stylesheet" href="../math.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Math Toolkit 3.0.0">
<link rel="up" href="../interpolation.html" title="Chapter 12. Interpolation">
<link rel="prev" href="quintic_hermite.html" title="Quintic Hermite interpolation">
<link rel="next" href="../quadrature.html" title="Chapter 13. Quadrature and Differentiation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="quintic_hermite.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../interpolation.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="../quadrature.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="math_toolkit.bilinear_uniform"></a><a class="link" href="bilinear_uniform.html" title="Bilinear Uniform Interpolation">Bilinear Uniform Interpolation</a>
</h2></div></div></div>
<h4>
<a name="math_toolkit.bilinear_uniform.h0"></a>
<span class="phrase"><a name="math_toolkit.bilinear_uniform.synopsis"></a></span><a class="link" href="bilinear_uniform.html#math_toolkit.bilinear_uniform.synopsis">Synopsis</a>
</h4>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">interpolators</span><span class="special">/</span><span class="identifier">bilinear_uniform</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">interpolators</span> <span class="special">{</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessContainer</span><span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">bilinear_uniform</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="keyword">using</span> <span class="identifier">Real</span> <span class="special">=</span> <span class="keyword">typename</span> <span class="identifier">RandomAccessContainer</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">;</span>
<span class="identifier">bilinear_uniform</span><span class="special">(</span><span class="identifier">RandomAccessContainer</span> <span class="special">&amp;&amp;</span> <span class="identifier">fieldData</span><span class="special">,</span> <span class="keyword">decltype</span><span class="special">(</span><span class="identifier">fieldData</span><span class="special">.</span><span class="identifier">size</span><span class="special">())</span> <span class="identifier">rows</span><span class="special">,</span> <span class="keyword">decltype</span><span class="special">(</span><span class="identifier">fieldData</span><span class="special">.</span><span class="identifier">size</span><span class="special">())</span> <span class="identifier">cols</span><span class="special">,</span> <span class="identifier">Real</span> <span class="identifier">dx</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">Real</span> <span class="identifier">dy</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">Real</span> <span class="identifier">x0</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">Real</span> <span class="identifier">y0</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span>
<span class="identifier">Real</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Real</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">Real</span> <span class="identifier">y</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<h4>
<a name="math_toolkit.bilinear_uniform.h1"></a>
<span class="phrase"><a name="math_toolkit.bilinear_uniform.bilinear_uniform_interpolation"></a></span><a class="link" href="bilinear_uniform.html#math_toolkit.bilinear_uniform.bilinear_uniform_interpolation">Bilinear
Uniform Interpolation</a>
</h4>
<p>
The bilinear uniform interpolator takes a grid of data points specified by
a linear index and interpolates between each segment using a bilinear function.
Note that "bilinear" does not mean linear-it is the product of two
linear functions. The interpolant is continuous and its evaluation is constant
time. An example usage is as follows:
</p>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">v</span><span class="special">{</span><span class="number">0.1</span><span class="special">,</span> <span class="number">0.2</span><span class="special">,</span> <span class="number">0.3</span><span class="special">,</span>
<span class="number">0.4</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.5</span><span class="special">};</span>
<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">interpolators</span><span class="special">::</span><span class="identifier">bilinear_uniform</span><span class="special">;</span>
<span class="keyword">int</span> <span class="identifier">rows</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span>
<span class="keyword">int</span> <span class="identifier">cols</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span>
<span class="keyword">double</span> <span class="identifier">dx</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span>
<span class="keyword">double</span> <span class="identifier">dy</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span>
<span class="keyword">auto</span> <span class="identifier">bu</span> <span class="special">=</span> <span class="identifier">bilinear_uniform</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">move</span><span class="special">(</span><span class="identifier">v</span><span class="special">),</span> <span class="identifier">rows</span><span class="special">,</span> <span class="identifier">cols</span><span class="special">,</span> <span class="identifier">dx</span><span class="special">,</span> <span class="identifier">dy</span><span class="special">);</span>
<span class="comment">// evaluate at a point:</span>
<span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="identifier">bu</span><span class="special">(</span><span class="number">0.0</span><span class="special">,</span> <span class="number">0.0</span><span class="special">);</span>
</pre>
<p>
Periodically, it is helpful to see what data the interpolator has. This can
be achieved via
</p>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">ub</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
</pre>
<p>
Note that the interpolator is pimpl'd, so that copying the class is cheap,
and hence it can be shared between threads. (The call operator is threadsafe.)
</p>
<p>
Note that the layout of the field data follows the convention found in laying
out images: The first value is associated with (x0, y0), and the last value
is associate with (x0 + (cols - 1)dx, y0 + (rows - 1)dy). This matches with
how we think about laying out matrices in C order, but of course there is no
canonical choice and conventions must be made. For example, it is traditional
in image processing the associate the first field value with the center of
the pixel (which would be called a cell-centered field in VTK). This interpolator
is point-centered, in the sense that (x0,y0) is associated with value v[0],
and (x0+dx, y0) associated with v[1]. If you have cell-centered data at (0,0),
then just pass (x0,y0) = (0.5, 0.5) to this interpolator.
</p>
<p>
Note that this interpolator does not provide the option for a rotation. We
regarded that as too expensive to handle in this class. Rotating the arguments
must be performed by the user.
</p>
<h4>
<a name="math_toolkit.bilinear_uniform.h2"></a>
<span class="phrase"><a name="math_toolkit.bilinear_uniform.complexity_and_performance"></a></span><a class="link" href="bilinear_uniform.html#math_toolkit.bilinear_uniform.complexity_and_performance">Complexity
and Performance</a>
</h4>
<p>
The google/benchmark in <code class="computeroutput"><span class="identifier">reporting</span><span class="special">/</span><span class="identifier">performance</span><span class="special">/</span><span class="identifier">bilinear_uniform_performance</span><span class="special">.</span><span class="identifier">cpp</span></code> demonstrates
the cost of the call operator for this interpolator:
</p>
<pre class="programlisting"><span class="identifier">Run</span> <span class="identifier">on</span> <span class="special">(</span><span class="number">16</span> <span class="identifier">X</span> <span class="number">4300</span> <span class="identifier">MHz</span> <span class="identifier">CPU</span> <span class="identifier">s</span><span class="special">)</span>
<span class="identifier">CPU</span> <span class="identifier">Caches</span><span class="special">:</span>
<span class="identifier">L1</span> <span class="identifier">Data</span> <span class="number">32</span><span class="identifier">K</span> <span class="special">(</span><span class="identifier">x8</span><span class="special">)</span>
<span class="identifier">L1</span> <span class="identifier">Instruction</span> <span class="number">32</span><span class="identifier">K</span> <span class="special">(</span><span class="identifier">x8</span><span class="special">)</span>
<span class="identifier">L2</span> <span class="identifier">Unified</span> <span class="number">1024</span><span class="identifier">K</span> <span class="special">(</span><span class="identifier">x8</span><span class="special">)</span>
<span class="identifier">L3</span> <span class="identifier">Unified</span> <span class="number">11264</span><span class="identifier">K</span> <span class="special">(</span><span class="identifier">x1</span><span class="special">)</span>
<span class="identifier">Load</span> <span class="identifier">Average</span><span class="special">:</span> <span class="number">0.92</span><span class="special">,</span> <span class="number">0.64</span><span class="special">,</span> <span class="number">0.35</span>
<span class="special">--------------------------------------</span>
<span class="identifier">Benchmark</span> <span class="identifier">Time</span>
<span class="special">--------------------------------------</span>
<span class="identifier">Bilinear</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;/</span><span class="number">64</span> <span class="number">13.6</span> <span class="identifier">ns</span>
<span class="identifier">Bilinear</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;/</span><span class="number">128</span> <span class="number">13.3</span> <span class="identifier">ns</span>
<span class="identifier">Bilinear</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;/</span><span class="number">256</span> <span class="number">13.9</span> <span class="identifier">ns</span>
<span class="identifier">Bilinear</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;/</span><span class="number">512</span> <span class="number">13.7</span> <span class="identifier">ns</span>
<span class="identifier">Bilinear</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;/</span><span class="number">1024</span> <span class="number">13.2</span> <span class="identifier">ns</span>
<span class="identifier">Bilinear</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;/</span><span class="number">2048</span> <span class="number">13.1</span> <span class="identifier">ns</span>
<span class="identifier">Bilinear</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;/</span><span class="number">4096</span> <span class="number">13.2</span> <span class="identifier">ns</span>
<span class="identifier">Bilinear</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;/</span><span class="number">8192</span> <span class="number">13.2</span> <span class="identifier">ns</span>
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2006-2021 Nikhar Agrawal, Anton Bikineev, Matthew Borland,
Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert Holin, Bruno
Lalande, John Maddock, Evan Miller, Jeremy Murphy, Matthew Pulver, Johan Råde,
Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg, Daryle
Walker and Xiaogang Zhang<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
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>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="quintic_hermite.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../interpolation.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="../quadrature.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -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="id1028641"></a>
<a class="indexterm" name="id949905"></a>
</p>
<p>
This documentation aims to use of the following naming and formatting conventions.

View File

@@ -342,22 +342,6 @@
<span class="inlinemediaobject"><img src="../../../../equations/hypergeometric6.svg"></span>
</p></blockquote></div>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>
The kurtosis formula above is not quite correct and kurtosis excess is
now calculated from <a href="https://www.wolframalpha.com/input/?i=kurtosis+hypergeometric+distribution" target="_top">Wolfram
Alpha hypergeometric distribution kurtosis</a>. (The hypergeometric
distribution kurtosis excess is mentioned in <a href="https://mathworld.wolfram.com/HypergeometricDistribution.html" target="_top">Wolfram
Hypergeometric distribution</a> but coyly only described as <span class="emphasis"><em>"the
kurtosis excess is given by a complicated expression."</em></span>).
This has been found numerically equivalent to the <a href="https://en.wikipedia.org/wiki/Hypergeometric_distribution" target="_top">Wikipedia
hypergeometric kurtosis excess formula</a>.
</p></td></tr>
</table></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>

View File

@@ -38,6 +38,42 @@
</p>
<h5>
<a name="math_toolkit.history1.h0"></a>
<span class="phrase"><a name="math_toolkit.history1.math_3_1_0_boost_1_77"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_3_1_0_boost_1_77">Math-3.1.0
(Boost-1.77)</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
This library can now be used entirely standalone, without the rest of Boost:
either use a compiler which supports <code class="computeroutput"><span class="identifier">__has_include</span></code>
or define <code class="computeroutput"><span class="identifier">BOOST_MATH_STANDALONE</span></code>
to enable standalone mode.
</li>
<li class="listitem">
Add <a class="link" href="bilinear_uniform.html" title="Bilinear Uniform Interpolation">Bilinear Uniform Interpolation</a>.
</li>
<li class="listitem">
Add <a class="link" href="number_series/fibonacci_numbers.html" title="Fibonacci Numbers">Fibonacci
Numbers</a>.
</li>
<li class="listitem">
Fix Hypergeometric Distribution kertosis, see <a href="https://github.com/boostorg/math/issues/639" target="_top">#639</a>.
</li>
<li class="listitem">
Fix closed Catmull-Rom curves to have the same start/end point. See <a href="https://github.com/boostorg/math/issues/636" target="_top">#636</a>.
</li>
<li class="listitem">
Correct Bernoulli number caching in multi-threading multiprecision case.
</li>
<li class="listitem">
Re-enabled the ability to build in environments with no std lib threading
support. See <a href="https://github.com/boostorg/math/issues/621" target="_top">#621</a>.
</li>
<li class="listitem">
Correct Gini-coefficient parrellel calculation.
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h1"></a>
<span class="phrase"><a name="math_toolkit.history1.math_3_0_0_boost_1_76"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_3_0_0_boost_1_76">Math-3.0.0
(Boost-1.76)</a>
</h5>
@@ -88,7 +124,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h1"></a>
<a name="math_toolkit.history1.h2"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_13_0_boost_1_75"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_13_0_boost_1_75">Math-2.13.0
(Boost-1.75)</a>
</h5>
@@ -139,7 +175,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h2"></a>
<a name="math_toolkit.history1.h3"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_12_0_boost_1_73"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_12_0_boost_1_73">Math-2.12.0
(Boost-1.73)</a>
</h5>
@@ -181,7 +217,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h3"></a>
<a name="math_toolkit.history1.h4"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_11_0_boost_1_72"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_11_0_boost_1_72">Math-2.11.0
(Boost-1.72)</a>
</h5>
@@ -243,7 +279,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h4"></a>
<a name="math_toolkit.history1.h5"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_10_0_boost_1_71"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_10_0_boost_1_71">Math-2.10.0
(Boost-1.71)</a>
</h5>
@@ -277,7 +313,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h5"></a>
<a name="math_toolkit.history1.h6"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_9_0_boost_1_70"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_9_0_boost_1_70">Math-2.9.0
(Boost-1.70)</a>
</h5>
@@ -331,7 +367,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h6"></a>
<a name="math_toolkit.history1.h7"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_8_0_boost_1_69"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_8_0_boost_1_69">Math-2.8.0
(Boost-1.69)</a>
</h5>
@@ -388,7 +424,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h7"></a>
<a name="math_toolkit.history1.h8"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_7_1_boost_1_68"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_7_1_boost_1_68">Math-2.7.1
(Boost-1.68)</a>
</h5>
@@ -402,7 +438,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h8"></a>
<a name="math_toolkit.history1.h9"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_7_0_boost_1_66"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_7_0_boost_1_66">Math-2.7.0
(Boost-1.66)</a>
</h5>
@@ -419,7 +455,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h9"></a>
<a name="math_toolkit.history1.h10"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_6_0_boost_1_65"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_6_0_boost_1_65">Math-2.6.0
(Boost-1.65)</a>
</h5>
@@ -456,7 +492,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h10"></a>
<a name="math_toolkit.history1.h11"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_5_2_boost_1_64"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_5_2_boost_1_64">Math-2.5.2
(Boost-1.64)</a>
</h5>
@@ -473,7 +509,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h11"></a>
<a name="math_toolkit.history1.h12"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_5_1_boost_1_63"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_5_1_boost_1_63">Math-2.5.1
(Boost-1.63)</a>
</h5>
@@ -489,7 +525,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h12"></a>
<a name="math_toolkit.history1.h13"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_5_0_boost_1_62"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_5_0_boost_1_62">Math-2.5.0
(Boost-1.62)</a>
</h5>
@@ -514,7 +550,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h13"></a>
<a name="math_toolkit.history1.h14"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_4_0_boost_1_61"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_4_0_boost_1_61">Math-2.4.0
(Boost-1.61)</a>
</h5>
@@ -525,7 +561,7 @@
Polynomial arithmetic added to tools.
</li></ul></div>
<h5>
<a name="math_toolkit.history1.h14"></a>
<a name="math_toolkit.history1.h15"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_3_0_boost_1_60"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_3_0_boost_1_60">Math-2.3.0
(Boost-1.60)</a>
</h5>
@@ -604,7 +640,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h15"></a>
<a name="math_toolkit.history1.h16"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_2_1"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_2_1">Math-2.2.1</a>
</h5>
<p>
@@ -623,7 +659,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h16"></a>
<a name="math_toolkit.history1.h17"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_2_0_boost_1_58_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_2_0_boost_1_58_0">Math-2.2.0
(boost-1.58.0)</a>
</h5>
@@ -667,7 +703,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h17"></a>
<a name="math_toolkit.history1.h18"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_1_0_boost_1_57_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_1_0_boost_1_57_0">Math-2.1.0
(boost-1.57.0)</a>
</h5>
@@ -693,7 +729,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h18"></a>
<a name="math_toolkit.history1.h19"></a>
<span class="phrase"><a name="math_toolkit.history1.math_2_0_0_boost_1_56_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_2_0_0_boost_1_56_0">Math-2.0.0
(Boost-1.56.0)</a>
</h5>
@@ -744,7 +780,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h19"></a>
<a name="math_toolkit.history1.h20"></a>
<span class="phrase"><a name="math_toolkit.history1.math_1_9_1"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_1_9_1">Math-1.9.1</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -759,7 +795,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h20"></a>
<a name="math_toolkit.history1.h21"></a>
<span class="phrase"><a name="math_toolkit.history1.math_1_9_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.math_1_9_0">Math-1.9.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -826,7 +862,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h21"></a>
<a name="math_toolkit.history1.h22"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_55"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_55">Boost-1.55</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -885,7 +921,7 @@
and Accurate Parallel Inversion of the Gamma Distribution, Thomas Luu</a>
</p>
<h5>
<a name="math_toolkit.history1.h22"></a>
<a name="math_toolkit.history1.h23"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_54"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_54">Boost-1.54</a>
</h5>
</li>
@@ -939,7 +975,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h23"></a>
<a name="math_toolkit.history1.h24"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_53"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_53">Boost-1.53</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -974,7 +1010,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h24"></a>
<a name="math_toolkit.history1.h25"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_52"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_52">Boost-1.52</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1021,14 +1057,14 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h25"></a>
<a name="math_toolkit.history1.h26"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_51"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_51">Boost-1.51</a>
</h5>
<p>
See Boost-1.52 - some items were added but not listed in time for the release.
</p>
<h5>
<a name="math_toolkit.history1.h26"></a>
<a name="math_toolkit.history1.h27"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_50"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_50">Boost-1.50</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1065,7 +1101,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h27"></a>
<a name="math_toolkit.history1.h28"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_49"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_49">Boost-1.49</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1109,7 +1145,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h28"></a>
<a name="math_toolkit.history1.h29"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_48"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_48">Boost-1.48</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1160,7 +1196,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h29"></a>
<a name="math_toolkit.history1.h30"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_47"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_47">Boost-1.47</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1177,7 +1213,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h30"></a>
<a name="math_toolkit.history1.h31"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_46_1"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_46_1">Boost-1.46.1</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
@@ -1185,7 +1221,7 @@ by switching to use the Students t distribution (or Normal distribution
<a href="https://svn.boost.org/trac/boost/ticket/5095" target="_top">#5113</a>.
</li></ul></div>
<h5>
<a name="math_toolkit.history1.h31"></a>
<a name="math_toolkit.history1.h32"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_46_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_46_0">Boost-1.46.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1200,7 +1236,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h32"></a>
<a name="math_toolkit.history1.h33"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_45_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_45_0">Boost-1.45.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1217,7 +1253,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h33"></a>
<a name="math_toolkit.history1.h34"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_44_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_44_0">Boost-1.44.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1231,7 +1267,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h34"></a>
<a name="math_toolkit.history1.h35"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_41_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_41_0">Boost-1.41.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
@@ -1239,7 +1275,7 @@ by switching to use the Students t distribution (or Normal distribution
its inverse.
</li></ul></div>
<h5>
<a name="math_toolkit.history1.h35"></a>
<a name="math_toolkit.history1.h36"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_40_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_40_0">Boost-1.40.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1275,7 +1311,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h36"></a>
<a name="math_toolkit.history1.h37"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_38_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_38_0">Boost-1.38.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1287,14 +1323,14 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h37"></a>
<a name="math_toolkit.history1.h38"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_37_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_37_0">Boost-1.37.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Improved accuracy and testing of the inverse hypergeometric functions.
</li></ul></div>
<h5>
<a name="math_toolkit.history1.h38"></a>
<a name="math_toolkit.history1.h39"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_36_0"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_36_0">Boost-1.36.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1327,7 +1363,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h39"></a>
<a name="math_toolkit.history1.h40"></a>
<span class="phrase"><a name="math_toolkit.history1.boost_1_35_0_post_review_first_o"></a></span><a class="link" href="history1.html#math_toolkit.history1.boost_1_35_0_post_review_first_o">Boost-1.35.0:
Post Review First Official Release</a>
</h5>
@@ -1359,7 +1395,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h40"></a>
<a name="math_toolkit.history1.h41"></a>
<span class="phrase"><a name="math_toolkit.history1.milestone_4_second_review_candid"></a></span><a class="link" href="history1.html#math_toolkit.history1.milestone_4_second_review_candid">Milestone
4: Second Review Candidate (1st March 2007)</a>
</h5>
@@ -1373,7 +1409,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h41"></a>
<a name="math_toolkit.history1.h42"></a>
<span class="phrase"><a name="math_toolkit.history1.milestone_3_first_review_candida"></a></span><a class="link" href="history1.html#math_toolkit.history1.milestone_3_first_review_candida">Milestone
3: First Review Candidate (31st Dec 2006)</a>
</h5>
@@ -1401,7 +1437,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h42"></a>
<a name="math_toolkit.history1.h43"></a>
<span class="phrase"><a name="math_toolkit.history1.milestone_2_released_september_1"></a></span><a class="link" href="history1.html#math_toolkit.history1.milestone_2_released_september_1">Milestone
2: Released September 10th 2006</a>
</h5>
@@ -1437,7 +1473,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history1.h43"></a>
<a name="math_toolkit.history1.h44"></a>
<span class="phrase"><a name="math_toolkit.history1.milestone_1_released_march_31st_"></a></span><a class="link" href="history1.html#math_toolkit.history1.milestone_1_released_march_31st_">Milestone
1: Released March 31st 2006</a>
</h5>

View File

@@ -38,6 +38,42 @@
</p>
<h5>
<a name="math_toolkit.history2.h0"></a>
<span class="phrase"><a name="math_toolkit.history2.math_3_1_0_boost_1_77"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_3_1_0_boost_1_77">Math-3.1.0
(Boost-1.77)</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
This library can now be used entirely standalone, without the rest of Boost:
either use a compiler which supports <code class="computeroutput"><span class="identifier">__has_include</span></code>
or define <code class="computeroutput"><span class="identifier">BOOST_MATH_STANDALONE</span></code>
to enable standalone mode.
</li>
<li class="listitem">
Add <a class="link" href="bilinear_uniform.html" title="Bilinear Uniform Interpolation">Bilinear Uniform Interpolation</a>.
</li>
<li class="listitem">
Add <a class="link" href="number_series/fibonacci_numbers.html" title="Fibonacci Numbers">Fibonacci
Numbers</a>.
</li>
<li class="listitem">
Fix Hypergeometric Distribution kertosis, see <a href="https://github.com/boostorg/math/issues/639" target="_top">#639</a>.
</li>
<li class="listitem">
Fix closed Catmull-Rom curves to have the same start/end point. See <a href="https://github.com/boostorg/math/issues/636" target="_top">#636</a>.
</li>
<li class="listitem">
Correct Bernoulli number caching in multi-threading multiprecision case.
</li>
<li class="listitem">
Re-enabled the ability to build in environments with no std lib threading
support. See <a href="https://github.com/boostorg/math/issues/621" target="_top">#621</a>.
</li>
<li class="listitem">
Correct Gini-coefficient parrellel calculation.
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h1"></a>
<span class="phrase"><a name="math_toolkit.history2.math_3_0_0_boost_1_76"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_3_0_0_boost_1_76">Math-3.0.0
(Boost-1.76)</a>
</h5>
@@ -88,7 +124,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h1"></a>
<a name="math_toolkit.history2.h2"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_13_0_boost_1_75"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_13_0_boost_1_75">Math-2.13.0
(Boost-1.75)</a>
</h5>
@@ -139,7 +175,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h2"></a>
<a name="math_toolkit.history2.h3"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_12_0_boost_1_73"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_12_0_boost_1_73">Math-2.12.0
(Boost-1.73)</a>
</h5>
@@ -181,7 +217,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h3"></a>
<a name="math_toolkit.history2.h4"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_11_0_boost_1_72"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_11_0_boost_1_72">Math-2.11.0
(Boost-1.72)</a>
</h5>
@@ -243,7 +279,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h4"></a>
<a name="math_toolkit.history2.h5"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_10_0_boost_1_71"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_10_0_boost_1_71">Math-2.10.0
(Boost-1.71)</a>
</h5>
@@ -277,7 +313,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h5"></a>
<a name="math_toolkit.history2.h6"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_9_0_boost_1_70"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_9_0_boost_1_70">Math-2.9.0
(Boost-1.70)</a>
</h5>
@@ -331,7 +367,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h6"></a>
<a name="math_toolkit.history2.h7"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_8_0_boost_1_69"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_8_0_boost_1_69">Math-2.8.0
(Boost-1.69)</a>
</h5>
@@ -388,7 +424,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h7"></a>
<a name="math_toolkit.history2.h8"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_7_1_boost_1_68"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_7_1_boost_1_68">Math-2.7.1
(Boost-1.68)</a>
</h5>
@@ -402,7 +438,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h8"></a>
<a name="math_toolkit.history2.h9"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_7_0_boost_1_66"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_7_0_boost_1_66">Math-2.7.0
(Boost-1.66)</a>
</h5>
@@ -419,7 +455,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h9"></a>
<a name="math_toolkit.history2.h10"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_6_0_boost_1_65"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_6_0_boost_1_65">Math-2.6.0
(Boost-1.65)</a>
</h5>
@@ -456,7 +492,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h10"></a>
<a name="math_toolkit.history2.h11"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_5_2_boost_1_64"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_5_2_boost_1_64">Math-2.5.2
(Boost-1.64)</a>
</h5>
@@ -473,7 +509,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h11"></a>
<a name="math_toolkit.history2.h12"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_5_1_boost_1_63"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_5_1_boost_1_63">Math-2.5.1
(Boost-1.63)</a>
</h5>
@@ -489,7 +525,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h12"></a>
<a name="math_toolkit.history2.h13"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_5_0_boost_1_62"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_5_0_boost_1_62">Math-2.5.0
(Boost-1.62)</a>
</h5>
@@ -514,7 +550,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h13"></a>
<a name="math_toolkit.history2.h14"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_4_0_boost_1_61"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_4_0_boost_1_61">Math-2.4.0
(Boost-1.61)</a>
</h5>
@@ -525,7 +561,7 @@
Polynomial arithmetic added to tools.
</li></ul></div>
<h5>
<a name="math_toolkit.history2.h14"></a>
<a name="math_toolkit.history2.h15"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_3_0_boost_1_60"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_3_0_boost_1_60">Math-2.3.0
(Boost-1.60)</a>
</h5>
@@ -604,7 +640,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h15"></a>
<a name="math_toolkit.history2.h16"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_2_1"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_2_1">Math-2.2.1</a>
</h5>
<p>
@@ -623,7 +659,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h16"></a>
<a name="math_toolkit.history2.h17"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_2_0_boost_1_58_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_2_0_boost_1_58_0">Math-2.2.0
(boost-1.58.0)</a>
</h5>
@@ -667,7 +703,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h17"></a>
<a name="math_toolkit.history2.h18"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_1_0_boost_1_57_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_1_0_boost_1_57_0">Math-2.1.0
(boost-1.57.0)</a>
</h5>
@@ -693,7 +729,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h18"></a>
<a name="math_toolkit.history2.h19"></a>
<span class="phrase"><a name="math_toolkit.history2.math_2_0_0_boost_1_56_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_2_0_0_boost_1_56_0">Math-2.0.0
(Boost-1.56.0)</a>
</h5>
@@ -744,7 +780,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h19"></a>
<a name="math_toolkit.history2.h20"></a>
<span class="phrase"><a name="math_toolkit.history2.math_1_9_1"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_1_9_1">Math-1.9.1</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -759,7 +795,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h20"></a>
<a name="math_toolkit.history2.h21"></a>
<span class="phrase"><a name="math_toolkit.history2.math_1_9_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.math_1_9_0">Math-1.9.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -826,7 +862,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h21"></a>
<a name="math_toolkit.history2.h22"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_55"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_55">Boost-1.55</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -885,7 +921,7 @@
and Accurate Parallel Inversion of the Gamma Distribution, Thomas Luu</a>
</p>
<h5>
<a name="math_toolkit.history2.h22"></a>
<a name="math_toolkit.history2.h23"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_54"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_54">Boost-1.54</a>
</h5>
</li>
@@ -939,7 +975,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h23"></a>
<a name="math_toolkit.history2.h24"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_53"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_53">Boost-1.53</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -974,7 +1010,7 @@
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h24"></a>
<a name="math_toolkit.history2.h25"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_52"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_52">Boost-1.52</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1021,14 +1057,14 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h25"></a>
<a name="math_toolkit.history2.h26"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_51"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_51">Boost-1.51</a>
</h5>
<p>
See Boost-1.52 - some items were added but not listed in time for the release.
</p>
<h5>
<a name="math_toolkit.history2.h26"></a>
<a name="math_toolkit.history2.h27"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_50"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_50">Boost-1.50</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1065,7 +1101,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h27"></a>
<a name="math_toolkit.history2.h28"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_49"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_49">Boost-1.49</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1109,7 +1145,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h28"></a>
<a name="math_toolkit.history2.h29"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_48"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_48">Boost-1.48</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1160,7 +1196,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h29"></a>
<a name="math_toolkit.history2.h30"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_47"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_47">Boost-1.47</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1177,7 +1213,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h30"></a>
<a name="math_toolkit.history2.h31"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_46_1"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_46_1">Boost-1.46.1</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
@@ -1185,7 +1221,7 @@ by switching to use the Students t distribution (or Normal distribution
<a href="https://svn.boost.org/trac/boost/ticket/5095" target="_top">#5113</a>.
</li></ul></div>
<h5>
<a name="math_toolkit.history2.h31"></a>
<a name="math_toolkit.history2.h32"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_46_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_46_0">Boost-1.46.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1200,7 +1236,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h32"></a>
<a name="math_toolkit.history2.h33"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_45_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_45_0">Boost-1.45.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1217,7 +1253,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h33"></a>
<a name="math_toolkit.history2.h34"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_44_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_44_0">Boost-1.44.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1231,7 +1267,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h34"></a>
<a name="math_toolkit.history2.h35"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_41_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_41_0">Boost-1.41.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
@@ -1239,7 +1275,7 @@ by switching to use the Students t distribution (or Normal distribution
its inverse.
</li></ul></div>
<h5>
<a name="math_toolkit.history2.h35"></a>
<a name="math_toolkit.history2.h36"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_40_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_40_0">Boost-1.40.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1275,7 +1311,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h36"></a>
<a name="math_toolkit.history2.h37"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_38_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_38_0">Boost-1.38.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1287,14 +1323,14 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h37"></a>
<a name="math_toolkit.history2.h38"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_37_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_37_0">Boost-1.37.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
Improved accuracy and testing of the inverse hypergeometric functions.
</li></ul></div>
<h5>
<a name="math_toolkit.history2.h38"></a>
<a name="math_toolkit.history2.h39"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_36_0"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_36_0">Boost-1.36.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1327,7 +1363,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h39"></a>
<a name="math_toolkit.history2.h40"></a>
<span class="phrase"><a name="math_toolkit.history2.boost_1_35_0_post_review_first_o"></a></span><a class="link" href="history2.html#math_toolkit.history2.boost_1_35_0_post_review_first_o">Boost-1.35.0:
Post Review First Official Release</a>
</h5>
@@ -1359,7 +1395,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h40"></a>
<a name="math_toolkit.history2.h41"></a>
<span class="phrase"><a name="math_toolkit.history2.milestone_4_second_review_candid"></a></span><a class="link" href="history2.html#math_toolkit.history2.milestone_4_second_review_candid">Milestone
4: Second Review Candidate (1st March 2007)</a>
</h5>
@@ -1373,7 +1409,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h41"></a>
<a name="math_toolkit.history2.h42"></a>
<span class="phrase"><a name="math_toolkit.history2.milestone_3_first_review_candida"></a></span><a class="link" href="history2.html#math_toolkit.history2.milestone_3_first_review_candida">Milestone
3: First Review Candidate (31st Dec 2006)</a>
</h5>
@@ -1401,7 +1437,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h42"></a>
<a name="math_toolkit.history2.h43"></a>
<span class="phrase"><a name="math_toolkit.history2.milestone_2_released_september_1"></a></span><a class="link" href="history2.html#math_toolkit.history2.milestone_2_released_september_1">Milestone
2: Released September 10th 2006</a>
</h5>
@@ -1437,7 +1473,7 @@ by switching to use the Students t distribution (or Normal distribution
</li>
</ul></div>
<h5>
<a name="math_toolkit.history2.h43"></a>
<a name="math_toolkit.history2.h44"></a>
<span class="phrase"><a name="math_toolkit.history2.milestone_1_released_march_31st_"></a></span><a class="link" href="history2.html#math_toolkit.history2.milestone_1_released_march_31st_">Milestone
1: Released March 31st 2006</a>
</h5>

View File

@@ -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="id1028515"></a>
<a class="indexterm" name="id949810"></a>
</p>
<p>
Boost.Math documentation is provided in both HTML and PDF formats.

View File

@@ -31,6 +31,8 @@
Numbers</a></span></dt>
<dt><span class="section"><a href="number_series/tangent_numbers.html">Tangent Numbers</a></span></dt>
<dt><span class="section"><a href="number_series/primes.html">Prime Numbers</a></span></dt>
<dt><span class="section"><a href="number_series/fibonacci_numbers.html">Fibonacci
Numbers</a></span></dt>
</dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

View File

@@ -0,0 +1,198 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Fibonacci Numbers</title>
<link rel="stylesheet" href="../../math.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../index.html" title="Math Toolkit 3.0.0">
<link rel="up" href="../number_series.html" title="Number Series">
<link rel="prev" href="primes.html" title="Prime Numbers">
<link rel="next" href="../sf_gamma.html" title="Gamma Functions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="primes.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../number_series.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="../sf_gamma.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="math_toolkit.number_series.fibonacci_numbers"></a><a class="link" href="fibonacci_numbers.html" title="Fibonacci Numbers">Fibonacci
Numbers</a>
</h3></div></div></div>
<p>
<a href="https://en.wikipedia.org/wiki/Fibonacci_number" target="_top">Fibonacci numbers</a>
(F<sub>n</sub>) follows the linear recurrence F<sub>n</sub>=F<sub>n-1</sub>+F<sub>n-2</sub> starting with F<sub>0</sub>=0, F<sub>1</sub>=1.
</p>
<h5>
<a name="math_toolkit.number_series.fibonacci_numbers.h0"></a>
<span class="phrase"><a name="math_toolkit.number_series.fibonacci_numbers.synopsis"></a></span><a class="link" href="fibonacci_numbers.html#math_toolkit.number_series.fibonacci_numbers.synopsis">Synopsis</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">fibonacci</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="identifier">T</span> <span class="identifier">fibonacci</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">n</span><span class="special">)</span> <span class="comment">// Checked version (default policy)</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="identifier">T</span> <span class="identifier">fibonacci</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span> <span class="special">&amp;</span><span class="identifier">pol</span><span class="special">)</span> <span class="comment">// Checked version (policy for errors etc.)</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">constexpr</span> <span class="identifier">T</span> <span class="identifier">unchecked_fibonacci</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_fundamental</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">);</span> <span class="special">{</span> <span class="comment">// Unchecked version (no policy).</span>
<span class="special">}}</span> <span class="comment">// namespaces</span>
</pre>
<p>
The functions return F<sub>n</sub> for a given input <code class="literal">n</code> having type
<code class="literal">T</code>.
</p>
<h5>
<a name="math_toolkit.number_series.fibonacci_numbers.h1"></a>
<span class="phrase"><a name="math_toolkit.number_series.fibonacci_numbers.description"></a></span><a class="link" href="fibonacci_numbers.html#math_toolkit.number_series.fibonacci_numbers.description">Description</a>
</h5>
<p>
The checked versions checks for the overflow before starting the computation.
If <code class="literal">n</code> is so large that the result can not be represented
in type <code class="literal">T</code>, it then calls <a class="link" href="../error_handling.html#math_toolkit.error_handling.overflow_error">overflow_error</a>.
The overflow check is susceptible to off-by-one errors around the overflow
limit. See Binet's Formula below for more details on the check.
</p>
<p>
These functions are all <code class="computeroutput"><span class="keyword">constexpr</span></code>
from C++14 onwards, and in addition <code class="computeroutput"><span class="identifier">unchecked_fibonacci</span></code>
is <code class="computeroutput"><span class="keyword">noexcept</span></code> when T is a fundamental
type.
</p>
<p>
The final <a class="link" href="../../policy.html" title="Chapter 21. Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
be used to control the behaviour of the function: how it handles errors,
what level of precision to use etc. Refer to the <a class="link" href="../../policy.html" title="Chapter 21. Policies: Controlling Precision, Error Handling etc">policy
documentation for more details</a>.
</p>
<p>
If in the checked version, the overflow check succeeds then the unchecked
version is called which computes the desired F<sub>n</sub>. Checked version is slower
because of the overhead involved in overflow check.
</p>
<h5>
<a name="math_toolkit.number_series.fibonacci_numbers.h2"></a>
<span class="phrase"><a name="math_toolkit.number_series.fibonacci_numbers.generator"></a></span><a class="link" href="fibonacci_numbers.html#math_toolkit.number_series.fibonacci_numbers.generator">Generator</a>
</h5>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">fibonacci</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">fibonacci_generator</span> <span class="special">{</span>
<span class="comment">// returns consecutive fibonacci number starting from 0, 1, 1, 2, ...</span>
<span class="identifier">T</span> <span class="keyword">operator</span><span class="special">()();</span>
<span class="comment">// reset the generator to start from nth fibonacci number</span>
<span class="keyword">void</span> <span class="identifier">set</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">n</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
The generator returns consecutive fibonacci numbers starting with 0, 1, 1,
2...
</p>
<p>
The state of the generator can be modified using <code class="literal">set()</code>
which makes generator return consecutive fibonacci numbers starting from
<code class="literal">n</code>[sup th] fibonacci number.
</p>
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">fibonacci_generator</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">gen</span><span class="special">;</span>
<span class="keyword">int</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">gen</span><span class="special">();</span> <span class="comment">// x is 0</span>
<span class="keyword">int</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">gen</span><span class="special">();</span> <span class="comment">// y is 1</span>
<span class="keyword">for</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="number">5</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span> <span class="comment">// this loop is same as gen.set(7);</span>
<span class="identifier">gen</span><span class="special">();</span>
<span class="keyword">int</span> <span class="identifier">z</span> <span class="special">=</span> <span class="identifier">gen</span><span class="special">();</span> <span class="comment">// z is 13 </span>
</pre>
<p>
Generator is non-throwing for all fundamental types and will not check for
overflows.
</p>
<h5>
<a name="math_toolkit.number_series.fibonacci_numbers.h3"></a>
<span class="phrase"><a name="math_toolkit.number_series.fibonacci_numbers.type_requirements"></a></span><a class="link" href="fibonacci_numbers.html#math_toolkit.number_series.fibonacci_numbers.type_requirements">Type
Requirements</a>
</h5>
<p>
The type must be an arithmetic type supporting +, -, * and can be initialized
from trivial integral types.
</p>
<h5>
<a name="math_toolkit.number_series.fibonacci_numbers.h4"></a>
<span class="phrase"><a name="math_toolkit.number_series.fibonacci_numbers.example"></a></span><a class="link" href="fibonacci_numbers.html#math_toolkit.number_series.fibonacci_numbers.example">Example</a>
</h5>
<p>
The file <a href="../../../../example/reciprocal_fibonacci_constant.cpp" target="_top">reciprocal_fibonacci_constant.cpp</a>
uses <code class="computeroutput"><span class="identifier">fibonacci_generator</span></code>
to calculate the reciprocal fibonacci constant to 1000 digit precision like
so:
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">fibonacci</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">multiprecision</span><span class="special">/</span><span class="identifier">mpfr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
<span class="keyword">using</span> <span class="identifier">Real</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multiprecision</span><span class="special">::</span><span class="identifier">mpfr_float_1000</span><span class="special">;</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">fibonacci_generator</span><span class="special">&lt;</span><span class="identifier">Real</span><span class="special">&gt;</span> <span class="identifier">gen</span><span class="special">;</span>
<span class="identifier">gen</span><span class="special">.</span><span class="identifier">set</span><span class="special">(</span><span class="number">1</span><span class="special">);</span> <span class="comment">// start producing values from 1st fibonacci number</span>
<span class="identifier">Real</span> <span class="identifier">ans</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
<span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">ITR</span> <span class="special">=</span> <span class="number">1000</span><span class="special">;</span>
<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="identifier">ITR</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span> <span class="special">{</span>
<span class="identifier">ans</span> <span class="special">+=</span> <span class="number">1.0</span> <span class="special">/</span> <span class="identifier">gen</span><span class="special">();</span>
<span class="special">}</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">(</span><span class="number">1000</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">"Reciprocal fibonacci constant after "</span>
<span class="special">&lt;&lt;</span> <span class="identifier">ITR</span> <span class="special">&lt;&lt;</span> <span class="string">" iterations is: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ans</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<h5>
<a name="math_toolkit.number_series.fibonacci_numbers.h5"></a>
<span class="phrase"><a name="math_toolkit.number_series.fibonacci_numbers.implementation"></a></span><a class="link" href="fibonacci_numbers.html#math_toolkit.number_series.fibonacci_numbers.implementation">Implementation</a>
</h5>
<p>
The time complexity for computing fibonacci number is O(log n), without considering
the time complexities of multiplication and addition (where <code class="literal">n</code>
is the input parameter). The implementation is iterative version of <a href="http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD654.PDF" target="_top">Dijkstra's identities</a>
and which simply walks down the bits of <code class="literal">n</code>.
</p>
<h5>
<a name="math_toolkit.number_series.fibonacci_numbers.h6"></a>
<span class="phrase"><a name="math_toolkit.number_series.fibonacci_numbers.binet"></a></span><a class="link" href="fibonacci_numbers.html#math_toolkit.number_series.fibonacci_numbers.binet">Binet's
Formula</a>
</h5>
<p>
There is a closed form expression for computing fibonacci numbers but since
it suffers from imprecision issues (using floating point computation), it
is not implemented.
</p>
<p>
However an approximate formula is used for the overflow checking in the checked
version.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2006-2021 Nikhar Agrawal, Anton Bikineev, Matthew Borland,
Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert Holin, Bruno
Lalande, John Maddock, Evan Miller, Jeremy Murphy, Matthew Pulver, Johan Råde,
Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg, Daryle
Walker and Xiaogang Zhang<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
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>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="primes.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../number_series.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="../sf_gamma.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -7,7 +7,7 @@
<link rel="home" href="../../index.html" title="Math Toolkit 3.0.0">
<link rel="up" href="../number_series.html" title="Number Series">
<link rel="prev" href="tangent_numbers.html" title="Tangent Numbers">
<link rel="next" href="../sf_gamma.html" title="Gamma Functions">
<link rel="next" href="fibonacci_numbers.html" title="Fibonacci Numbers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="tangent_numbers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../number_series.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="../sf_gamma.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="tangent_numbers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../number_series.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="fibonacci_numbers.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
@@ -83,7 +83,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="tangent_numbers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../number_series.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="../sf_gamma.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="tangent_numbers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../number_series.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="fibonacci_numbers.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -7,7 +7,7 @@
<link rel="home" href="../index.html" title="Math Toolkit 3.0.0">
<link rel="up" href="../interpolation.html" title="Chapter 12. Interpolation">
<link rel="prev" href="pchip.html" title="PCHIP interpolation">
<link rel="next" href="../quadrature.html" title="Chapter 13. Quadrature and Differentiation">
<link rel="next" href="bilinear_uniform.html" title="Bilinear Uniform Interpolation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pchip.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../interpolation.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="../quadrature.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="pchip.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../interpolation.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="bilinear_uniform.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -236,7 +236,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="pchip.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../interpolation.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="../quadrature.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="pchip.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../interpolation.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="bilinear_uniform.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Math Toolkit 3.0.0">
<link rel="up" href="../special.html" title="Chapter 8. Special Functions">
<link rel="prev" href="number_series/primes.html" title="Prime Numbers">
<link rel="prev" href="number_series/fibonacci_numbers.html" title="Fibonacci Numbers">
<link rel="next" href="sf_gamma/tgamma.html" title="Gamma">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="number_series/primes.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.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="sf_gamma/tgamma.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="number_series/fibonacci_numbers.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.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="sf_gamma/tgamma.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -54,7 +54,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="number_series/primes.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.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="sf_gamma/tgamma.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="number_series/fibonacci_numbers.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.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="sf_gamma/tgamma.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="Math Toolkit 3.0.0">
<link rel="up" href="index.html" title="Math Toolkit 3.0.0">
<link rel="prev" href="math_toolkit/quintic_hermite.html" title="Quintic Hermite interpolation">
<link rel="prev" href="math_toolkit/bilinear_uniform.html" title="Bilinear Uniform Interpolation">
<link rel="next" href="math_toolkit/trapezoidal.html" title="Trapezoidal Quadrature">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="math_toolkit/quintic_hermite.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="index.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="math_toolkit/trapezoidal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="math_toolkit/bilinear_uniform.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="index.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="math_toolkit/trapezoidal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
@@ -70,7 +70,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="math_toolkit/quintic_hermite.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="index.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="math_toolkit/trapezoidal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
<a accesskey="p" href="math_toolkit/bilinear_uniform.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="index.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="math_toolkit/trapezoidal.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -34,6 +34,8 @@
Numbers</a></span></dt>
<dt><span class="section"><a href="math_toolkit/number_series/tangent_numbers.html">Tangent Numbers</a></span></dt>
<dt><span class="section"><a href="math_toolkit/number_series/primes.html">Prime Numbers</a></span></dt>
<dt><span class="section"><a href="math_toolkit/number_series/fibonacci_numbers.html">Fibonacci
Numbers</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="math_toolkit/sf_gamma.html">Gamma Functions</a></span></dt>
<dd><dl>

View File

@@ -168,6 +168,7 @@ math_toolkit/number_series.html
math_toolkit/number_series/bernoulli_numbers.html
math_toolkit/number_series/tangent_numbers.html
math_toolkit/number_series/primes.html
math_toolkit/number_series/fibonacci_numbers.html
math_toolkit/sf_gamma.html
math_toolkit/sf_gamma/tgamma.html
math_toolkit/sf_gamma/lgamma.html
@@ -326,6 +327,7 @@ math_toolkit/cubic_hermite.html
math_toolkit/makima.html
math_toolkit/pchip.html
math_toolkit/quintic_hermite.html
math_toolkit/bilinear_uniform.html
quadrature.html
math_toolkit/trapezoidal.html
math_toolkit/gauss.html

View File

@@ -8,6 +8,18 @@ All old bug reports including closed ones can be viewed on Trac
Recent issues on GitHub [@https://github.com/boostorg/math/issues?utf8=%E2%9C%93&q=is%3Aissue here].
[h4 Math-3.1.0 (Boost-1.77)]
* This library can now be used entirely standalone, without the rest of Boost: either use a compiler
which supports `__has_include` or define `BOOST_MATH_STANDALONE` to enable standalone mode.
* Add [link math_toolkit.bilinear_uniform Bilinear Uniform Interpolation].
* Add [link math_toolkit.number_series.fibonacci_numbers Fibonacci Numbers].
* Fix Hypergeometric Distribution kertosis, see [@https://github.com/boostorg/math/issues/639 #639].
* Fix closed Catmull-Rom curves to have the same start/end point. See [@https://github.com/boostorg/math/issues/636 #636].
* Correct Bernoulli number caching in multi-threading multiprecision case.
* Re-enabled the ability to build in environments with no std lib threading support. See [@https://github.com/boostorg/math/issues/621 #621].
* Correct Gini-coefficient parrellel calculation.
[h4 Math-3.0.0 (Boost-1.76)]
* [*Breaking Change:] C++03 support is now removed, a C++11 or later conformant compiler is now required to use this library.

View File

@@ -261,11 +261,100 @@ This function is `constexpr` only if the compiler supports C++14 constexpr funct
[endsect] [/section:primes]
[section:fibonacci_numbers Fibonacci Numbers]
[@https://en.wikipedia.org/wiki/Fibonacci_number Fibonacci numbers] (F[sub n]) follows the linear recurrence F[sub n]=F[sub n-1]+F[sub n-2] starting with F[sub 0]=0, F[sub 1]=1.
[h4 Synopsis]
``
#include <boost/math/special_functions/fibonacci.hpp>
``
namespace boost { namespace math {
template <class T, class Policy>
constexpr T fibonacci(unsigned long long n) // Checked version (default policy)
template <class T, class Policy>
constexpr T fibonacci(unsigned long long n, const Policy &pol) // Checked version (policy for errors etc.)
template <typename T>
constexpr T unchecked_fibonacci(unsigned long long n) noexcept(std::is_fundamental<T>::value); { // Unchecked version (no policy).
}} // namespaces
The functions return F[sub n] for a given input [^n] having type [^T].
[h4 Description]
The checked versions checks for the overflow before starting the computation. If [^n] is so large that the result can not
be represented in type [^T], it then calls __overflow_error. The overflow check is susceptible to off-by-one errors around the overflow limit. See Binet's Formula below for more details on the check.
These functions are all `constexpr` from C++14 onwards, and in addition `unchecked_fibonacci` is `noexcept` when T is a fundamental type.
[optional_policy]
If in the checked version, the overflow check succeeds then the unchecked version is called which computes the desired F[sub n]. Checked version is slower because of the overhead involved in overflow check.
[h4 Generator]
``
#include <boost/math/special_functions/fibonacci.hpp>
``
template <typename T>
class fibonacci_generator {
// returns consecutive fibonacci number starting from 0, 1, 1, 2, ...
T operator()();
// reset the generator to start from nth fibonacci number
void set(unsigned long long n);
}
The generator returns consecutive fibonacci numbers starting with 0, 1, 1, 2...
The state of the generator can be modified using [^set()] which makes generator return consecutive fibonacci numbers starting from [^n][sup th] fibonacci number.
boost::math::fibonacci_generator<int> gen;
int x = gen(); // x is 0
int y = gen(); // y is 1
for(int i = 0; i < 5; ++i) // this loop is same as gen.set(7);
gen();
int z = gen(); // z is 13
Generator is non-throwing for all fundamental types and will not check for overflows.
[h4 Type Requirements]
The type must be an arithmetic type supporting +, -, * and can be initialized from trivial integral types.
[h4 Example]
The file [@../../example/reciprocal_fibonacci_constant.cpp reciprocal_fibonacci_constant.cpp] uses `fibonacci_generator` to calculate the
reciprocal fibonacci constant to 1000 digit precision like so:
[import ../../example/reciprocal_fibonacci_constant.cpp]
[fibonacci_eg]
[h4 Implementation]
The time complexity for computing fibonacci number is O(log n), without considering the time complexities of multiplication and addition (where [^n] is the input parameter).
The implementation is iterative version of [@http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD654.PDF Dijkstra's identities] and which simply walks down the bits of [^n].
[h4:binet Binet's Formula]
There is a closed form expression for computing fibonacci numbers but since it suffers from imprecision issues (using floating point computation), it is not implemented.
However an approximate formula is used for the overflow checking in the checked version.
[endsect] [/Fibonacci Numbers]
[endsect] [/Number Series]
[/
Copyright 2013, 2014 Nikhar Agrawal, Christopher Kormanyos, John Maddock, Paul A. Bristow.
Distributed under the Boost Software License, Version 1.0.
Copyright 2020 Madhur Chauhan. 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).
]

View File

@@ -150,7 +150,7 @@ test-suite examples :
[ run ooura_fourier_integrals_example.cpp : : : [ requires cxx11_hdr_mutex cxx11_lambdas cxx11_inline_namespaces cxx11_auto_declarations ] ]
[ run ooura_fourier_integrals_cosine_example.cpp : : : [ requires cxx11_hdr_mutex cxx11_inline_namespaces cxx11_auto_declarations cxx17_std_apply ] ]
[ run ooura_fourier_integrals_multiprecision_example.cpp : : : [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : <linkflags>-lquadmath ] [ requires cxx11_hdr_mutex cxx11_inline_namespaces cxx11_auto_declarations cxx17_std_apply ] ]
[ run reciprocal_fibonacci_constant.cpp : : : [ check-target-builds ../config//has_mpfr "MPFR Support" : <linkflags>"-lmpfr -lgmp" : <build>no ] ]
;
run root_elliptic_finding.cpp /boost/timer : : : release <link>static [ requires cxx11_unified_initialization_syntax cxx11_defaulted_functions ] <target-os>freebsd:<linkflags>"-lrt" <target-os>linux:<linkflags>"-lrt -lpthread" ;

View File

@@ -8,6 +8,8 @@
// This is an example to calculate Reciprocal Fibonacci Constant (A079586 in the OEIS)
// compile with flags: -std=c++11 -lmpfr
//[fibonacci_eg
#include <boost/math/special_functions/fibonacci.hpp>
#include <boost/multiprecision/mpfr.hpp>
#include <iomanip>
@@ -25,3 +27,5 @@ int main() {
std::cout << std::setprecision(1000) << "Reciprocal fibonacci constant after "
<< ITR << " iterations is: " << ans << std::endl;
}
//]

View File

@@ -21,14 +21,12 @@ namespace boost {
namespace math {
namespace detail {
// this should be constexpr in future
const double log_2 = std::log(2.0),
fib_bits_phi = std::log(boost::math::constants::phi<double>()) / log_2,
fib_bits_deno = std::log(5.0) / 2.0 / log_2;
constexpr double fib_bits_phi = 0.69424191363061730173879026;
constexpr double fib_bits_deno = 1.1609640474436811739351597;
} // namespace detail
template <typename T>
inline constexpr T unchecked_fibonacci(unsigned long long n) noexcept {
inline BOOST_CXX14_CONSTEXPR T unchecked_fibonacci(unsigned long long n) noexcept(std::is_fundamental<T>::value) {
// This function is called by the rest and computes the actual nth fibonacci number
// First few fibonacci numbers: 0 (0th), 1 (1st), 1 (2nd), 2 (3rd), ...
if (n <= 2) return n == 0 ? 0 : 1;
@@ -52,7 +50,7 @@ inline constexpr T unchecked_fibonacci(unsigned long long n) noexcept {
}
template <typename T, class Policy>
T inline fibonacci(unsigned long long n, const Policy &pol) {
T inline BOOST_CXX14_CONSTEXPR fibonacci(unsigned long long n, const Policy &pol) {
// check for overflow using approximation to binet's formula: F_n ~ phi^n / sqrt(5)
if (n > 20 && n * detail::fib_bits_phi - detail::fib_bits_deno > std::numeric_limits<T>::digits)
return policies::raise_overflow_error<T>("boost::math::fibonacci<%1%>(unsigned long long)", "Possible overflow detected.", pol);
@@ -60,7 +58,7 @@ T inline fibonacci(unsigned long long n, const Policy &pol) {
}
template <typename T>
T inline fibonacci(unsigned long long n) {
T inline BOOST_CXX14_CONSTEXPR fibonacci(unsigned long long n) {
return fibonacci<T>(n, policies::policy<>());
}
@@ -69,7 +67,7 @@ template <typename T>
class fibonacci_generator {
public:
// return next fibonacci number
T operator()() noexcept {
T operator()() noexcept(std::is_fundamental<T>::value) {
T ret = a;
a = b, b = b + ret; // could've simply: swap(a, b), b += a;
return ret;
@@ -77,7 +75,7 @@ class fibonacci_generator {
// after set(nth), subsequent calls to the generator returns consecutive
// fibonacci numbers starting with the nth fibonacci number
void set(unsigned long long nth) noexcept {
void set(unsigned long long nth) noexcept(std::is_fundamental<T>::value) {
n = nth;
a = unchecked_fibonacci<T>(n);
b = unchecked_fibonacci<T>(n + 1);

View File

@@ -495,7 +495,7 @@ test-suite special_fun :
[ run test_trig.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ]
[ run test_zeta.cpp ../../test/build//boost_unit_test_framework test_instances//test_instances pch_light ]
[ run test_sinc.cpp ../../test/build//boost_unit_test_framework pch_light ]
[ run test_fibonacci.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ]
[ run test_fibonacci.cpp ../../test/build//boost_unit_test_framework ]
;
test-suite distribution_tests :

View File

@@ -94,13 +94,21 @@ BOOST_AUTO_TEST_CASE(generator_check) {
}
}
#ifndef BOOST_NO_CXX14_CONSTEXPR
BOOST_AUTO_TEST_CASE(constexpr_check) {
constexpr int x = boost::math::unchecked_fibonacci<int>(32);
BOOST_TEST(x == 2178309);
static_assert(x == 2178309);
constexpr double y = boost::math::unchecked_fibonacci<double>(40);
BOOST_TEST(y == 102334155.0);
static_assert(y == 102334155.0);
constexpr int xx = boost::math::fibonacci<int>(32);
static_assert(xx == 2178309);
constexpr double yy = boost::math::fibonacci<double>(40);
static_assert(yy == 102334155.0);
// checked fibonacci can't be constexpr because of non-constexpr
// dependency in detail::log_2, detail::fib_bits_phi, detail::fib_bits_deno
}
#endif