Documentation for 8b1eab204b

This commit is contained in:
realstealthninja
2024-11-04 12:43:05 +00:00
parent 4fb6e622e9
commit a7bccf7d01
6732 changed files with 153919 additions and 365711 deletions

View File

@@ -1,3 +1,4 @@
<!-- HTML header for doxygen 1.12.0-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
@@ -5,10 +6,15 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math/integral_approximation.cpp File Reference</title>
<title>TheAlgorithms/C++: math/integral_approximation.cpp File Reference</title>
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@xpack-3rd-party/doxygen-awesome-css@2.2.0-1/doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
</script>
<script type="text/javascript" src="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../navtreedata.js"></script>
@@ -18,14 +24,24 @@
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
<script type="text/javascript">
window.MathJax = {
options: {
ignoreHtmlClass: 'tex2jax_ignore',
processHtmlClass: 'tex2jax_process'
},
loader: {
load: ['[tex]/ams']
},
tex: {
macros: {},
packages: ['base','configmacros','ams']
}
};
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
<script type="text/javascript" id="MathJax-script" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
@@ -33,10 +49,11 @@ MathJax.Hub.Config({
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="../../project_logo.png"/></td>
<td id="projectalign">
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
<div id="projectname">TheAlgorithms/C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
<div id="projectbrief">All the algorithms implemented in C++</div>
</td>
</tr>
</tbody>
@@ -123,7 +140,9 @@ Include dependency graph for integral_approximation.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d5/dc3/integral__approximation_8cpp__incl.svg" width="439" height="111"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div><table class="memberdecls">
</div>
<p><a href="../../d1/de9/integral__approximation_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html">math</a></td></tr>
@@ -132,7 +151,7 @@ Namespaces</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aec65db4e5c7317323227f026fe50ef11" id="r_aec65db4e5c7317323227f026fe50ef11"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">math::integral_approx</a> (double lb, double ub, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; double(double)&gt; &amp;func, double delta=.0001)</td></tr>
<tr class="memitem:aec65db4e5c7317323227f026fe50ef11" id="r_aec65db4e5c7317323227f026fe50ef11"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">math::integral_approx</a> (double lb, double ub, const std::function&lt; double(double)&gt; &amp;func, double delta=.0001)</td></tr>
<tr class="memdesc:aec65db4e5c7317323227f026fe50ef11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes integral approximation. <br /></td></tr>
<tr class="separator:aec65db4e5c7317323227f026fe50ef11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50936ee98f4d40f17823befc65a32aec" id="r_a50936ee98f4d40f17823befc65a32aec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html#a50936ee98f4d40f17823befc65a32aec">math::test_eval</a> (double approx, double expected, double threshold)</td></tr>
@@ -149,6 +168,8 @@ Functions</h2></td></tr>
<p>In mathematics, a Riemann sum is a certain kind of approximation of an integral by a finite sum. It is named after nineteenth-century German mathematician Bernhard Riemann. One very common application is approximating the area of functions or lines on a graph and the length of curves and other approximations. The sum is calculated by partitioning the region into shapes (rectangles, trapezoids, parabolas, or cubics) that form a region similar to the region being measured, then calculating the area for each of these shapes, and finally adding all of these small areas together. This approach can be used to find a numerical approximation for a definite integral even if the fundamental theorem of calculus does not make it easy to find a closed-form solution. Because the region filled by the small shapes is usually not the same shape as the region being measured, the Riemann sum will differ from the area being measured. This error can be reduced by dividing up the region more finely, using smaller and smaller shapes. As the shapes get smaller and smaller, the sum approaches the Riemann integral. </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/bwalton24" target="_blank">Benjamin Walton</a> </dd>
<dd>
<a href="https://github.com/shiqisheng00" target="_blank">Shiqi Sheng</a> </dd></dl>
<p class="definition">Definition in file <a class="el" href="../../d1/de9/integral__approximation_8cpp_source.html">integral_approximation.cpp</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&#160;</a></span>main()</h2>
@@ -167,17 +188,14 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<p class="definition">Definition at line <a class="el" href="../../d1/de9/integral__approximation_8cpp_source.html#l00133">133</a> of file <a class="el" href="../../d1/de9/integral__approximation_8cpp_source.html">integral_approximation.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 133</span> {</div>
<div class="line"><span class="lineno"> 134</span> <a class="code hl_function" href="../../d6/d2c/caesar__cipher_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 135</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 136</span>}</div>
<div class="ttc" id="acaesar__cipher_8cpp_html_ae1a3968e7947464bee7714f6d43b7002"><div class="ttname"><a href="../../d6/d2c/caesar__cipher_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a></div><div class="ttdeci">void test()</div><div class="ttdef"><b>Definition</b> caesar_cipher.cpp:100</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d1/de9/integral__approximation_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="271" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="ttc" id="acaesar__cipher_8cpp_html_ae1a3968e7947464bee7714f6d43b7002"><div class="ttname"><a href="../../d6/d2c/caesar__cipher_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a></div><div class="ttdeci">void test()</div><div class="ttdef"><b>Definition</b> <a href="../../d6/d2c/caesar__cipher_8cpp_source.html#l00100">caesar_cipher.cpp:100</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
@@ -202,70 +220,68 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="../../d1/de9/integral__approximation_8cpp_source.html#l00075">75</a> of file <a class="el" href="../../d1/de9/integral__approximation_8cpp_source.html">integral_approximation.cpp</a>.</p>
<div class="fragment"><div class="line"><span class="lineno"> 75</span> {</div>
<div class="line"><span class="lineno"> 76</span> <span class="keywordtype">double</span> <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a> = <a class="code hl_function" href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">math::integral_approx</a>(</div>
<div class="line"><span class="lineno"> 77</span> 3.24, 7.56, [](<span class="keyword">const</span> <span class="keywordtype">double</span> x) { <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/log.html">log</a>(x) + <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/exp.html">exp</a>(x) + x; });</div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test Case 1&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 79</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;function: log(x) + e^x + x&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 80</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;range: [3.24, 7.56]&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 81</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 77</span> 3.24, 7.56, [](<span class="keyword">const</span> <span class="keywordtype">double</span> x) { <span class="keywordflow">return</span> <a class="code hl_function" href="../../d3/db3/lru__cache_8cpp.html#a24d21a345ed06f7fba6919718cf3e058">log</a>(x) + <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(x) + x; });</div>
<div class="line"><span class="lineno"> 78</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test Case 1&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 79</span> std::cout &lt;&lt; <span class="stringliteral">&quot;function: log(x) + e^x + x&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 80</span> std::cout &lt;&lt; <span class="stringliteral">&quot;range: [3.24, 7.56]&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 81</span> std::cout &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 82</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#a50936ee98f4d40f17823befc65a32aec">math::test_eval</a>(<a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a>, 1924.80384023549, .001);</div>
<div class="line"><span class="lineno"> 83</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 84</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;=====================&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 83</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 84</span> std::cout &lt;&lt; <span class="stringliteral">&quot;=====================&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 85</span> </div>
<div class="line"><span class="lineno"> 86</span> <span class="keywordtype">double</span> <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a> = <a class="code hl_function" href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">math::integral_approx</a>(0.023, 3.69, [](<span class="keyword">const</span> <span class="keywordtype">double</span> x) {</div>
<div class="line"><span class="lineno"> 87</span> <span class="keywordflow">return</span> x * x + <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">cos</a>(x) + <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/exp.html">exp</a>(x) + <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/log.html">log</a>(x) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/log.html">log</a>(x);</div>
<div class="line"><span class="lineno"> 87</span> <span class="keywordflow">return</span> x * x + cos(x) + <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(x) + <a class="code hl_function" href="../../d3/db3/lru__cache_8cpp.html#a24d21a345ed06f7fba6919718cf3e058">log</a>(x) * <a class="code hl_function" href="../../d3/db3/lru__cache_8cpp.html#a24d21a345ed06f7fba6919718cf3e058">log</a>(x);</div>
<div class="line"><span class="lineno"> 88</span> });</div>
<div class="line"><span class="lineno"> 89</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test Case 2&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 90</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;function: x^2 + cos(x) + e^x + log^2(x)&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 91</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;range: [.023, 3.69]&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 92</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 89</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test Case 2&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 90</span> std::cout &lt;&lt; <span class="stringliteral">&quot;function: x^2 + cos(x) + e^x + log^2(x)&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 91</span> std::cout &lt;&lt; <span class="stringliteral">&quot;range: [.023, 3.69]&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 92</span> std::cout &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 93</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#a50936ee98f4d40f17823befc65a32aec">math::test_eval</a>(<a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a>, 58.71291345202729, .001);</div>
<div class="line"><span class="lineno"> 94</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 95</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;=====================&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 94</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 95</span> std::cout &lt;&lt; <span class="stringliteral">&quot;=====================&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 96</span> </div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordtype">double</span> <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a> = <a class="code hl_function" href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">math::integral_approx</a>(</div>
<div class="line"><span class="lineno"> 98</span> 10.78, 24.899, [](<span class="keyword">const</span> <span class="keywordtype">double</span> x) { <span class="keywordflow">return</span> x * x * x - x * x + 378; });</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test Case 3&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 100</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;function: x^3 - x^2 + 378&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 101</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;range: [10.78, 24.899]&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 102</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 99</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test Case 3&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 100</span> std::cout &lt;&lt; <span class="stringliteral">&quot;function: x^3 - x^2 + 378&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 101</span> std::cout &lt;&lt; <span class="stringliteral">&quot;range: [10.78, 24.899]&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 102</span> std::cout &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 103</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#a50936ee98f4d40f17823befc65a32aec">math::test_eval</a>(<a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a>, 93320.65915078377, .001);</div>
<div class="line"><span class="lineno"> 104</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 105</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;=====================&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 104</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 105</span> std::cout &lt;&lt; <span class="stringliteral">&quot;=====================&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 106</span> </div>
<div class="line"><span class="lineno"> 107</span> <span class="keywordtype">double</span> test_4 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">math::integral_approx</a>(</div>
<div class="line"><span class="lineno"> 108</span> .101, .505,</div>
<div class="line"><span class="lineno"> 109</span> [](<span class="keyword">const</span> <span class="keywordtype">double</span> x) { <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">cos</a>(x) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/tan.html">tan</a>(x) * x * x + <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/exp.html">exp</a>(x); },</div>
<div class="line"><span class="lineno"> 109</span> [](<span class="keyword">const</span> <span class="keywordtype">double</span> x) { <span class="keywordflow">return</span> cos(x) * tan(x) * x * x + <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(x); },</div>
<div class="line"><span class="lineno"> 110</span> .00001);</div>
<div class="line"><span class="lineno"> 111</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test Case 4&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;function: cos(x)*tan(x)*x^2 + e^x&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 113</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;range: [.101, .505]&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 114</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; test_4 &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 111</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test Case 4&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 112</span> std::cout &lt;&lt; <span class="stringliteral">&quot;function: cos(x)*tan(x)*x^2 + e^x&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 113</span> std::cout &lt;&lt; <span class="stringliteral">&quot;range: [.101, .505]&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 114</span> std::cout &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; test_4 &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 115</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#a50936ee98f4d40f17823befc65a32aec">math::test_eval</a>(test_4, 0.566485986311631, .001);</div>
<div class="line"><span class="lineno"> 116</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 4 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 117</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;=====================&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 116</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test 4 Passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 117</span> std::cout &lt;&lt; <span class="stringliteral">&quot;=====================&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 118</span> </div>
<div class="line"><span class="lineno"> 119</span> <span class="keywordtype">double</span> test_5 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">math::integral_approx</a>(</div>
<div class="line"><span class="lineno"> 120</span> -1, 1, [](<span class="keyword">const</span> <span class="keywordtype">double</span> x) { <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/exp.html">exp</a>(-1 / (x * x)); });</div>
<div class="line"><span class="lineno"> 121</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test Case 5&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 122</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;function: e^(-1/x^2)&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 123</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;range: [-1, 1]&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 124</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; test_5 &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 120</span> -1, 1, [](<span class="keyword">const</span> <span class="keywordtype">double</span> x) { <span class="keywordflow">return</span> <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(-1 / (x * x)); });</div>
<div class="line"><span class="lineno"> 121</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test Case 5&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 122</span> std::cout &lt;&lt; <span class="stringliteral">&quot;function: e^(-1/x^2)&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 123</span> std::cout &lt;&lt; <span class="stringliteral">&quot;range: [-1, 1]&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 124</span> std::cout &lt;&lt; <span class="stringliteral">&quot;value: &quot;</span> &lt;&lt; test_5 &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 125</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#a50936ee98f4d40f17823befc65a32aec">math::test_eval</a>(test_5, 0.1781477117815607, .001);</div>
<div class="line"><span class="lineno"> 126</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 5 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 126</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Test 5 Passed!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><span class="lineno"> 127</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="acos_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a></div><div class="ttdeci">T cos(T... args)</div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="aexp_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/exp.html">std::exp</a></div><div class="ttdeci">T exp(T... args)</div></div>
<div class="ttc" id="aheavy__light__decomposition_8cpp_html_a34b8683a2b429de5cce57e6d733ec817"><div class="ttname"><a href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a></div><div class="ttdeci">static void test_1()</div><div class="ttdef"><b>Definition</b> heavy_light_decomposition.cpp:505</div></div>
<div class="ttc" id="aheavy__light__decomposition_8cpp_html_a458410412185a5f09199deaff7157a8d"><div class="ttname"><a href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a></div><div class="ttdeci">static void test_2()</div><div class="ttdef"><b>Definition</b> heavy_light_decomposition.cpp:549</div></div>
<div class="ttc" id="aheavy__light__decomposition_8cpp_html_af31ec5409537703d9c8a47350386b32a"><div class="ttname"><a href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a></div><div class="ttdeci">static void test_3()</div><div class="ttdef"><b>Definition</b> heavy_light_decomposition.cpp:592</div></div>
<div class="ttc" id="alog_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/log.html">std::log</a></div><div class="ttdeci">T log(T... args)</div></div>
<div class="ttc" id="anamespacemath_html_a50936ee98f4d40f17823befc65a32aec"><div class="ttname"><a href="../../dd/d47/namespacemath.html#a50936ee98f4d40f17823befc65a32aec">math::test_eval</a></div><div class="ttdeci">void test_eval(double approx, double expected, double threshold)</div><div class="ttdoc">Wrapper to evaluate if the approximated value is within .XX% threshold of the exact value.</div><div class="ttdef"><b>Definition</b> integral_approximation.cpp:62</div></div>
<div class="ttc" id="anamespacemath_html_aec65db4e5c7317323227f026fe50ef11"><div class="ttname"><a href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">math::integral_approx</a></div><div class="ttdeci">double integral_approx(double lb, double ub, const std::function&lt; double(double)&gt; &amp;func, double delta=.0001)</div><div class="ttdoc">Computes integral approximation.</div><div class="ttdef"><b>Definition</b> integral_approximation.cpp:42</div></div>
<div class="ttc" id="atan_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/tan.html">std::tan</a></div><div class="ttdeci">T tan(T... args)</div></div>
<div class="ttc" id="aheavy__light__decomposition_8cpp_html_a34b8683a2b429de5cce57e6d733ec817"><div class="ttname"><a href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a></div><div class="ttdeci">static void test_1()</div><div class="ttdef"><b>Definition</b> <a href="../../d2/de9/heavy__light__decomposition_8cpp_source.html#l00505">heavy_light_decomposition.cpp:505</a></div></div>
<div class="ttc" id="aheavy__light__decomposition_8cpp_html_a458410412185a5f09199deaff7157a8d"><div class="ttname"><a href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a></div><div class="ttdeci">static void test_2()</div><div class="ttdef"><b>Definition</b> <a href="../../d2/de9/heavy__light__decomposition_8cpp_source.html#l00549">heavy_light_decomposition.cpp:549</a></div></div>
<div class="ttc" id="aheavy__light__decomposition_8cpp_html_af31ec5409537703d9c8a47350386b32a"><div class="ttname"><a href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a></div><div class="ttdeci">static void test_3()</div><div class="ttdef"><b>Definition</b> <a href="../../d2/de9/heavy__light__decomposition_8cpp_source.html#l00592">heavy_light_decomposition.cpp:592</a></div></div>
<div class="ttc" id="alru__cache_8cpp_html_a24d21a345ed06f7fba6919718cf3e058"><div class="ttname"><a href="../../d3/db3/lru__cache_8cpp.html#a24d21a345ed06f7fba6919718cf3e058">lru_tests::log</a></div><div class="ttdeci">void log(T msg)</div><div class="ttdoc">A function to print given message on console.</div><div class="ttdef"><b>Definition</b> <a href="../../d3/db3/lru__cache_8cpp_source.html#l00149">lru_cache.cpp:149</a></div></div>
<div class="ttc" id="anamespaceciphers_1_1elliptic__curve__key__exchange_html_ac00616a4e40d3cd5cfb4da87d9ff9af0"><div class="ttname"><a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">ciphers::elliptic_curve_key_exchange::exp</a></div><div class="ttdeci">uint256_t exp(uint256_t number, uint256_t power, const uint256_t &amp;mod)</div><div class="ttdoc">This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...</div><div class="ttdef"><b>Definition</b> <a href="../../df/d2c/elliptic__curve__key__exchange_8cpp_source.html#l00078">elliptic_curve_key_exchange.cpp:78</a></div></div>
<div class="ttc" id="anamespacemath_html_a50936ee98f4d40f17823befc65a32aec"><div class="ttname"><a href="../../dd/d47/namespacemath.html#a50936ee98f4d40f17823befc65a32aec">math::test_eval</a></div><div class="ttdeci">void test_eval(double approx, double expected, double threshold)</div><div class="ttdoc">Wrapper to evaluate if the approximated value is within .XX% threshold of the exact value.</div><div class="ttdef"><b>Definition</b> <a href="../../d1/de9/integral__approximation_8cpp_source.html#l00062">integral_approximation.cpp:62</a></div></div>
<div class="ttc" id="anamespacemath_html_aec65db4e5c7317323227f026fe50ef11"><div class="ttname"><a href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">math::integral_approx</a></div><div class="ttdeci">double integral_approx(double lb, double ub, const std::function&lt; double(double)&gt; &amp;func, double delta=.0001)</div><div class="ttdoc">Computes integral approximation.</div><div class="ttdef"><b>Definition</b> <a href="../../d1/de9/integral__approximation_8cpp_source.html#l00042">integral_approximation.cpp:42</a></div></div>
</div><!-- fragment -->
</div>
</div>