2
0
mirror of https://github.com/boostorg/math.git synced 2026-02-24 16:12:15 +00:00

remove boost::random dependency. update docs

This commit is contained in:
Maksym Zhelyeznyakov
2026-01-30 19:48:00 -05:00
parent fe885ca6b6
commit 2a63c305bb
12 changed files with 909 additions and 119 deletions

View File

@@ -1022,9 +1022,9 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/complements.html" title="Complements are supported too - and when to use them"><span class="index-entry-level-1">Complements are supported too - and when to use them</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/cs_eg/chi_sq_intervals.html" title="Confidence Intervals on the Standard Deviation"><span class="index-entry-level-1">Confidence Intervals on the Standard Deviation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">Error Handling Example</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/autodiff0.html" title="Reverse Mode Automatic Differentiation"><span class="index-entry-level-1">Reverse Mode Automatic Differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/st_eg/tut_mean_test.html" title="Testing a sample mean for difference from a &quot;true&quot; mean"><span class="index-entry-level-1">Testing a sample mean for difference from a "true" mean</span></a></p></li>
</ul></div>
@@ -1616,7 +1616,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">Error Function Inverses</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/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">Generic operations common to all distributions are non-member functions</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/heuman_lambda.html" title="Heuman Lambda Function"><span class="index-entry-level-1">Heuman Lambda Function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special_tut/special_tut_impl.html" title="Implementation"><span class="index-entry-level-1">Implementation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
@@ -2759,7 +2759,7 @@
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">make_gradient_descent</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</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/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">make_lbfgs</span></p>
@@ -2767,7 +2767,7 @@
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">make_nag</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">mapairy_distribution</span></p>
@@ -2987,7 +2987,7 @@
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">norm</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
@@ -3660,7 +3660,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/differential_evolution.html" title="Differential Evolution"><span class="index-entry-level-1">Differential Evolution</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/estrin.html" title="Estrin's method for polynomial evaluation"><span class="index-entry-level-1">Estrin's method for polynomial evaluation</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>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<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>
@@ -3800,11 +3800,11 @@
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">step</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lambert_w.html" title="Lambert W function"><span class="index-entry-level-1">Lambert W function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/minimize.html" title="minimize"><span class="index-entry-level-1">minimize</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</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/students_t_dist.html" title="Students t Distribution"><span class="index-entry-level-0">students_t_distribution</span></a></p></li>
@@ -4042,9 +4042,9 @@
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">unif01</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
@@ -4135,7 +4135,7 @@
<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/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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Spherical 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/t_test.html" title="t-tests"><span class="index-entry-level-1">t -tests</span></a></p></li>

View File

@@ -34,7 +34,7 @@
<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">abstract_optimizer</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</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/arcine_dist.html" title="Arcsine Distribution"><span class="index-entry-level-0">arcsine_distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none">
@@ -266,10 +266,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/gauss_kronrod.html" title="Gauss-Kronrod Quadrature"><span class="index-entry-level-1">Gauss-Kronrod Quadrature</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/geometric_dist.html" title="Geometric Distribution"><span class="index-entry-level-0">geometric_distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">gradient_descent</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-0">gradient_descent</span></a></p></li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">gradient_norm_convergence_policy</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/gd_opt/minimize.html" title="minimize"><span class="index-entry-level-1">minimize</span></a></p></li></ul></div>
@@ -377,11 +374,11 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-0">negative_binomial_distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">nesterov_accelerated_gradient</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">nesterov_update_policy</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">nonfinite_num_get</span></p>
@@ -513,9 +510,9 @@
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">rvar</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/autodiff0.html" title="Reverse Mode Automatic Differentiation"><span class="index-entry-level-1">Reverse Mode Automatic Differentiation</span></a></p></li>
</ul></div>
</li>

View File

@@ -187,7 +187,7 @@
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">abstract_optimizer</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">accuracy</span></p>
@@ -696,6 +696,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/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/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/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/introduction.html" title="Introduction"><span class="index-entry-level-1">Introduction</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/policies.html" title="Reverse Mode autodiff policies"><span class="index-entry-level-1">Reverse Mode autodiff policies</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/autodiff0.html" title="Reverse Mode Automatic Differentiation"><span class="index-entry-level-1">Reverse Mode Automatic Differentiation</span></a></p></li>
</ul></div>
@@ -3317,13 +3321,13 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/credits.html" title="Credits and Acknowledgements"><span class="index-entry-level-1">Credits and Acknowledgements</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/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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</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/gd_opt/introduction.html" title="Introduction"><span class="index-entry-level-1">Introduction</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/issues.html" title="Known Issues, and TODO List"><span class="index-entry-level-1">Known Issues, and TODO List</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/diff.html" title="Numerical Differentiation"><span class="index-entry-level-1">Numerical Differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../quadrature.html" title="Chapter 14. Quadrature and Differentiation"><span class="index-entry-level-1">Quadrature and Differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/policies.html" title="Reverse Mode autodiff policies"><span class="index-entry-level-1">Reverse Mode autodiff policies</span></a></p></li>
@@ -3411,9 +3415,9 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/overview/complements.html" title="Complements are supported too - and when to use them"><span class="index-entry-level-1">Complements are supported too - and when to use them</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/cs_eg/chi_sq_intervals.html" title="Confidence Intervals on the Standard Deviation"><span class="index-entry-level-1">Confidence Intervals on the Standard Deviation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/error_eg.html" title="Error Handling Example"><span class="index-entry-level-1">Error Handling Example</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/autodiff0.html" title="Reverse Mode Automatic Differentiation"><span class="index-entry-level-1">Reverse Mode Automatic Differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/st_eg/tut_mean_test.html" title="Testing a sample mean for difference from a &quot;true&quot; mean"><span class="index-entry-level-1">Testing a sample mean for difference from a "true" mean</span></a></p></li>
</ul></div>
@@ -4723,6 +4727,8 @@
<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>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/stat_tut/weg/dist_construct_eg.html" title="Distribution Construction Examples"><span class="index-entry-level-1">Distribution Construction Examples</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<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>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/quat_overview.html" title="Overview"><span class="index-entry-level-1">Overview</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>
@@ -5107,7 +5113,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/sf_erf/error_inv.html" title="Error Function Inverses"><span class="index-entry-level-1">Error Function Inverses</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/stat_tut/overview/generic.html" title="Generic operations common to all distributions are non-member functions"><span class="index-entry-level-1">Generic operations common to all distributions are non-member functions</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/ellint/heuman_lambda.html" title="Heuman Lambda Function"><span class="index-entry-level-1">Heuman Lambda Function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/special_tut/special_tut_impl.html" title="Implementation"><span class="index-entry-level-1">Implementation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution"><span class="index-entry-level-1">Inverse Chi Squared Distribution</span></a></p></li>
@@ -5393,7 +5399,7 @@
<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/contact.html" title="Contact Info and Support"><span class="index-entry-level-1">Contact Info and Support</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/hints.html" title="Other Hints and tips"><span class="index-entry-level-1">Other Hints and tips</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/signal_statistics.html" title="Signal Statistics"><span class="index-entry-level-1">Signal Statistics</span></a></p></li>
</ul></div>
@@ -5410,23 +5416,21 @@
<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/autodiff0.html" title="Reverse Mode Automatic Differentiation"><span class="index-entry-level-1">Reverse Mode Automatic Differentiation</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">Gradient Desccent</span></p>
<p><span class="index-entry-level-0">Gradient Descent</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">dist</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">gradient_descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">make_gradient_descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">norm</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">rvar</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">step</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">unif01</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">autodiff</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">dist</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><span class="bold"><strong><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">gradient_descent</span></a></strong></span></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">make_gradient_descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">norm</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">rvar</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">step</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">unif01</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">gradient_descent</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-0">gradient_descent</span></a></p></li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">gradient_norm_convergence_policy</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/gd_opt/minimize.html" title="minimize"><span class="index-entry-level-1">minimize</span></a></p></li></ul></div>
@@ -6158,6 +6162,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/constants_intro.html" title="Introduction"><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/fp_facets/facets_intro.html" title="Introduction"><span class="index-entry-level-1">assert</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/introduction.html" title="Introduction"><span class="index-entry-level-1">autodiff</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/facets_intro.html" title="Introduction"><span class="index-entry-level-1">BOOST_MATH_ASSERT</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/fp_facets/facets_intro.html" title="Introduction"><span class="index-entry-level-1">case</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/constants_intro.html" title="Introduction"><span class="index-entry-level-1">constants</span></a></p></li>
@@ -6677,8 +6682,10 @@
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">L-BFGS</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/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">autodiff</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">dist</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">file</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">lbfgs</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">make_lbfgs</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">rvar</span></a></p></li>
@@ -7397,7 +7404,7 @@
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">make_gradient_descent</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</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/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">make_lbfgs</span></p>
@@ -7405,7 +7412,7 @@
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">make_nag</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">makima</span></p>
@@ -7801,29 +7808,31 @@
</li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution"><span class="index-entry-level-0">negative_binomial_distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">Nesterov Accelerated Gradient Desccent</span></p>
<p><span class="index-entry-level-0">Nesterov Accelerated Gradient Descent</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">abstract_optimizer</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">dist</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">GIT</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">make_nag</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">nesterov_accelerated_gradient</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">nesterov_update_policy</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">rvar</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">size</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">step</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">unif01</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">v</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">abstract_optimizer</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">autodiff</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">differentiation</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">dist</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">file</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">GIT</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">make_nag</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">nesterov_accelerated_gradient</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">nesterov_update_policy</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">rvar</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">size</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">step</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">unif01</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">v</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">nesterov_accelerated_gradient</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">nesterov_update_policy</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li></ul></div>
</li>
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">newton_raphson_iterate</span></p>
@@ -8009,7 +8018,7 @@
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">norm</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/oct_value_ops.html" title="Octonion Value Operations"><span class="index-entry-level-1">Octonion Value Operations</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/value_op.html" title="Quaternion Value Operations"><span class="index-entry-level-1">Quaternion Value Operations</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/pol_tutorial/namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope"><span class="index-entry-level-1">Setting Policies at Namespace or Translation Unit Scope</span></a></p></li>
@@ -9401,9 +9410,9 @@
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">rvar</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/autodiff0.html" title="Reverse Mode Automatic Differentiation"><span class="index-entry-level-1">Reverse Mode Automatic Differentiation</span></a></p></li>
</ul></div>
</li>
@@ -9701,7 +9710,7 @@
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/differential_evolution.html" title="Differential Evolution"><span class="index-entry-level-1">Differential Evolution</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/estrin.html" title="Estrin's method for polynomial evaluation"><span class="index-entry-level-1">Estrin's method for polynomial evaluation</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>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<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>
@@ -9914,11 +9923,11 @@
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">step</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/lambert_w.html" title="Lambert W function"><span class="index-entry-level-1">Lambert W function</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/minimize.html" title="minimize"><span class="index-entry-level-1">minimize</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
@@ -10527,9 +10536,9 @@
<li class="listitem" style="list-style-type: none">
<p><span class="index-entry-level-0">unif01</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/gd_opt/gradient_descent.html" title="Gradient Desccent"><span class="index-entry-level-1">Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/gradient_descent.html" title="Gradient Descent"><span class="index-entry-level-1">Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/lbfgs.html" title="L-BFGS"><span class="index-entry-level-1">L-BFGS</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
</ul></div>
</li>
<li class="listitem" style="list-style-type: none">
@@ -10783,7 +10792,7 @@
<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/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/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Desccent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Desccent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/gd_opt/nesterov.html" title="Nesterov Accelerated Gradient Descent"><span class="index-entry-level-1">Nesterov Accelerated Gradient Descent</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution"><span class="index-entry-level-1">Noncentral Chi-Squared Distribution</span></a></p></li>
<li class="listitem" style="list-style-type: none"><p><a class="link" href="../math_toolkit/bessel/sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds"><span class="index-entry-level-1">Spherical 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/t_test.html" title="t-tests"><span class="index-entry-level-1">t -tests</span></a></p></li>

View File

@@ -29,9 +29,9 @@
</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="gd_opt/introduction.html">Introduction</a></span></dt>
<dt><span class="section"><a href="gd_opt/gradient_descent.html">Gradient Desccent</a></span></dt>
<dt><span class="section"><a href="gd_opt/gradient_descent.html">Gradient Descent</a></span></dt>
<dt><span class="section"><a href="gd_opt/nesterov.html">Nesterov Accelerated Gradient
Desccent</a></span></dt>
Descent</a></span></dt>
<dt><span class="section"><a href="gd_opt/lbfgs.html">L-BFGS</a></span></dt>
<dt><span class="section"><a href="gd_opt/minimize.html">minimize</a></span></dt>
<dt><span class="section"><a href="gd_opt/policies.html">Reverse Mode autodiff policies</a></span></dt>

View File

@@ -1,13 +1,13 @@
<html>
<head>
<meta charset="UTF-8">
<title>Gradient Desccent</title>
<title>Gradient Descent</title>
<link rel="stylesheet" href="../../math.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="../../index.html" title="Math Toolkit 4.2.1">
<link rel="up" href="../gd_opt.html" title="Gradient Based Optimizers">
<link rel="prev" href="introduction.html" title="Introduction">
<link rel="next" href="nesterov.html" title="Nesterov Accelerated Gradient Desccent">
<link rel="next" href="nesterov.html" title="Nesterov Accelerated Gradient Descent">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -25,7 +25,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="math_toolkit.gd_opt.gradient_descent"></a><a class="link" href="gradient_descent.html" title="Gradient Desccent">Gradient Desccent</a>
<a name="math_toolkit.gd_opt.gradient_descent"></a><a class="link" href="gradient_descent.html" title="Gradient Descent">Gradient Descent</a>
</h3></div></div></div>
<h5>
<a name="math_toolkit.gd_opt.gradient_descent.h0"></a>
@@ -101,7 +101,7 @@
</pre>
<p>
where <code class="computeroutput"><span class="identifier">lr</span></code> is a user defined
learning rate. For a more complete decription of the theoretical principle
learning rate. For a more complete description of the theoretical principle
check <a href="https://en.wikipedia.org/wiki/Gradient_descent" target="_top">the wikipedia
page</a>
</p>
@@ -123,7 +123,7 @@
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<code class="computeroutput"><span class="identifier">Objective</span><span class="special">&amp;&amp;</span>
<span class="identifier">obj</span></code> : objective funciton to
<span class="identifier">obj</span></code> : objective function to
minimize
</li>
<li class="listitem">
@@ -134,15 +134,21 @@
<code class="computeroutput"><span class="identifier">RealType</span><span class="special">&amp;</span>
<span class="identifier">lr</span></code> : learning rate. A larger
value takes larger steps during descent, leading to faster, but more
unstable convergence. Conversely, small vaues are more stable but take
unstable convergence. Conversely, small values are more stable but take
longer to converge.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">InitializationPolicy</span><span class="special">&amp;&amp;</span> <span class="identifier">ip</span></code>
: Initialization policy for <code class="computeroutput"><span class="identifier">ArgumentContainer</span></code>,
or the initial guess. By default it is set to <code class="computeroutput"><span class="identifier">tape_initializer_rvar</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;</span></code> which lets the user provide the "initial
guess" by setting the values of <code class="computeroutput"><span class="identifier">x</span></code>
manually. For more info check the Policies section.
: Initialization policy for optimizer state and variables. Users may
supply a custom initialization policy to control how the argument container
and any AD specific runtime state : i.e. reverse-mode tape attachment/reset
are initialized. By default, the optimizer uses the user-provided initial
values in x and performs the standard reverse mode AD initialization
required for gradient evaluation. Custom initialization policies are
useful for randomized starts, non rvar AD types, or when gradients are
supplied externally. See the reverse-mode autodiff policy documentation
for the required initialization policy interface when writing custom
policies.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">ObjectiveEvalPolicy</span><span class="special">&amp;&amp;</span>
@@ -151,7 +157,7 @@
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">GradEvalPolicy</span><span class="special">&amp;&amp;</span>
<span class="identifier">gep</span></code> : tells the optimzier how
<span class="identifier">gep</span></code> : tells the optimizer how
to evaluate the gradient of the objective function. By default <code class="computeroutput"><span class="identifier">reverse_mode_gradient_evaluation_policy</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;</span></code>
</li>
</ul></div>
@@ -173,8 +179,8 @@
<span class="inlinemediaobject"><img src="../../../equations/autodiff/thomson_potential.svg"></span>
</p></blockquote></div></blockquote></div>
<p>
The code below manually minimizes the abover potential energy function for
N particles over their two angular pozitions.
The code below manually minimizes the above potential energy function for
N particles over their two angular positions.
</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">differentiation</span><span class="special">/</span><span class="identifier">autodiff_reverse</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">math</span><span class="special">/</span><span class="identifier">optimization</span><span class="special">/</span><span class="identifier">gradient_descent</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -319,7 +325,7 @@
<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">lr</span> <span class="special">=</span> <span class="number">1e-3</span><span class="special">;</span></pre>
<p>
is the optimizer learning rate. Using the code the way its written, the optimizer
runs for 100000 steps. Running tthe program with
runs for 100000 steps. Running the program with
</p>
<pre class="programlisting"><span class="special">./</span><span class="identifier">thomson_sphere</span> <span class="identifier">N</span>
</pre>
@@ -332,7 +338,7 @@
</p></blockquote></div></blockquote></div>
<p>
Below is a plot of the final energy of the system, and its deviation from
the theoretically predicted values. The table of theorical energy values
the theoretically predicted values. The table of theoretical energy values
for the problem is from <a href="https://en.wikipedia.org/wiki/Thomson_problem" target="_top">wikipedia</a>.
</p>
<div class="blockquote"><blockquote class="blockquote"><div class="blockquote"><blockquote class="blockquote"><p>
@@ -346,7 +352,7 @@
<p>
Often, we don't want to actually implement our own stepping function, i.e.
we care about certain convergence criteria. In the above example, we need
to include the minimier.hpp header:
to include the minimizer.hpp header:
</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">optimization</span><span class="special">/</span><span class="identifier">minimizer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>

View File

@@ -7,7 +7,7 @@
<link rel="home" href="../../index.html" title="Math Toolkit 4.2.1">
<link rel="up" href="../gd_opt.html" title="Gradient Based Optimizers">
<link rel="prev" href="../gd_opt.html" title="Gradient Based Optimizers">
<link rel="next" href="gradient_descent.html" title="Gradient Desccent">
<link rel="next" href="gradient_descent.html" title="Gradient Descent">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -28,13 +28,713 @@
<a name="math_toolkit.gd_opt.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
</h3></div></div></div>
<p>
Gradient based optimizers are algorithms that use the gradient of a funciton
Gradient based optimizers are algorithms that use the gradient of a function
to iteratively find locally extreme points of functions over a set of parameters.
This sections provides a description of a set of gradient optimizers. The
optimizers are written with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">differentiation</span><span class="special">::</span><span class="identifier">reverse_mode</span><span class="special">::</span><span class="identifier">rvar</span></code>
in mind, however if a way to evaluate the funciton and its gradient is provided,
the optimizers should work in exactly the same way.
</p>
<p>
Below is a table that summarizes the intended usage patterns of the provided
optimizers and policies, and is meant as a practical guide rather than a
strict prescription:
</p>
<h2>
<a name="math_toolkit.gd_opt.introduction.h0"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.introduction.table-optimizers"></a></span><a class="link" href="introduction.html#math_toolkit.gd_opt.introduction.table-optimizers">List
of Optimizers</a>
</h2>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Optimizer
</p>
</th>
<th>
<p>
Order
</p>
</th>
<th>
<p>
Uses Curvature
</p>
</th>
<th>
<p>
Memory Cost
</p>
</th>
<th>
<p>
Intended Problem Class
</p>
</th>
<th>
<p>
When to Use
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
gradient descent
</p>
</td>
<td>
<p>
first
</p>
</td>
<td>
<p>
no
</p>
</td>
<td>
<p>
low
</p>
</td>
<td>
<p>
Smooth, well-scaled objectives
</p>
</td>
<td>
<p>
Baseline method; debugging; when behavior transparency matters
</p>
</td>
</tr>
<tr>
<td>
<p>
nesterov accelerated gradient
</p>
</td>
<td>
<p>
first
</p>
</td>
<td>
<p>
no
</p>
</td>
<td>
<p>
low
</p>
</td>
<td>
<p>
Ill-conditioned or narrow-valley problems
</p>
</td>
<td>
<p>
When plain gradient descent converges slowly or oscillates
</p>
</td>
</tr>
<tr>
<td>
<p>
L-BFGS
</p>
</td>
<td>
<p>
quasi second order
</p>
</td>
<td>
<p>
approximate
</p>
</td>
<td>
<p>
medium
</p>
</td>
<td>
<p>
Smooth, deterministic objectives
</p>
</td>
<td>
<p>
When gradients are reliable and faster convergence is needed
</p>
</td>
</tr>
</tbody>
</table></div>
<h2>
<a name="math_toolkit.gd_opt.introduction.h1"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.introduction.table-optimizer-policies"></a></span><a class="link" href="introduction.html#math_toolkit.gd_opt.introduction.table-optimizer-policies">Optimizer
Policies</a>
</h2>
<h5>
<a name="math_toolkit.gd_opt.introduction.h2"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.introduction.initialization_policies"></a></span><a class="link" href="introduction.html#math_toolkit.gd_opt.introduction.initialization_policies">Initialization
Policies</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Policy
</p>
</th>
<th>
<p>
Use case
</p>
</th>
<th>
<p>
Responsibilities
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
tape_initializer_rvar
</p>
</td>
<td>
<p>
User initialzes all varibles manually
</p>
</td>
<td>
<p>
initializes tape
</p>
</td>
</tr>
<tr>
<td>
<p>
random_uniform_initializer_rvar
</p>
</td>
<td>
<p>
Initializes all variables with a random number between a min and
max value
</p>
</td>
<td>
<p>
Initializes variables. Initializes tape.
</p>
</td>
</tr>
<tr>
<td>
<p>
costant_initializer_rvar
</p>
</td>
<td>
<p>
Initializes all variables with a constant
</p>
</td>
<td>
<p>
Initializes variables. Initializes tape.
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="math_toolkit.gd_opt.introduction.h3"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.introduction.evaluation_policies"></a></span><a class="link" href="introduction.html#math_toolkit.gd_opt.introduction.evaluation_policies">Evaluation
Policies</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Policy
</p>
</th>
<th>
<p>
Use case
</p>
</th>
<th>
<p>
Responsibilities
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
reverse_mode_function_eval_policy
</p>
</td>
<td>
<p>
Default. User with boost reverse mode autodiff
</p>
</td>
<td>
<p>
tells the optimizer how to evaluate the objective
</p>
</td>
</tr>
<tr>
<td>
<p>
reverse_mode_gradient_evaluation_policy
</p>
</td>
<td>
<p>
Default. User with boost reverse mode autodiff
</p>
</td>
<td>
<p>
tells the optimizer how to evaluate the gradients of an objective
</p>
</td>
</tr>
</tbody>
</table></div>
<p>
These policies are intended to use with boost reverse mode autodiff. If you
need to use the optimizers with a custom AD variable, or by providing the
gradient of an objective manually, check the docs for policies to see how
the policies are implemented.
</p>
<h2>
<a name="math_toolkit.gd_opt.introduction.h4"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.introduction.line-search-policies"></a></span><a class="link" href="introduction.html#math_toolkit.gd_opt.introduction.line-search-policies">LBFGS line
search policies</a>
</h2>
<p>
the table below summarizes the two line search policies provided for use
with LBFGS.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Policy
</p>
</th>
<th>
<p>
Enforced Conditions
</p>
</th>
<th>
<p>
Per iteration cost
</p>
</th>
<th>
<p>
Convergence
</p>
</th>
<th>
<p>
Use case
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
Strong Wolfe
</p>
</td>
<td>
<p>
function decrease. curvature condition
</p>
</td>
<td>
<p>
higher
</p>
</td>
<td>
<p>
faster
</p>
</td>
<td>
<p>
most of the time
</p>
</td>
</tr>
<tr>
<td>
<p>
Armijo
</p>
</td>
<td>
<p>
function decrease only
</p>
</td>
<td>
<p>
lower
</p>
</td>
<td>
<p>
slower
</p>
</td>
<td>
<p>
you know what you're doing
</p>
</td>
</tr>
</tbody>
</table></div>
<h2>
<a name="math_toolkit.gd_opt.introduction.h5"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.introduction.minimizer-policies"></a></span><a class="link" href="introduction.html#math_toolkit.gd_opt.introduction.minimizer-policies">Minimizer
Policies</a>
</h2>
<h5>
<a name="math_toolkit.gd_opt.introduction.h6"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.introduction.convergence_policies"></a></span><a class="link" href="introduction.html#math_toolkit.gd_opt.introduction.convergence_policies">Convergence
Policies</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Policy
</p>
</th>
<th>
<p>
Criterion
</p>
</th>
<th>
<p>
When to Use
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
gradient_norm_convergence_policy
</p>
</td>
<td>
<p>
gradient norm &lt; tol
</p>
</td>
<td>
<p>
Default. Stationarity based condition
</p>
</td>
</tr>
<tr>
<td>
<p>
objective_tol_convergence_policy
</p>
</td>
<td>
<p>
absolute difference between objective steps is small
</p>
</td>
<td>
<p>
Well-scaled objectives
</p>
</td>
</tr>
<tr>
<td>
<p>
relative_objective_tol_policy
</p>
</td>
<td>
<p>
relative difference between objective steps is small
</p>
</td>
<td>
<p>
Scale-invariant convergence
</p>
</td>
</tr>
<tr>
<td>
<p>
combined_convergence_policy
</p>
</td>
<td>
<p>
logical combination OR
</p>
</td>
<td>
<p>
you need a combination of convergence conditions
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="math_toolkit.gd_opt.introduction.h7"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.introduction.termination_policies"></a></span><a class="link" href="introduction.html#math_toolkit.gd_opt.introduction.termination_policies">Termination
Policies</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Policy
</p>
</th>
<th>
<p>
Controls
</p>
</th>
<th>
<p>
When to Use
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
max_iter_termination_policy
</p>
</td>
<td>
<p>
iteration count
</p>
</td>
<td>
<p>
Hard safety bound (almost always recommended)
</p>
</td>
</tr>
<tr>
<td>
<p>
wallclock_termination_policy
</p>
</td>
<td>
<p>
wall clock time
</p>
</td>
<td>
<p>
benchmarking, real-time constraints
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="math_toolkit.gd_opt.introduction.h8"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.introduction.constraint_and_projection_polici"></a></span><a class="link" href="introduction.html#math_toolkit.gd_opt.introduction.constraint_and_projection_polici">Constraint
and Projection Policies</a>
</h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Policy
</p>
</th>
<th>
<p>
Constraint Type
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
unconstrained_policy
</p>
</td>
<td>
<p>
No constraint
</p>
</td>
</tr>
<tr>
<td>
<p>
box_constraints
</p>
</td>
<td>
<p>
upper/lower bound clip
</p>
</td>
</tr>
<tr>
<td>
<p>
nonnegativity_constraint
</p>
</td>
<td>
<p>
set everything below 0, to 0
</p>
</td>
</tr>
<tr>
<td>
<p>
l2_ball_constraint
</p>
</td>
<td>
<p>
2-norm(x) &lt; r
</p>
</td>
</tr>
<tr>
<td>
<p>
l1_ball_constraint
</p>
</td>
<td>
<p>
1-norm(x) &lt; r
</p>
</td>
</tr>
<tr>
<td>
<p>
simplex_constraint
</p>
</td>
<td>
<p>
Probability simplex
</p>
</td>
</tr>
<tr>
<td>
<p>
function_constraint
</p>
</td>
<td>
<p>
custom user provided function wrapper
</p>
</td>
</tr>
<tr>
<td>
<p>
unit_sphere_constraint
</p>
</td>
<td>
<p>
2-norm(x) = 1
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="copyright-footer">Copyright © 2006-2021 Nikhar Agrawal, Anton Bikineev, Matthew Borland,
Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert Holin, Bruno

View File

@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="../../index.html" title="Math Toolkit 4.2.1">
<link rel="up" href="../gd_opt.html" title="Gradient Based Optimizers">
<link rel="prev" href="nesterov.html" title="Nesterov Accelerated Gradient Desccent">
<link rel="prev" href="nesterov.html" title="Nesterov Accelerated Gradient Descent">
<link rel="next" href="minimize.html" title="minimize">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
@@ -190,9 +190,15 @@
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">InitializationPolicy</span><span class="special">&amp;&amp;</span> <span class="identifier">ip</span></code>
: initialization policy for ArgumentContainer and optimizer state. For
reverse-mode AD, the default typically initializes/attaches the tape
and uses the user-provided initial values in x.
: Initialization policy for optimizer state and variables. Users may
supply a custom initialization policy to control how the argument container
and any AD-specific runtime state : i.e. reverse-mode tape attachment/reset
are initialized. By default, the optimizer uses the same initialization
as gradient descent, taking the user provided initial values in x and
initializing the internal momentum/velocity state to zero. Custom initialization
policies are useful for randomized starts, non rvar AD types, or when
gradients are supplied externally. Check the docs for Reverse Mode autodiff
policies for initialization policy structure to write custom policies.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">ObjectiveEvalPolicy</span><span class="special">&amp;&amp;</span>
@@ -207,16 +213,21 @@
evaluation policy when using <code class="computeroutput"><span class="identifier">rvar</span></code>.
</li>
<li class="listitem">
<p class="simpara">
<code class="computeroutput"><span class="identifier">LineSearchPolicy</span><span class="special">&amp;&amp;</span>
<span class="identifier">lsp</span></code> : policy for selecting
the step length alpha. Default is Strong Wolfe, but Armijo is an option.
</li>
</ul></div>
the step length alpha along a search direction. Determines the acceptance
criteria and how many function/gradient evaluations may be performed
during a step Default is Strong Wolfe, but Armijo is an option. Strong
Wolfe uses both function and gradient information to ensure good curvature
conditions, while Armijo relies only on function decrease and is simpler
but less robust for quasi-Newton methods.
</p>
<h5>
<a name="math_toolkit.gd_opt.lbfgs.h3"></a>
<span class="phrase"><a name="math_toolkit.gd_opt.lbfgs.notes"></a></span><a class="link" href="lbfgs.html#math_toolkit.gd_opt.lbfgs.notes">Notes</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<span class="phrase"><a name="math_toolkit.gd_opt.lbfgs.notes"></a></span><a class="link" href="lbfgs.html#math_toolkit.gd_opt.lbfgs.notes">Notes</a>
</h5>
</li>
<li class="listitem">
LBFGS assumes the objective is sufficiently smooth for gradients to be
informative. It is typically most effective on unconstrained smooth problems.

View File

@@ -1,12 +1,12 @@
<html>
<head>
<meta charset="UTF-8">
<title>Nesterov Accelerated Gradient Desccent</title>
<title>Nesterov Accelerated Gradient Descent</title>
<link rel="stylesheet" href="../../math.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="../../index.html" title="Math Toolkit 4.2.1">
<link rel="up" href="../gd_opt.html" title="Gradient Based Optimizers">
<link rel="prev" href="gradient_descent.html" title="Gradient Desccent">
<link rel="prev" href="gradient_descent.html" title="Gradient Descent">
<link rel="next" href="lbfgs.html" title="L-BFGS">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
@@ -25,8 +25,8 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="math_toolkit.gd_opt.nesterov"></a><a class="link" href="nesterov.html" title="Nesterov Accelerated Gradient Desccent">Nesterov Accelerated Gradient
Desccent</a>
<a name="math_toolkit.gd_opt.nesterov"></a><a class="link" href="nesterov.html" title="Nesterov Accelerated Gradient Descent">Nesterov Accelerated Gradient
Descent</a>
</h3></div></div></div>
<h5>
<a name="math_toolkit.gd_opt.nesterov.h0"></a>
@@ -78,7 +78,7 @@
<span class="special">};</span>
<span class="comment">/* Convenience overloads */</span>
<span class="comment">/* make nesterov acelerated gradient descent by providing
<span class="comment">/* make nesterov accelerated gradient descent by providing
** objective function
** variables to optimize over
** Optionally
@@ -106,7 +106,7 @@
<span class="identifier">InitializationPolicy</span><span class="special">&amp;&amp;</span> <span class="identifier">ip</span><span class="special">);</span>
<span class="comment">/* provide
* initilaization policy
* initialization policy
* objective evaluation policy
* gradient evaluation policy
*/</span>
@@ -175,7 +175,7 @@
<li class="listitem">
<code class="computeroutput"><span class="identifier">RealType</span> <span class="identifier">lr</span></code>
: learning rate. Larger values take larger steps (faster but potentially
unsable). Smaller values are more stable but converge more slowly.
unstable). Smaller values are more stable but converge more slowly.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">RealType</span> <span class="identifier">mu</span></code>
@@ -184,10 +184,15 @@
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">InitializationPolicy</span><span class="special">&amp;&amp;</span> <span class="identifier">ip</span></code>
: initialization policy for the optimizer state and variables. For NAG,
this also initializes the internal momentum/velocity state. By default
the optimizer uses the same initializer as gradient descent and initializes
velocity to zero.
: Initialization policy for optimizer state and variables. Users may
supply a custom initialization policy to control how the argument container
and any AD-specific runtime state : i.e. reverse-mode tape attachment/reset
are initialized. By default, the optimizer uses the same initialization
as gradient descent, taking the user provided initial values in x and
initializing the internal momentum/velocity state to zero. Custom initialization
policies are useful for randomized starts, non rvar AD types, or when
gradients are supplied externally. Check the docs for Reverse Mode autodiff
policies for initialization policy structure to write custom policies.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">ObjectiveEvalPolicy</span><span class="special">&amp;&amp;</span>

View File

@@ -37,9 +37,9 @@
<dt><span class="section"><a href="math_toolkit/gd_opt.html">Gradient Based Optimizers</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="math_toolkit/gd_opt/introduction.html">Introduction</a></span></dt>
<dt><span class="section"><a href="math_toolkit/gd_opt/gradient_descent.html">Gradient Desccent</a></span></dt>
<dt><span class="section"><a href="math_toolkit/gd_opt/gradient_descent.html">Gradient Descent</a></span></dt>
<dt><span class="section"><a href="math_toolkit/gd_opt/nesterov.html">Nesterov Accelerated Gradient
Desccent</a></span></dt>
Descent</a></span></dt>
<dt><span class="section"><a href="math_toolkit/gd_opt/lbfgs.html">L-BFGS</a></span></dt>
<dt><span class="section"><a href="math_toolkit/gd_opt/minimize.html">minimize</a></span></dt>
<dt><span class="section"><a href="math_toolkit/gd_opt/policies.html">Reverse Mode autodiff policies</a></span></dt>

View File

@@ -13,6 +13,70 @@ LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
[section:introduction Introduction]
Gradient based optimizers are algorithms that use the gradient of a function to iteratively find locally extreme points of functions over a set of parameters. This sections provides a description of a set of gradient optimizers. The optimizers are written with `boost::math::differentiation::reverse_mode::rvar` in mind, however if a way to evaluate the funciton and its gradient is provided, the optimizers should work in exactly the same way.
Below is a table that summarizes the intended usage patterns of the provided optimizers and policies, and is meant as a practical guide rather than a strict prescription:
[h1:table-optimizers List of Optimizers]
[table
[[Optimizer] [Order] [Uses Curvature] [Memory Cost] [Intended Problem Class] [When to Use]]
[[gradient descent] [first] [no] [low] [Smooth, well-scaled objectives] [Baseline method; debugging; when behavior transparency matters]]
[[nesterov accelerated gradient] [first] [no] [low] [Ill-conditioned or narrow-valley problems] [When plain gradient descent converges slowly or oscillates]]
[[L-BFGS] [quasi second order] [approximate] [medium] [Smooth, deterministic objectives] [When gradients are reliable and faster convergence is needed]]
]
[h1:table-optimizer-policies Optimizer Policies]
[heading Initialization Policies]
[table
[[Policy] [Use case] [Responsibilities]]
[[tape_initializer_rvar] [User initialzes all varibles manually] [initializes tape]]
[[random_uniform_initializer_rvar] [Initializes all variables with a random number between a min and max value] [Initializes variables. Initializes tape.]]
[[costant_initializer_rvar] [Initializes all variables with a constant] [Initializes variables. Initializes tape.]]
]
[heading Evaluation Policies]
[table
[[Policy] [Use case] [Responsibilities]]
[[reverse_mode_function_eval_policy] [Default. User with boost reverse mode autodiff] [tells the optimizer how to evaluate the objective]]
[[reverse_mode_gradient_evaluation_policy] [Default. User with boost reverse mode autodiff] [tells the optimizer how to evaluate the gradients of an objective]]
]
These policies are intended to use with boost reverse mode autodiff. If you need to use the optimizers with a custom AD variable, or by providing the gradient of an objective manually, check the docs for policies to see how the policies are implemented.
[h1:line-search-policies LBFGS line search policies]
the table below summarizes the two line search policies provided for use with LBFGS.
[table
[[Policy] [Enforced Conditions] [Per iteration cost] [Convergence] [Use case]]
[[Strong Wolfe] [function decrease. curvature condition] [higher] [faster] [most of the time]]
[[Armijo] [function decrease only] [lower] [slower] [you know what you're doing]]
]
[h1:minimizer-policies Minimizer Policies]
[heading Convergence Policies]
[table
[[Policy] [Criterion] [When to Use]]
[[gradient_norm_convergence_policy] [gradient norm < tol] [Default. Stationarity based condition]]
[[objective_tol_convergence_policy] [absolute difference between objective steps is small] [Well-scaled objectives]]
[[relative_objective_tol_policy] [relative difference between objective steps is small] [Scale-invariant convergence]]
[[combined_convergence_policy] [logical combination OR] [you need a combination of convergence conditions]]
]
[heading Termination Policies]
[table
[[Policy] [Controls] [When to Use]]
[[max_iter_termination_policy] [iteration count] [Hard safety bound (almost always recommended)]]
[[wallclock_termination_policy] [wall clock time] [benchmarking, real-time constraints]]
]
[heading Constraint and Projection Policies]
[table
[[Policy] [Constraint Type]]
[[unconstrained_policy] [No constraint]]
[[box_constraints] [upper/lower bound clip]]
[[nonnegativity_constraint] [set everything below 0, to 0]]
[[l2_ball_constraint] [ 2-norm(x) < r]]
[[l1_ball_constraint] [ 1-norm(x) < r]]
[[simplex_constraint] [Probability simplex]]
[[function_constraint] [custom user provided function wrapper]]
[[unit_sphere_constraint] [2-norm(x) = 1]]
]
[endsect] [/section:introduction]
[section:gradient_descent Gradient Descent]

View File

@@ -5,7 +5,6 @@
#ifndef BOOST_MATH_OPTIMIZATION_DETAIL_DIFFERENTIABLE_OPT_UTILITIES_HPP
#define BOOST_MATH_OPTIMIZATION_DETAIL_DIFFERENTIABLE_OPT_UTILITIES_HPP
#include <boost/math/differentiation/autodiff_reverse.hpp>
#include <boost/random.hpp>
#include <cmath>
#include <random>
#include <type_traits>
@@ -144,11 +143,11 @@ random_vector(size_t n)
/** @brief> generates a random std::vector<RealType> of size n
* using mt19937 algorithm
*/
static boost::random::mt19937 rng{ std::random_device{}() };
static boost::random::uniform_real_distribution<RealType> dist(0.0, 1.0);
static std::mt19937 rng{ std::random_device{}() };
static std::uniform_real_distribution<double> dist(0.0, 1.0);
std::vector<RealType> result(n);
std::generate(result.begin(), result.end(), [&] { return dist(rng); });
std::generate(result.begin(), result.end(), [&] { return static_cast<RealType>(dist(rng)); });
return result;
}

View File

@@ -8,7 +8,6 @@
#include <boost/math/differentiation/autodiff_reverse.hpp>
#include <random>
#include <type_traits>
#include <boost/random.hpp>
namespace boost {
namespace math {
@@ -102,10 +101,10 @@ struct random_uniform_initializer_rvar
template<class ArgumentContainer>
void operator()(ArgumentContainer& x) const
{
static boost::random::mt19937 gen{ std::random_device{}() };
static boost::random::uniform_real_distribution<RealType> dist(0.0, 1.0);
static std::mt19937 gen{ std::random_device{}() };
static std::uniform_real_distribution<double> dist(0.0, 1.0);
for (auto& xi : x) {
xi = rdiff::rvar<RealType, 1>(dist(gen));
xi = rdiff::rvar<RealType, 1>(static_cast<RealType>(dist(gen)));
}
auto& tape = rdiff::get_active_tape<RealType, 1>();
tape.add_checkpoint();