Documentation for 2dadbf73f4

This commit is contained in:
github-actions
2024-02-12 20:07:08 +00:00
parent b5b4d78981
commit a1eb9bd385
1261 changed files with 30404 additions and 29974 deletions

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: data_structures::queue_using_array::Queue_Array Class Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -106,7 +108,7 @@ $(document).ready(function(){initNavTree('d6/d04/classdata__structures_1_1queue_
<div class="contents">
<p><a class="el" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html" title="Queue_Array class containing the main data and also index of head and tail of the array.">Queue_Array</a> class containing the main data and also index of head and tail of the array.
<a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#details">More...</a></p>
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for data_structures::queue_using_array::Queue_Array:</div>
<div class="dyncontent">
@@ -115,25 +117,25 @@ Collaboration diagram for data_structures::queue_using_array::Queue_Array:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4dc64488c36f84d927365fa8d1933663" id="r_a4dc64488c36f84d927365fa8d1933663"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a4dc64488c36f84d927365fa8d1933663">enqueue</a> (const int16_t &amp;)</td></tr>
<tr class="memitem:a4dc64488c36f84d927365fa8d1933663" id="r_a4dc64488c36f84d927365fa8d1933663"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4dc64488c36f84d927365fa8d1933663">enqueue</a> (const int16_t &amp;)</td></tr>
<tr class="memdesc:a4dc64488c36f84d927365fa8d1933663"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add element to the first of the queue. <br /></td></tr>
<tr class="separator:a4dc64488c36f84d927365fa8d1933663"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2aaf88c9954ef3ab686f8e4bfbd87622" id="r_a2aaf88c9954ef3ab686f8e4bfbd87622"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2aaf88c9954ef3ab686f8e4bfbd87622">dequeue</a> ()</td></tr>
<tr class="memitem:a2aaf88c9954ef3ab686f8e4bfbd87622" id="r_a2aaf88c9954ef3ab686f8e4bfbd87622"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2aaf88c9954ef3ab686f8e4bfbd87622">dequeue</a> ()</td></tr>
<tr class="memdesc:a2aaf88c9954ef3ab686f8e4bfbd87622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete element from back of the queue. <br /></td></tr>
<tr class="separator:a2aaf88c9954ef3ab686f8e4bfbd87622"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a688b7ea064739ea9fa66bf64bf4ae631" id="r_a688b7ea064739ea9fa66bf64bf4ae631"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a688b7ea064739ea9fa66bf64bf4ae631">display</a> () const</td></tr>
<tr class="memitem:a688b7ea064739ea9fa66bf64bf4ae631" id="r_a688b7ea064739ea9fa66bf64bf4ae631"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a688b7ea064739ea9fa66bf64bf4ae631">display</a> () const</td></tr>
<tr class="memdesc:a688b7ea064739ea9fa66bf64bf4ae631"><td class="mdescLeft">&#160;</td><td class="mdescRight">Show all saved data. <br /></td></tr>
<tr class="separator:a688b7ea064739ea9fa66bf64bf4ae631"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a2f676f2f249eb36dfd49711a03e9e67e" id="r_a2f676f2f249eb36dfd49711a03e9e67e"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a> {-1}</td></tr>
<tr class="memitem:a2f676f2f249eb36dfd49711a03e9e67e" id="r_a2f676f2f249eb36dfd49711a03e9e67e"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a> {-1}</td></tr>
<tr class="memdesc:a2f676f2f249eb36dfd49711a03e9e67e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index of head of the array. <br /></td></tr>
<tr class="separator:a2f676f2f249eb36dfd49711a03e9e67e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9883dfcceede9a42227d2d313ae86f85" id="r_a9883dfcceede9a42227d2d313ae86f85"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a> {-1}</td></tr>
<tr class="memitem:a9883dfcceede9a42227d2d313ae86f85" id="r_a9883dfcceede9a42227d2d313ae86f85"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a> {-1}</td></tr>
<tr class="memdesc:a9883dfcceede9a42227d2d313ae86f85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index of tail of the array. <br /></td></tr>
<tr class="separator:a9883dfcceede9a42227d2d313ae86f85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae69a0bf6c9921b37c516c8a4d2fb904d" id="r_ae69a0bf6c9921b37c516c8a4d2fb904d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int16_t, <a class="el" href="../../d8/df0/queue__using__array_8cpp.html#a2d49e79bd164c298912db252970520d8">max_size</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a> {}</td></tr>
<tr class="memitem:ae69a0bf6c9921b37c516c8a4d2fb904d" id="r_ae69a0bf6c9921b37c516c8a4d2fb904d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int16_t, <a class="el" href="../../d8/df0/queue__using__array_8cpp.html#a2d49e79bd164c298912db252970520d8">max_size</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a> {}</td></tr>
<tr class="memdesc:ae69a0bf6c9921b37c516c8a4d2fb904d"><td class="mdescLeft">&#160;</td><td class="mdescRight">All stored data. <br /></td></tr>
<tr class="separator:ae69a0bf6c9921b37c516c8a4d2fb904d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -149,7 +151,7 @@ Private Attributes</h2></td></tr>
<tr>
<td class="memname">int data_structures::queue_using_array::Queue_Array::dequeue </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -160,23 +162,23 @@ Private Attributes</h2></td></tr>
<dl class="section return"><dt>Returns</dt><dd>data that is deleted if queue is not empty </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 75</span> {</div>
<div class="line"><span class="lineno"> 76</span> int8_t d{0};</div>
<div class="line"><span class="lineno"> 77</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a> == -1) {</div>
<div class="line"><span class="lineno"> 77</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a> == -1) {</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;\nstack is empty &quot;</span>;</div>
<div class="line"><span class="lineno"> 79</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 80</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a> == <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a>) {</div>
<div class="line"><span class="lineno"> 81</span> d = <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/at.html">at</a>(<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a>);</div>
<div class="line"><span class="lineno"> 82</span> <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a> = <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a> = -1;</div>
<div class="line"><span class="lineno"> 80</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a> == <a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a>) {</div>
<div class="line"><span class="lineno"> 81</span> d = <a class="code hl_variable" href="#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/at.html">at</a>(<a class="code hl_variable" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a>);</div>
<div class="line"><span class="lineno"> 82</span> <a class="code hl_variable" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a> = <a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a> = -1;</div>
<div class="line"><span class="lineno"> 83</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 84</span> d = <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/at.html">at</a>(<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a>++);</div>
<div class="line"><span class="lineno"> 84</span> d = <a class="code hl_variable" href="#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/at.html">at</a>(<a class="code hl_variable" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a>++);</div>
<div class="line"><span class="lineno"> 85</span> }</div>
<div class="line"><span class="lineno"> 86</span> </div>
<div class="line"><span class="lineno"> 87</span> <span class="keywordflow">return</span> d;</div>
<div class="line"><span class="lineno"> 88</span>}</div>
<div class="ttc" id="aat_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array/at.html">std::array::at</a></div><div class="ttdeci">T at(T... args)</div></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="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a2f676f2f249eb36dfd49711a03e9e67e"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">data_structures::queue_using_array::Queue_Array::front</a></div><div class="ttdeci">int8_t front</div><div class="ttdoc">Index of head of the array.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:49</div></div>
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a9883dfcceede9a42227d2d313ae86f85"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">data_structures::queue_using_array::Queue_Array::rear</a></div><div class="ttdeci">int8_t rear</div><div class="ttdoc">Index of tail of the array.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:50</div></div>
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_ae69a0bf6c9921b37c516c8a4d2fb904d"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#ae69a0bf6c9921b37c516c8a4d2fb904d">data_structures::queue_using_array::Queue_Array::arr</a></div><div class="ttdeci">std::array&lt; int16_t, max_size &gt; arr</div><div class="ttdoc">All stored data.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:51</div></div>
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a2f676f2f249eb36dfd49711a03e9e67e"><div class="ttname"><a href="#a2f676f2f249eb36dfd49711a03e9e67e">data_structures::queue_using_array::Queue_Array::front</a></div><div class="ttdeci">int8_t front</div><div class="ttdoc">Index of head of the array.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:49</div></div>
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a9883dfcceede9a42227d2d313ae86f85"><div class="ttname"><a href="#a9883dfcceede9a42227d2d313ae86f85">data_structures::queue_using_array::Queue_Array::rear</a></div><div class="ttdeci">int8_t rear</div><div class="ttdoc">Index of tail of the array.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:50</div></div>
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_ae69a0bf6c9921b37c516c8a4d2fb904d"><div class="ttname"><a href="#ae69a0bf6c9921b37c516c8a4d2fb904d">data_structures::queue_using_array::Queue_Array::arr</a></div><div class="ttdeci">std::array&lt; int16_t, max_size &gt; arr</div><div class="ttdoc">All stored data.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:51</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -194,7 +196,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void data_structures::queue_using_array::Queue_Array::display </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td> const</td>
</tr>
</table>
@@ -203,10 +205,10 @@ Here is the call graph for this function:</div>
<p>Show all saved data. </p>
<p>Utility function to show all elements in the queue. </p>
<div class="fragment"><div class="line"><span class="lineno"> 93</span> {</div>
<div class="line"><span class="lineno"> 94</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a> == -1) {</div>
<div class="line"><span class="lineno"> 94</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a> == -1) {</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;\nStack is empty&quot;</span>;</div>
<div class="line"><span class="lineno"> 96</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">for</span> (int16_t i{<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a>}; i &lt;= <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a>; ++i) <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/at.html">at</a>(i) &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">for</span> (int16_t i{<a class="code hl_variable" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a>}; i &lt;= <a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a>; ++i) <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_variable" href="#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/at.html">at</a>(i) &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><span class="lineno"> 98</span> }</div>
<div class="line"><span class="lineno"> 99</span>}</div>
</div><!-- fragment --><div class="dynheader">
@@ -226,8 +228,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void data_structures::queue_using_array::Queue_Array::enqueue </td>
<td>(</td>
<td class="paramtype">const int16_t &amp;&#160;</td>
<td class="paramname"><em>ele</em></td><td>)</td>
<td class="paramtype">const int16_t &amp;</td> <td class="paramname"><span class="paramname"><em>ele</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -242,15 +243,15 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 58</span> {</div>
<div class="line"><span class="lineno"> 59</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a> == <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/size.html">size</a>() - 1) {</div>
<div class="line"><span class="lineno"> 59</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a> == <a class="code hl_variable" href="#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/size.html">size</a>() - 1) {</div>
<div class="line"><span class="lineno"> 60</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;\nStack is full&quot;</span>;</div>
<div class="line"><span class="lineno"> 61</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a> == -1 &amp;&amp; <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a> == -1) {</div>
<div class="line"><span class="lineno"> 62</span> <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2f676f2f249eb36dfd49711a03e9e67e">front</a> = 0;</div>
<div class="line"><span class="lineno"> 63</span> <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a> = 0;</div>
<div class="line"><span class="lineno"> 64</span> <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>[<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a>] = ele;</div>
<div class="line"><span class="lineno"> 65</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a> &lt; <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/size.html">size</a>()) {</div>
<div class="line"><span class="lineno"> 66</span> ++<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a>;</div>
<div class="line"><span class="lineno"> 67</span> <a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>[<a class="code hl_variable" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a9883dfcceede9a42227d2d313ae86f85">rear</a>] = ele;</div>
<div class="line"><span class="lineno"> 61</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a> == -1 &amp;&amp; <a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a> == -1) {</div>
<div class="line"><span class="lineno"> 62</span> <a class="code hl_variable" href="#a2f676f2f249eb36dfd49711a03e9e67e">front</a> = 0;</div>
<div class="line"><span class="lineno"> 63</span> <a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a> = 0;</div>
<div class="line"><span class="lineno"> 64</span> <a class="code hl_variable" href="#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>[<a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a>] = ele;</div>
<div class="line"><span class="lineno"> 65</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a> &lt; <a class="code hl_variable" href="#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array/size.html">size</a>()) {</div>
<div class="line"><span class="lineno"> 66</span> ++<a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a>;</div>
<div class="line"><span class="lineno"> 67</span> <a class="code hl_variable" href="#ae69a0bf6c9921b37c516c8a4d2fb904d">arr</a>[<a class="code hl_variable" href="#a9883dfcceede9a42227d2d313ae86f85">rear</a>] = ele;</div>
<div class="line"><span class="lineno"> 68</span> }</div>
<div class="line"><span class="lineno"> 69</span>}</div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array/size.html">std::array::size</a></div><div class="ttdeci">T size(T... args)</div></div>
@@ -347,7 +348,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d5/d3c/namespacedata__structures.html">data_structures</a></li><li class="navelem"><b>queue_using_array</b></li><li class="navelem"><a class="el" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html">Queue_Array</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: data_structures/reverse_a_linked_list.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d05/reverse__a__linked__list_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d05/reverse__a__linked__list_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -134,17 +136,17 @@ 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:a7f80d9712cc7d77399dcacb4c2917511" id="r_a7f80d9712cc7d77399dcacb4c2917511"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d4/d0e/classdata__structures_1_1linked__list_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d05/reverse__a__linked__list_8cpp.html#a7f80d9712cc7d77399dcacb4c2917511">data_structures::linked_list::copy_all_nodes</a> (const <a class="el" href="../../d4/d0e/classdata__structures_1_1linked__list_1_1_node.html">Node</a> *const <a class="el" href="../../d5/da1/structnode.html">node</a>)</td></tr>
<tr class="memitem:a7f80d9712cc7d77399dcacb4c2917511" id="r_a7f80d9712cc7d77399dcacb4c2917511"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d4/d0e/classdata__structures_1_1linked__list_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7f80d9712cc7d77399dcacb4c2917511">data_structures::linked_list::copy_all_nodes</a> (const <a class="el" href="../../d4/d0e/classdata__structures_1_1linked__list_1_1_node.html">Node</a> *const <a class="el" href="../../d5/da1/structnode.html">node</a>)</td></tr>
<tr class="memdesc:a7f80d9712cc7d77399dcacb4c2917511"><td class="mdescLeft">&#160;</td><td class="mdescRight">creates a deep copy of a list starting at the input node <br /></td></tr>
<tr class="separator:a7f80d9712cc7d77399dcacb4c2917511"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d05/reverse__a__linked__list_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4e119e5a427e2b4e0b9ec6297579709" id="r_aa4e119e5a427e2b4e0b9ec6297579709"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d05/reverse__a__linked__list_8cpp.html#aa4e119e5a427e2b4e0b9ec6297579709">test_copy_constructor</a> ()</td></tr>
<tr class="memitem:aa4e119e5a427e2b4e0b9ec6297579709" id="r_aa4e119e5a427e2b4e0b9ec6297579709"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa4e119e5a427e2b4e0b9ec6297579709">test_copy_constructor</a> ()</td></tr>
<tr class="separator:aa4e119e5a427e2b4e0b9ec6297579709"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29e92f516e1606aa6743fc992aab35be" id="r_a29e92f516e1606aa6743fc992aab35be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d05/reverse__a__linked__list_8cpp.html#a29e92f516e1606aa6743fc992aab35be">test_assignment_operator</a> ()</td></tr>
<tr class="memitem:a29e92f516e1606aa6743fc992aab35be" id="r_a29e92f516e1606aa6743fc992aab35be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a29e92f516e1606aa6743fc992aab35be">test_assignment_operator</a> ()</td></tr>
<tr class="separator:a29e92f516e1606aa6743fc992aab35be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d05/reverse__a__linked__list_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -166,8 +168,7 @@ Algorithm</h3>
<tr>
<td class="memname"><a class="el" href="../../db/d8b/struct_node.html">Node</a> * data_structures::linked_list::copy_all_nodes </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d4/d0e/classdata__structures_1_1linked__list_1_1_node.html">Node</a> *const&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td class="paramtype">const <a class="el" href="../../d4/d0e/classdata__structures_1_1linked__list_1_1_node.html">Node</a> *const</td> <td class="paramname"><span class="paramname"><em>node</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -186,12 +187,12 @@ Algorithm</h3>
<div class="line"><span class="lineno"> 55</span> <span class="comment">// NOLINTNEXTLINE(cppcoreguidelines-owning-memory)</span></div>
<div class="line"><span class="lineno"> 56</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a>* res = <span class="keyword">new</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a>();</div>
<div class="line"><span class="lineno"> 57</span> res-&gt;val = <a class="code hl_class" href="../../d5/da1/structnode.html">node</a>-&gt;val;</div>
<div class="line"><span class="lineno"> 58</span> res-&gt;next = <a class="code hl_function" href="../../d6/d05/reverse__a__linked__list_8cpp.html#a7f80d9712cc7d77399dcacb4c2917511">copy_all_nodes</a>(<a class="code hl_class" href="../../d5/da1/structnode.html">node</a>-&gt;next);</div>
<div class="line"><span class="lineno"> 58</span> res-&gt;next = <a class="code hl_function" href="#a7f80d9712cc7d77399dcacb4c2917511">copy_all_nodes</a>(<a class="code hl_class" href="../../d5/da1/structnode.html">node</a>-&gt;next);</div>
<div class="line"><span class="lineno"> 59</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><span class="lineno"> 60</span> }</div>
<div class="line"><span class="lineno"> 61</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 62</span>}</div>
<div class="ttc" id="areverse__a__linked__list_8cpp_html_a7f80d9712cc7d77399dcacb4c2917511"><div class="ttname"><a href="../../d6/d05/reverse__a__linked__list_8cpp.html#a7f80d9712cc7d77399dcacb4c2917511">data_structures::linked_list::copy_all_nodes</a></div><div class="ttdeci">Node * copy_all_nodes(const Node *const node)</div><div class="ttdoc">creates a deep copy of a list starting at the input node</div><div class="ttdef"><b>Definition</b> reverse_a_linked_list.cpp:53</div></div>
<div class="ttc" id="areverse__a__linked__list_8cpp_html_a7f80d9712cc7d77399dcacb4c2917511"><div class="ttname"><a href="#a7f80d9712cc7d77399dcacb4c2917511">data_structures::linked_list::copy_all_nodes</a></div><div class="ttdeci">Node * copy_all_nodes(const Node *const node)</div><div class="ttdoc">creates a deep copy of a list starting at the input node</div><div class="ttdef"><b>Definition</b> reverse_a_linked_list.cpp:53</div></div>
<div class="ttc" id="astruct_node_html"><div class="ttname"><a href="../../db/d8b/struct_node.html">Node</a></div><div class="ttdef"><b>Definition</b> linkedlist_implentation_usingarray.cpp:14</div></div>
<div class="ttc" id="astructnode_html"><div class="ttname"><a href="../../d5/da1/structnode.html">node</a></div><div class="ttdef"><b>Definition</b> binary_search_tree.cpp:11</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -211,8 +212,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -221,12 +221,12 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 301</span> {</div>
<div class="line"><span class="lineno"> 302</span> <a class="code hl_function" href="../../d6/d05/reverse__a__linked__list_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 302</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 303</span> test_copy_constructor();</div>
<div class="line"><span class="lineno"> 304</span> test_assignment_operator();</div>
<div class="line"><span class="lineno"> 305</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 306</span>}</div>
<div class="ttc" id="areverse__a__linked__list_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/d05/reverse__a__linked__list_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> reverse_a_linked_list.cpp:228</div></div>
<div class="ttc" id="areverse__a__linked__list_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> reverse_a_linked_list.cpp:228</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -247,7 +247,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -308,7 +308,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void test_assignment_operator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -347,7 +347,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void test_copy_constructor </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -382,7 +382,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html">data_structures</a></li><li class="navelem"><a class="el" href="../../d6/d05/reverse__a__linked__list_8cpp.html">reverse_a_linked_list.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: hashing Namespace Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d0c/namespacehashing.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d0c/namespacehashing.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -102,7 +104,7 @@ $(document).ready(function(){initNavTree('d6/d0c/namespacehashing.html','../../'
<div class="contents">
<p>Hashing algorithms.
<a href="../../d6/d0c/namespacehashing.html#details">More...</a></p>
<a href="#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Hashing algorithms. </p>
<p>For <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>.</p>
@@ -116,7 +118,7 @@ $(document).ready(function(){initNavTree('d6/d0c/namespacehashing.html','../../'
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d0c/namespacehashing.html">hashing</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: dynamic_programming/cut_rod.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d10/cut__rod_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d10/cut__rod_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -128,13 +130,13 @@ Namespaces</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a1cc523a30c18c63eac58220c3c494cfa" id="r_a1cc523a30c18c63eac58220c3c494cfa"><td class="memTemplParams" colspan="2">template&lt;size_t T&gt; </td></tr>
<tr class="memitem:a1cc523a30c18c63eac58220c3c494cfa"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d10/cut__rod_8cpp.html#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int, T &gt; &amp;price, const uint64_t &amp;n)</td></tr>
<tr class="memitem:a1cc523a30c18c63eac58220c3c494cfa"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int, T &gt; &amp;price, const uint64_t &amp;n)</td></tr>
<tr class="memdesc:a1cc523a30c18c63eac58220c3c494cfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cuts the rod in different pieces and stores the maximum profit for each piece of the rod. <br /></td></tr>
<tr class="separator:a1cc523a30c18c63eac58220c3c494cfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d10/cut__rod_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to test above algorithm. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d10/cut__rod_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -157,8 +159,7 @@ Algorithm</h3>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -168,10 +169,10 @@ Algorithm</h3>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 110</span> {</div>
<div class="line"><span class="lineno"> 111</span> <span class="comment">// Testing</span></div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_function" href="../../d6/d10/cut__rod_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><span class="lineno"> 113</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 114</span>}</div>
<div class="ttc" id="acut__rod_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/d10/cut__rod_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Function to test above algorithm.</div><div class="ttdef"><b>Definition</b> cut_rod.cpp:71</div></div>
<div class="ttc" id="acut__rod_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Function to test above algorithm.</div><div class="ttdef"><b>Definition</b> cut_rod.cpp:71</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -191,19 +192,12 @@ template&lt;size_t T&gt; </div>
<tr>
<td class="memname">int dynamic_programming::cut_rod::maxProfitByCuttingRod </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int, T &gt; &amp;&#160;</td>
<td class="paramname"><em>price</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int, T &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>price</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>n</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>n</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -270,7 +264,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -288,7 +282,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 73</span> <span class="keyword">const</span> int16_t n1 = 8; <span class="comment">// size of rod</span></div>
<div class="line"><span class="lineno"> 74</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;int32_t, n1&gt;</a> price1 = {1,2,4,6,8,45,21,9}; <span class="comment">// price array</span></div>
<div class="line"><span class="lineno"> 75</span> <span class="keyword">const</span> int64_t max_profit1 =</div>
<div class="line"><span class="lineno"> 76</span> <a class="code hl_function" href="../../d6/d10/cut__rod_8cpp.html#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a>(price1, n1);</div>
<div class="line"><span class="lineno"> 76</span> <a class="code hl_function" href="#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a>(price1, n1);</div>
<div class="line"><span class="lineno"> 77</span> <span class="keyword">const</span> int64_t expected_max_profit1 = 47;</div>
<div class="line"><span class="lineno"> 78</span> assert(max_profit1 == expected_max_profit1);</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;Maximum profit with &quot;</span> &lt;&lt; n1 &lt;&lt; <span class="stringliteral">&quot; inch road is &quot;</span> &lt;&lt; max_profit1</div>
@@ -302,7 +296,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 87</span> 41, 42, 43, 44, 45, 46, 47, 48, 49, 50};</div>
<div class="line"><span class="lineno"> 88</span> </div>
<div class="line"><span class="lineno"> 89</span> <span class="keyword">const</span> int64_t max_profit2=</div>
<div class="line"><span class="lineno"> 90</span> <a class="code hl_function" href="../../d6/d10/cut__rod_8cpp.html#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a>(price2, n2);</div>
<div class="line"><span class="lineno"> 90</span> <a class="code hl_function" href="#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a>(price2, n2);</div>
<div class="line"><span class="lineno"> 91</span> <span class="keyword">const</span> int32_t expected_max_profit2 = 90;</div>
<div class="line"><span class="lineno"> 92</span> assert(max_profit2 == expected_max_profit2);</div>
<div class="line"><span class="lineno"> 93</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;Maximum profit with &quot;</span> &lt;&lt; n2 &lt;&lt; <span class="stringliteral">&quot; inch road is &quot;</span> &lt;&lt; max_profit2</div>
@@ -311,7 +305,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 96</span> <span class="keyword">const</span> int16_t n3 = 5; <span class="comment">// size of rod</span></div>
<div class="line"><span class="lineno"> 97</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;int32_t, n3&gt;</a> price3 = {2,9,17,23,45}; <span class="comment">// price array</span></div>
<div class="line"><span class="lineno"> 98</span> <span class="keyword">const</span> int64_t max_profit3 =</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_function" href="../../d6/d10/cut__rod_8cpp.html#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a>(price3, n3);</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_function" href="#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a>(price3, n3);</div>
<div class="line"><span class="lineno"> 100</span> <span class="keyword">const</span> int64_t expected_max_profit3 = 45;</div>
<div class="line"><span class="lineno"> 101</span> assert(max_profit3 == expected_max_profit3);</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;Maximum profit with &quot;</span> &lt;&lt; n3 &lt;&lt; <span class="stringliteral">&quot; inch road is &quot;</span> &lt;&lt; max_profit3</div>
@@ -319,7 +313,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 104</span>}</div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></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="acut__rod_8cpp_html_a1cc523a30c18c63eac58220c3c494cfa"><div class="ttname"><a href="../../d6/d10/cut__rod_8cpp.html#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a></div><div class="ttdeci">int maxProfitByCuttingRod(const std::array&lt; int, T &gt; &amp;price, const uint64_t &amp;n)</div><div class="ttdoc">Cuts the rod in different pieces and stores the maximum profit for each piece of the rod.</div><div class="ttdef"><b>Definition</b> cut_rod.cpp:44</div></div>
<div class="ttc" id="acut__rod_8cpp_html_a1cc523a30c18c63eac58220c3c494cfa"><div class="ttname"><a href="#a1cc523a30c18c63eac58220c3c494cfa">dynamic_programming::cut_rod::maxProfitByCuttingRod</a></div><div class="ttdeci">int maxProfitByCuttingRod(const std::array&lt; int, T &gt; &amp;price, const uint64_t &amp;n)</div><div class="ttdoc">Cuts the rod in different pieces and stores the maximum profit for each piece of the rod.</div><div class="ttdef"><b>Definition</b> cut_rod.cpp:44</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><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -335,7 +329,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a class="el" href="../../d6/d10/cut__rod_8cpp.html">cut_rod.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: sorting/dnf_sort.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d1a/dnf__sort_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d1a/dnf__sort_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -128,13 +130,13 @@ Namespaces</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a621767fe711db64fe57a2ac4987b11f0" id="r_a621767fe711db64fe57a2ac4987b11f0"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a621767fe711db64fe57a2ac4987b11f0"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d1a/dnf__sort_8cpp.html#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;in_arr)</td></tr>
<tr class="memitem:a621767fe711db64fe57a2ac4987b11f0"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;in_arr)</td></tr>
<tr class="memdesc:a621767fe711db64fe57a2ac4987b11f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function implements DNF sort. <br /></td></tr>
<tr class="separator:a621767fe711db64fe57a2ac4987b11f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d1a/dnf__sort_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d1a/dnf__sort_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -153,8 +155,7 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; sorting::dnf_sort::dnfSort </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>in_arr</em></td><td>)</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>in_arr</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -222,8 +223,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -232,10 +232,10 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 108</span> {</div>
<div class="line"><span class="lineno"> 109</span> <a class="code hl_function" href="../../d6/d1a/dnf__sort_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// execute the test</span></div>
<div class="line"><span class="lineno"> 109</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// execute the test</span></div>
<div class="line"><span class="lineno"> 110</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 111</span>}</div>
<div class="ttc" id="adnf__sort_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/d1a/dnf__sort_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> dnf_sort.cpp:73</div></div>
<div class="ttc" id="adnf__sort_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> dnf_sort.cpp:73</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -256,7 +256,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -274,34 +274,34 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 75</span> <span class="comment">// [1, 0, 2, 1] return [0, 1, 1, 2]</span></div>
<div class="line"><span class="lineno"> 76</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> array1 = {0, 1, 1, 2};</div>
<div class="line"><span class="lineno"> 77</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... &quot;</span>;</div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> arr1 = <a class="code hl_function" href="../../d6/d1a/dnf__sort_8cpp.html#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a>(array1);</div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> arr1 = <a class="code hl_function" href="#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a>(array1);</div>
<div class="line"><span class="lineno"> 79</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/begin.html">std::begin</a>(arr1), <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/end.html">std::end</a>(arr1)));</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;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"> 81</span> <span class="comment">// 2nd test</span></div>
<div class="line"><span class="lineno"> 82</span> <span class="comment">// [1, 0, 0, 1, 1, 0, 2, 1] return [0, 0, 0, 1, 1, 1, 1, 2]</span></div>
<div class="line"><span class="lineno"> 83</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> array2 = {1, 0, 0, 1, 1, 0, 2, 1};</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;Test 2... &quot;</span>;</div>
<div class="line"><span class="lineno"> 85</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> arr2 = <a class="code hl_function" href="../../d6/d1a/dnf__sort_8cpp.html#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a>(array2);</div>
<div class="line"><span class="lineno"> 85</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> arr2 = <a class="code hl_function" href="#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a>(array2);</div>
<div class="line"><span class="lineno"> 86</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/begin.html">std::begin</a>(arr2), <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/end.html">std::end</a>(arr2)));</div>
<div class="line"><span class="lineno"> 87</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;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"> 88</span> <span class="comment">// 3rd test</span></div>
<div class="line"><span class="lineno"> 89</span> <span class="comment">// [1, 1, 0, 0, 1, 2, 2, 0, 2, 1] return [0, 0, 0, 1, 1, 1, 1, 2, 2, 2]</span></div>
<div class="line"><span class="lineno"> 90</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> array3 = {1, 1, 0, 0, 1, 2, 2, 0, 2, 1};</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;Test 3... &quot;</span>;</div>
<div class="line"><span class="lineno"> 92</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> arr3 = <a class="code hl_function" href="../../d6/d1a/dnf__sort_8cpp.html#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a>(array3);</div>
<div class="line"><span class="lineno"> 92</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> arr3 = <a class="code hl_function" href="#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a>(array3);</div>
<div class="line"><span class="lineno"> 93</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/begin.html">std::begin</a>(arr3), <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/end.html">std::end</a>(arr3)));</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;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> <span class="comment">// 4th test</span></div>
<div class="line"><span class="lineno"> 96</span> <span class="comment">// [2, 2, 2, 0, 0, 1, 1] return [0, 0, 1, 1, 2, 2, 2]</span></div>
<div class="line"><span class="lineno"> 97</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> array4 = {2, 2, 2, 0, 0, 1, 1};</div>
<div class="line"><span class="lineno"> 98</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... &quot;</span>;</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> arr4 = <a class="code hl_function" href="../../d6/d1a/dnf__sort_8cpp.html#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a>(array4);</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> arr4 = <a class="code hl_function" href="#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a>(array4);</div>
<div class="line"><span class="lineno"> 100</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/begin.html">std::begin</a>(arr4), <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/end.html">std::end</a>(arr4)));</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;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"> 102</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="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/begin.html">std::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="adnf__sort_8cpp_html_a621767fe711db64fe57a2ac4987b11f0"><div class="ttname"><a href="../../d6/d1a/dnf__sort_8cpp.html#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a></div><div class="ttdeci">std::vector&lt; T &gt; dnfSort(const std::vector&lt; T &gt; &amp;in_arr)</div><div class="ttdoc">The main function implements DNF sort.</div><div class="ttdef"><b>Definition</b> dnf_sort.cpp:38</div></div>
<div class="ttc" id="adnf__sort_8cpp_html_a621767fe711db64fe57a2ac4987b11f0"><div class="ttname"><a href="#a621767fe711db64fe57a2ac4987b11f0">sorting::dnf_sort::dnfSort</a></div><div class="ttdeci">std::vector&lt; T &gt; dnfSort(const std::vector&lt; T &gt; &amp;in_arr)</div><div class="ttdoc">The main function implements DNF sort.</div><div class="ttdef"><b>Definition</b> dnf_sort.cpp:38</div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/end.html">std::end</a></div><div class="ttdeci">T end(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="ais_sorted_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a></div><div class="ttdeci">T is_sorted(T... args)</div></div>
@@ -319,7 +319,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_bb1b521853a9c46347182a9d10420771.html">sorting</a></li><li class="navelem"><a class="el" href="../../d6/d1a/dnf__sort_8cpp.html">dnf_sort.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Member List</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('da/d5a/class_complex.html','../../'); initResizable(); });
$(function(){initNavTree('da/d5a/class_complex.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -122,7 +124,7 @@ $(document).ready(function(){initNavTree('da/d5a/class_complex.html','../../');
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers::HillCipher Class Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d26/classciphers_1_1_hill_cipher.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d26/classciphers_1_1_hill_cipher.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -106,56 +108,56 @@ $(document).ready(function(){initNavTree('d6/d26/classciphers_1_1_hill_cipher.ht
<div class="contents">
<p>Implementation of <a href="https://en.wikipedia.org/wiki/Hill_cipher" target="_blank">Hill Cipher</a> algorithm.
<a href="../../d6/d26/classciphers_1_1_hill_cipher.html#details">More...</a></p>
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a642f70fb54cb50b00fb6df7c3f2b120e" id="r_a642f70fb54cb50b00fb6df7c3f2b120e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e">generate_encryption_key</a> (size_t size, int limit1=0, int limit2=10)</td></tr>
<tr class="memitem:a642f70fb54cb50b00fb6df7c3f2b120e" id="r_a642f70fb54cb50b00fb6df7c3f2b120e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a642f70fb54cb50b00fb6df7c3f2b120e">generate_encryption_key</a> (size_t size, int limit1=0, int limit2=10)</td></tr>
<tr class="memdesc:a642f70fb54cb50b00fb6df7c3f2b120e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provide more security. Important conditions are: <br /></td></tr>
<tr class="separator:a642f70fb54cb50b00fb6df7c3f2b120e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab02c7563889bf1e363deb8e21967b706" id="r_ab02c7563889bf1e363deb8e21967b706"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706">generate_decryption_key</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; const &amp;encrypt_key)</td></tr>
<tr class="memitem:ab02c7563889bf1e363deb8e21967b706" id="r_ab02c7563889bf1e363deb8e21967b706"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab02c7563889bf1e363deb8e21967b706">generate_decryption_key</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; const &amp;encrypt_key)</td></tr>
<tr class="memdesc:ab02c7563889bf1e363deb8e21967b706"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate decryption matrix from an encryption matrix key. <br /></td></tr>
<tr class="separator:ab02c7563889bf1e363deb8e21967b706"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a405b0a28d66a61239d3565d5256f9cb5" id="r_a405b0a28d66a61239d3565d5256f9cb5"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt;, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5">generate_keys</a> (size_t size, int limit1=0, int limit2=10)</td></tr>
<tr class="memitem:a405b0a28d66a61239d3565d5256f9cb5" id="r_a405b0a28d66a61239d3565d5256f9cb5"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt;, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a405b0a28d66a61239d3565d5256f9cb5">generate_keys</a> (size_t size, int limit1=0, int limit2=10)</td></tr>
<tr class="memdesc:a405b0a28d66a61239d3565d5256f9cb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate encryption and decryption key pair. <br /></td></tr>
<tr class="separator:a405b0a28d66a61239d3565d5256f9cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8bbb6e4a5749f6008b06602d5103917" id="r_aa8bbb6e4a5749f6008b06602d5103917"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917">encrypt_text</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &amp;encrypt_key)</td></tr>
<tr class="memitem:aa8bbb6e4a5749f6008b06602d5103917" id="r_aa8bbb6e4a5749f6008b06602d5103917"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8bbb6e4a5749f6008b06602d5103917">encrypt_text</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;encrypt_key)</td></tr>
<tr class="memdesc:aa8bbb6e4a5749f6008b06602d5103917"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt a given text using a given key. <br /></td></tr>
<tr class="separator:aa8bbb6e4a5749f6008b06602d5103917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a427acfac1dbff3f48a2b071d449d965b" id="r_a427acfac1dbff3f48a2b071d449d965b"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b">decrypt_text</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &amp;decrypt_key)</td></tr>
<tr class="memitem:a427acfac1dbff3f48a2b071d449d965b" id="r_a427acfac1dbff3f48a2b071d449d965b"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a427acfac1dbff3f48a2b071d449d965b">decrypt_text</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;decrypt_key)</td></tr>
<tr class="memdesc:a427acfac1dbff3f48a2b071d449d965b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrypt a given text using a given key. <br /></td></tr>
<tr class="separator:a427acfac1dbff3f48a2b071d449d965b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-static-methods" name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a629be41c1ab78850963e4ce14e1d11d9" id="r_a629be41c1ab78850963e4ce14e1d11d9"><td class="memTemplParams" colspan="2">template&lt;typename T1 , typename T2 &gt; </td></tr>
<tr class="memitem:a629be41c1ab78850963e4ce14e1d11d9"><td class="memTemplItemLeft" align="right" valign="top">static const T2&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9">rand_range</a> (T1 a, T1 b)</td></tr>
<tr class="memitem:a629be41c1ab78850963e4ce14e1d11d9"><td class="memTemplItemLeft" align="right" valign="top">static const T2&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a629be41c1ab78850963e4ce14e1d11d9">rand_range</a> (T1 a, T1 b)</td></tr>
<tr class="memdesc:a629be41c1ab78850963e4ce14e1d11d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to generate a random integer in a given interval. <br /></td></tr>
<tr class="separator:a629be41c1ab78850963e4ce14e1d11d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a716d0313141499d16f57c0c107f04395" id="r_a716d0313141499d16f57c0c107f04395"><td class="memTemplParams" colspan="2">template&lt;typename T1 , typename T2 &gt; </td></tr>
<tr class="memitem:a716d0313141499d16f57c0c107f04395"><td class="memTemplItemLeft" align="right" valign="top">static double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a716d0313141499d16f57c0c107f04395">rand_range</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T2 &gt; *M, T1 a, T1 b)</td></tr>
<tr class="memitem:a716d0313141499d16f57c0c107f04395"><td class="memTemplItemLeft" align="right" valign="top">static double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a716d0313141499d16f57c0c107f04395">rand_range</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T2 &gt; *M, T1 a, T1 b)</td></tr>
<tr class="memdesc:a716d0313141499d16f57c0c107f04395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function overload to fill a matrix with random integers in a given interval. <br /></td></tr>
<tr class="separator:a716d0313141499d16f57c0c107f04395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7760f3665651a0a37937c79c62f219c0" id="r_a7760f3665651a0a37937c79c62f219c0"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a7760f3665651a0a37937c79c62f219c0"><td class="memTemplItemLeft" align="right" valign="top">static const T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0">gcd</a> (T a, T b)</td></tr>
<tr class="memitem:a7760f3665651a0a37937c79c62f219c0"><td class="memTemplItemLeft" align="right" valign="top">static const T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a7760f3665651a0a37937c79c62f219c0">gcd</a> (T a, T b)</td></tr>
<tr class="memdesc:a7760f3665651a0a37937c79c62f219c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute <a href="https://en.wikipedia.org/wiki/Greatest_common_divisor" target="_blank">GCD</a> of two integers using Euler's algorithm. <br /></td></tr>
<tr class="separator:a7760f3665651a0a37937c79c62f219c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad36cbcc7a458b3f3a2af0c4aa1126590" id="r_ad36cbcc7a458b3f3a2af0c4aa1126590"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590">mat_mul</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; uint8_t &gt; &amp;vector, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &amp;key)</td></tr>
<tr class="memitem:ad36cbcc7a458b3f3a2af0c4aa1126590" id="r_ad36cbcc7a458b3f3a2af0c4aa1126590"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad36cbcc7a458b3f3a2af0c4aa1126590">mat_mul</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; uint8_t &gt; &amp;vector, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;key)</td></tr>
<tr class="memdesc:ad36cbcc7a458b3f3a2af0c4aa1126590"><td class="mdescLeft">&#160;</td><td class="mdescRight">helper function to perform vector multiplication with encryption or decryption matrix <br /></td></tr>
<tr class="separator:ad36cbcc7a458b3f3a2af0c4aa1126590"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12f727cca9e21f9539cd74b6603adf0c" id="r_a12f727cca9e21f9539cd74b6603adf0c"><td class="memItemLeft" align="right" valign="top">static char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a12f727cca9e21f9539cd74b6603adf0c">get_idx_char</a> (const uint8_t idx)</td></tr>
<tr class="memitem:a12f727cca9e21f9539cd74b6603adf0c" id="r_a12f727cca9e21f9539cd74b6603adf0c"><td class="memItemLeft" align="right" valign="top">static char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a12f727cca9e21f9539cd74b6603adf0c">get_idx_char</a> (const uint8_t idx)</td></tr>
<tr class="memdesc:a12f727cca9e21f9539cd74b6603adf0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the character at a given index in the <a class="el" href="../../d6/d4e/namespaceciphers.html#ab9aec0ccf4b6809f652bb540be87c216">STRKEY</a>. <br /></td></tr>
<tr class="separator:a12f727cca9e21f9539cd74b6603adf0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae77cad522fa44b8c985779a7188d2f41" id="r_ae77cad522fa44b8c985779a7188d2f41"><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41">get_char_idx</a> (const char ch)</td></tr>
<tr class="memitem:ae77cad522fa44b8c985779a7188d2f41" id="r_ae77cad522fa44b8c985779a7188d2f41"><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae77cad522fa44b8c985779a7188d2f41">get_char_idx</a> (const char ch)</td></tr>
<tr class="memdesc:ae77cad522fa44b8c985779a7188d2f41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a character in the <a class="el" href="../../d6/d4e/namespaceciphers.html#ab9aec0ccf4b6809f652bb540be87c216">STRKEY</a>. <br /></td></tr>
<tr class="separator:ae77cad522fa44b8c985779a7188d2f41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad667fa0860977f6d6d443fa1dbcd80aa" id="r_ad667fa0860977f6d6d443fa1dbcd80aa"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa">codec</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &amp;key)</td></tr>
<tr class="memitem:ad667fa0860977f6d6d443fa1dbcd80aa" id="r_ad667fa0860977f6d6d443fa1dbcd80aa"><td class="memItemLeft" align="right" valign="top">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad667fa0860977f6d6d443fa1dbcd80aa">codec</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;key)</td></tr>
<tr class="memdesc:ad667fa0860977f6d6d443fa1dbcd80aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to perform block cipher operations. The operations are identical for both encryption and decryption. <br /></td></tr>
<tr class="separator:ad667fa0860977f6d6d443fa1dbcd80aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eb58750b978a93ac5e6eb29e3e570b7" id="r_a2eb58750b978a93ac5e6eb29e3e570b7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a2eb58750b978a93ac5e6eb29e3e570b7"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; double &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7">get_inverse</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T &gt; const &amp;A)</td></tr>
<tr class="memitem:a2eb58750b978a93ac5e6eb29e3e570b7"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; double &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a2eb58750b978a93ac5e6eb29e3e570b7">get_inverse</a> (<a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T &gt; const &amp;A)</td></tr>
<tr class="separator:a2eb58750b978a93ac5e6eb29e3e570b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63e7b8e92dff8b9260d6d21c31ecebd0" id="r_a63e7b8e92dff8b9260d6d21c31ecebd0"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a63e7b8e92dff8b9260d6d21c31ecebd0">modulo</a> (int a, int b)</td></tr>
<tr class="memitem:a63e7b8e92dff8b9260d6d21c31ecebd0" id="r_a63e7b8e92dff8b9260d6d21c31ecebd0"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a63e7b8e92dff8b9260d6d21c31ecebd0">modulo</a> (int a, int b)</td></tr>
<tr class="separator:a63e7b8e92dff8b9260d6d21c31ecebd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -173,19 +175,12 @@ Static Private Member Functions</h2></td></tr>
<tr>
<td class="memname">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ciphers::HillCipher::codec </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>text</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;</td> <td class="paramname"><span class="paramname"><em>text</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>key</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>key</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -223,10 +218,10 @@ Static Private Member Functions</h2></td></tr>
<div class="line"><span class="lineno"> 227</span> <span class="keywordflow">for</span> (i = 0; i &lt; L2 - key_len + 1; i += key_len) {</div>
<div class="line"><span class="lineno"> 228</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;uint8_t&gt;</a> batch_int(key_len);</div>
<div class="line"><span class="lineno"> 229</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; key_len; j++) {</div>
<div class="line"><span class="lineno"> 230</span> batch_int[j] = <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41">get_char_idx</a>(text[i + j]);</div>
<div class="line"><span class="lineno"> 230</span> batch_int[j] = <a class="code hl_function" href="#ae77cad522fa44b8c985779a7188d2f41">get_char_idx</a>(text[i + j]);</div>
<div class="line"><span class="lineno"> 231</span> }</div>
<div class="line"><span class="lineno"> 232</span> </div>
<div class="line"><span class="lineno"> 233</span> batch_int = <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590">mat_mul</a>(batch_int, key);</div>
<div class="line"><span class="lineno"> 233</span> batch_int = <a class="code hl_function" href="#ad36cbcc7a458b3f3a2af0c4aa1126590">mat_mul</a>(batch_int, key);</div>
<div class="line"><span class="lineno"> 234</span> </div>
<div class="line"><span class="lineno"> 235</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; key_len; j++) {</div>
<div class="line"><span class="lineno"> 236</span> coded_text[i + j] =</div>
@@ -237,8 +232,8 @@ Static Private Member Functions</h2></td></tr>
<div class="line"><span class="lineno"> 241</span> <span class="keywordflow">return</span> coded_text;</div>
<div class="line"><span class="lineno"> 242</span> }</div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_ad36cbcc7a458b3f3a2af0c4aa1126590"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590">ciphers::HillCipher::mat_mul</a></div><div class="ttdeci">static const std::valarray&lt; uint8_t &gt; mat_mul(const std::valarray&lt; uint8_t &gt; &amp;vector, const matrix&lt; int &gt; &amp;key)</div><div class="ttdoc">helper function to perform vector multiplication with encryption or decryption matrix</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:159</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_ae77cad522fa44b8c985779a7188d2f41"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41">ciphers::HillCipher::get_char_idx</a></div><div class="ttdeci">static uint8_t get_char_idx(const char ch)</div><div class="ttdoc">Get the index of a character in the STRKEY.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:190</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_ad36cbcc7a458b3f3a2af0c4aa1126590"><div class="ttname"><a href="#ad36cbcc7a458b3f3a2af0c4aa1126590">ciphers::HillCipher::mat_mul</a></div><div class="ttdeci">static const std::valarray&lt; uint8_t &gt; mat_mul(const std::valarray&lt; uint8_t &gt; &amp;vector, const matrix&lt; int &gt; &amp;key)</div><div class="ttdoc">helper function to perform vector multiplication with encryption or decryption matrix</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:159</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_ae77cad522fa44b8c985779a7188d2f41"><div class="ttname"><a href="#ae77cad522fa44b8c985779a7188d2f41">ciphers::HillCipher::get_char_idx</a></div><div class="ttdeci">static uint8_t get_char_idx(const char ch)</div><div class="ttdoc">Get the index of a character in the STRKEY.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:190</div></div>
<div class="ttc" id="anamespaceciphers_html_ab9aec0ccf4b6809f652bb540be87c216"><div class="ttname"><a href="../../d6/d4e/namespaceciphers.html#ab9aec0ccf4b6809f652bb540be87c216">ciphers::STRKEY</a></div><div class="ttdeci">static const char * STRKEY</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:73</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">std::string::length</a></div><div class="ttdeci">T length(T... args)</div></div>
<div class="ttc" id="avalarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a></div></div>
@@ -262,19 +257,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ciphers::HillCipher::decrypt_text </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>text</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;</td> <td class="paramname"><span class="paramname"><em>text</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>decrypt_key</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>decrypt_key</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -294,9 +282,9 @@ Here is the call graph for this function:</div>
</dl>
<dl class="section return"><dt>Returns</dt><dd>decrypted text </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 458</span> {</div>
<div class="line"><span class="lineno"> 459</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa">codec</a>(text, decrypt_key);</div>
<div class="line"><span class="lineno"> 459</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#ad667fa0860977f6d6d443fa1dbcd80aa">codec</a>(text, decrypt_key);</div>
<div class="line"><span class="lineno"> 460</span> }</div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_ad667fa0860977f6d6d443fa1dbcd80aa"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa">ciphers::HillCipher::codec</a></div><div class="ttdeci">static const std::string codec(const std::string &amp;text, const matrix&lt; int &gt; &amp;key)</div><div class="ttdoc">Convenience function to perform block cipher operations. The operations are identical for both encryp...</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:210</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_ad667fa0860977f6d6d443fa1dbcd80aa"><div class="ttname"><a href="#ad667fa0860977f6d6d443fa1dbcd80aa">ciphers::HillCipher::codec</a></div><div class="ttdeci">static const std::string codec(const std::string &amp;text, const matrix&lt; int &gt; &amp;key)</div><div class="ttdoc">Convenience function to perform block cipher operations. The operations are identical for both encryp...</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:210</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -317,19 +305,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ciphers::HillCipher::encrypt_text </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>text</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;</td> <td class="paramname"><span class="paramname"><em>text</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>encrypt_key</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>encrypt_key</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -349,7 +330,7 @@ Here is the call graph for this function:</div>
</dl>
<dl class="section return"><dt>Returns</dt><dd>encrypted text </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 446</span> {</div>
<div class="line"><span class="lineno"> 447</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa">codec</a>(text, encrypt_key);</div>
<div class="line"><span class="lineno"> 447</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#ad667fa0860977f6d6d443fa1dbcd80aa">codec</a>(text, encrypt_key);</div>
<div class="line"><span class="lineno"> 448</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -373,19 +354,12 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname">static const T ciphers::HillCipher::gcd </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>a</em>, </td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>a</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -435,10 +409,9 @@ Here is the call graph for this function:</div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; ciphers::HillCipher::generate_decryption_key </td>
<td class="memname">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; ciphers::HillCipher::generate_decryption_key </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; const &amp;&#160;</td>
<td class="paramname"><em>encrypt_key</em></td><td>)</td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; const &amp;</td> <td class="paramname"><span class="paramname"><em>encrypt_key</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -466,7 +439,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 377</span> </div>
<div class="line"><span class="lineno"> 378</span> <span class="keywordtype">int</span> mat_determinant = det_encrypt &lt; 0 ? det_encrypt % L : det_encrypt;</div>
<div class="line"><span class="lineno"> 379</span> </div>
<div class="line"><span class="lineno"> 380</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> tmp_inverse = <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7">get_inverse</a>(encrypt_key);</div>
<div class="line"><span class="lineno"> 380</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> tmp_inverse = <a class="code hl_function" href="#a2eb58750b978a93ac5e6eb29e3e570b7">get_inverse</a>(encrypt_key);</div>
<div class="line"><span class="lineno"> 381</span> <span class="keywordtype">double</span> d2 = <a class="code hl_function" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(decrypt_key);</div>
<div class="line"><span class="lineno"> 382</span> </div>
<div class="line"><span class="lineno"> 383</span> <span class="comment">// find co-prime factor for inversion</span></div>
@@ -499,7 +472,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 410</span> <span class="keywordflow">return</span> decrypt_key;</div>
<div class="line"><span class="lineno"> 411</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::cerr</a></div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a2eb58750b978a93ac5e6eb29e3e570b7"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7">ciphers::HillCipher::get_inverse</a></div><div class="ttdeci">static matrix&lt; double &gt; get_inverse(matrix&lt; T &gt; const &amp;A)</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:250</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a2eb58750b978a93ac5e6eb29e3e570b7"><div class="ttname"><a href="#a2eb58750b978a93ac5e6eb29e3e570b7">ciphers::HillCipher::get_inverse</a></div><div class="ttdeci">static matrix&lt; double &gt; get_inverse(matrix&lt; T &gt; const &amp;A)</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:250</div></div>
<div class="ttc" id="aexit_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a></div><div class="ttdeci">T exit(T... args)</div></div>
<div class="ttc" id="alu__decomposition_8h_html_a3108d43bd32c6fb3b3c158476c51ba7f"><div class="ttname"><a href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a></div><div class="ttdeci">double determinant_lu(const matrix&lt; T &gt; &amp;A)</div><div class="ttdef"><b>Definition</b> lu_decomposition.h:90</div></div>
<div class="ttc" id="around_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/round.html">std::round</a></div><div class="ttdeci">T round(T... args)</div></div>
@@ -523,27 +496,19 @@ Here is the call graph for this function:</div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; ciphers::HillCipher::generate_encryption_key </td>
<td class="memname">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; ciphers::HillCipher::generate_encryption_key </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>size</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>limit1</em> = <code>0</code>, </td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>limit1</em><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>limit2</em> = <code>10</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>limit2</em><span class="paramdefsep"> = </span><span class="paramdefval">10</span></span>&#160;)</td>
</tr>
</table>
</td>
@@ -578,7 +543,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 348</span> <span class="keywordflow">do</span> {</div>
<div class="line"><span class="lineno"> 349</span> <span class="comment">// keeping the random number range smaller generates better</span></div>
<div class="line"><span class="lineno"> 350</span> <span class="comment">// defined matrices with more ease of cracking</span></div>
<div class="line"><span class="lineno"> 351</span> dd = <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9">rand_range</a>(&amp;encrypt_key, limit1, limit2);</div>
<div class="line"><span class="lineno"> 351</span> dd = <a class="code hl_function" href="#a629be41c1ab78850963e4ce14e1d11d9">rand_range</a>(&amp;encrypt_key, limit1, limit2);</div>
<div class="line"><span class="lineno"> 352</span> mat_determinant = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(dd);</div>
<div class="line"><span class="lineno"> 353</span> </div>
<div class="line"><span class="lineno"> 354</span> <span class="keywordflow">if</span> (mat_determinant &lt; 0)</div>
@@ -586,13 +551,13 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 356</span> } <span class="keywordflow">while</span> (std::abs(dd) &gt; 1e3 || <span class="comment">// while ill-defined</span></div>
<div class="line"><span class="lineno"> 357</span> dd &lt; 0.1 || <span class="comment">// while singular or negative determinant</span></div>
<div class="line"><span class="lineno"> 358</span> !<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html">std::isfinite</a>(dd) || <span class="comment">// while determinant is not finite</span></div>
<div class="line"><span class="lineno"> 359</span> <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0">gcd</a>(mat_determinant, L) != 1); <span class="comment">// while no common factors</span></div>
<div class="line"><span class="lineno"> 359</span> <a class="code hl_function" href="#a7760f3665651a0a37937c79c62f219c0">gcd</a>(mat_determinant, L) != 1); <span class="comment">// while no common factors</span></div>
<div class="line"><span class="lineno"> 360</span> <span class="comment">// std::cout &lt;&lt;</span></div>
<div class="line"><span class="lineno"> 361</span> </div>
<div class="line"><span class="lineno"> 362</span> <span class="keywordflow">return</span> encrypt_key;</div>
<div class="line"><span class="lineno"> 363</span> }</div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a629be41c1ab78850963e4ce14e1d11d9"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9">ciphers::HillCipher::rand_range</a></div><div class="ttdeci">static const T2 rand_range(T1 a, T1 b)</div><div class="ttdoc">Function to generate a random integer in a given interval.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:92</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a7760f3665651a0a37937c79c62f219c0"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0">ciphers::HillCipher::gcd</a></div><div class="ttdeci">static const T gcd(T a, T b)</div><div class="ttdoc">Compute GCD of two integers using Euler's algorithm.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:138</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a629be41c1ab78850963e4ce14e1d11d9"><div class="ttname"><a href="#a629be41c1ab78850963e4ce14e1d11d9">ciphers::HillCipher::rand_range</a></div><div class="ttdeci">static const T2 rand_range(T1 a, T1 b)</div><div class="ttdoc">Function to generate a random integer in a given interval.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:92</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a7760f3665651a0a37937c79c62f219c0"><div class="ttname"><a href="#a7760f3665651a0a37937c79c62f219c0">ciphers::HillCipher::gcd</a></div><div class="ttdeci">static const T gcd(T a, T b)</div><div class="ttdoc">Compute GCD of two integers using Euler's algorithm.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:138</div></div>
<div class="ttc" id="aisfinite_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html">std::isfinite</a></div><div class="ttdeci">T isfinite(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -612,27 +577,19 @@ Here is the call graph for this function:</div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt;, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &gt; ciphers::HillCipher::generate_keys </td>
<td class="memname">static <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt;, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &gt; ciphers::HillCipher::generate_keys </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>size</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>limit1</em> = <code>0</code>, </td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>limit1</em><span class="paramdefsep"> = </span><span class="paramdefval">0</span>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>limit2</em> = <code>10</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>limit2</em><span class="paramdefsep"> = </span><span class="paramdefval">10</span></span>&#160;)</td>
</tr>
</table>
</td>
@@ -652,20 +609,20 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt;matrix&lt;int&gt;, matrix&lt;int&gt;&gt; encryption and decryption keys as a pair</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">generate_encryption_key</a> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a642f70fb54cb50b00fb6df7c3f2b120e" title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">generate_encryption_key</a> </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 426</span> {</div>
<div class="line"><span class="lineno"> 427</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;int&gt;</a> encrypt_key = <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e">generate_encryption_key</a>(size);</div>
<div class="line"><span class="lineno"> 428</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;int&gt;</a> decrypt_key = <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706">generate_decryption_key</a>(encrypt_key);</div>
<div class="line"><span class="lineno"> 427</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;int&gt;</a> encrypt_key = <a class="code hl_function" href="#a642f70fb54cb50b00fb6df7c3f2b120e">generate_encryption_key</a>(size);</div>
<div class="line"><span class="lineno"> 428</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;int&gt;</a> decrypt_key = <a class="code hl_function" href="#ab02c7563889bf1e363deb8e21967b706">generate_decryption_key</a>(encrypt_key);</div>
<div class="line"><span class="lineno"> 429</span> <span class="keywordtype">double</span> det2 = <a class="code hl_function" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(decrypt_key);</div>
<div class="line"><span class="lineno"> 430</span> <span class="keywordflow">while</span> (std::abs(det2) &lt; 0.1 || std::abs(det2) &gt; 1e3) {</div>
<div class="line"><span class="lineno"> 431</span> encrypt_key = <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e">generate_encryption_key</a>(size, limit1, limit2);</div>
<div class="line"><span class="lineno"> 432</span> decrypt_key = <a class="code hl_function" href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706">generate_decryption_key</a>(encrypt_key);</div>
<div class="line"><span class="lineno"> 431</span> encrypt_key = <a class="code hl_function" href="#a642f70fb54cb50b00fb6df7c3f2b120e">generate_encryption_key</a>(size, limit1, limit2);</div>
<div class="line"><span class="lineno"> 432</span> decrypt_key = <a class="code hl_function" href="#ab02c7563889bf1e363deb8e21967b706">generate_decryption_key</a>(encrypt_key);</div>
<div class="line"><span class="lineno"> 433</span> det2 = <a class="code hl_function" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(decrypt_key);</div>
<div class="line"><span class="lineno"> 434</span> }</div>
<div class="line"><span class="lineno"> 435</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(encrypt_key, decrypt_key);</div>
<div class="line"><span class="lineno"> 436</span> }</div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a642f70fb54cb50b00fb6df7c3f2b120e"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e">ciphers::HillCipher::generate_encryption_key</a></div><div class="ttdeci">static matrix&lt; int &gt; generate_encryption_key(size_t size, int limit1=0, int limit2=10)</div><div class="ttdoc">Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:339</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_ab02c7563889bf1e363deb8e21967b706"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706">ciphers::HillCipher::generate_decryption_key</a></div><div class="ttdeci">static matrix&lt; int &gt; generate_decryption_key(matrix&lt; int &gt; const &amp;encrypt_key)</div><div class="ttdoc">Generate decryption matrix from an encryption matrix key.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:371</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a642f70fb54cb50b00fb6df7c3f2b120e"><div class="ttname"><a href="#a642f70fb54cb50b00fb6df7c3f2b120e">ciphers::HillCipher::generate_encryption_key</a></div><div class="ttdeci">static matrix&lt; int &gt; generate_encryption_key(size_t size, int limit1=0, int limit2=10)</div><div class="ttdoc">Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:339</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_ab02c7563889bf1e363deb8e21967b706"><div class="ttname"><a href="#ab02c7563889bf1e363deb8e21967b706">ciphers::HillCipher::generate_decryption_key</a></div><div class="ttdeci">static matrix&lt; int &gt; generate_decryption_key(matrix&lt; int &gt; const &amp;encrypt_key)</div><div class="ttdoc">Generate decryption matrix from an encryption matrix key.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:371</div></div>
<div class="ttc" id="amake_pair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a></div><div class="ttdeci">T make_pair(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -687,8 +644,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static uint8_t ciphers::HillCipher::get_char_idx </td>
<td>(</td>
<td class="paramtype">const char&#160;</td>
<td class="paramname"><em>ch</em></td><td>)</td>
<td class="paramtype">const char</td> <td class="paramname"><span class="paramname"><em>ch</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -738,8 +694,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static char ciphers::HillCipher::get_idx_char </td>
<td>(</td>
<td class="paramtype">const uint8_t&#160;</td>
<td class="paramname"><em>idx</em></td><td>)</td>
<td class="paramtype">const uint8_t</td> <td class="paramname"><span class="paramname"><em>idx</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -774,10 +729,9 @@ template&lt;typename T &gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; double &gt; ciphers::HillCipher::get_inverse </td>
<td class="memname">static <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; double &gt; ciphers::HillCipher::get_inverse </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T &gt; const &amp;&#160;</td>
<td class="paramname"><em>A</em></td><td>)</td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T &gt; const &amp;</td> <td class="paramname"><span class="paramname"><em>A</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -873,19 +827,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; uint8_t &gt; ciphers::HillCipher::mat_mul </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; uint8_t &gt; &amp;&#160;</td>
<td class="paramname"><em>vector</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; uint8_t &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>vector</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>key</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>key</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -939,19 +886,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static int ciphers::HillCipher::modulo </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>a</em>, </td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>a</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -983,25 +923,17 @@ template&lt;typename T1 , typename T2 &gt; </div>
<tr>
<td class="memname">static double ciphers::HillCipher::rand_range </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T2 &gt; *&#160;</td>
<td class="paramname"><em>M</em>, </td>
<td class="paramtype"><a class="el" href="../../d1/dbe/lu__decomposition_8h.html#ac029b636b353cefbb18b2fcc71e427e4">matrix</a>&lt; T2 &gt; *</td> <td class="paramname"><span class="paramname"><em>M</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T1&#160;</td>
<td class="paramname"><em>a</em>, </td>
<td class="paramtype">T1</td> <td class="paramname"><span class="paramname"><em>a</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T1&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">T1</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -1061,19 +993,12 @@ template&lt;typename T1 , typename T2 &gt; </div>
<tr>
<td class="memname">static const T2 ciphers::HillCipher::rand_range </td>
<td>(</td>
<td class="paramtype">T1&#160;</td>
<td class="paramname"><em>a</em>, </td>
<td class="paramtype">T1</td> <td class="paramname"><span class="paramname"><em>a</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T1&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">T1</td> <td class="paramname"><span class="paramname"><em>b</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -1123,7 +1048,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></li><li class="navelem"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html">HillCipher</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: dynamic_programming/house_robber.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d26/house__robber_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d26/house__robber_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -127,13 +129,13 @@ 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:a1e497c3e3f169afe5baaae6a5d40cbc8" id="r_a1e497c3e3f169afe5baaae6a5d40cbc8"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/house__robber_8cpp.html#a1e497c3e3f169afe5baaae6a5d40cbc8">dynamic_programming::house_robber::houseRobber</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint32_t &gt; &amp;money, const uint32_t &amp;n)</td></tr>
<tr class="memitem:a1e497c3e3f169afe5baaae6a5d40cbc8" id="r_a1e497c3e3f169afe5baaae6a5d40cbc8"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1e497c3e3f169afe5baaae6a5d40cbc8">dynamic_programming::house_robber::houseRobber</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint32_t &gt; &amp;money, const uint32_t &amp;n)</td></tr>
<tr class="memdesc:a1e497c3e3f169afe5baaae6a5d40cbc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function that implements the House Robber algorithm using dynamic programming. <br /></td></tr>
<tr class="separator:a1e497c3e3f169afe5baaae6a5d40cbc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/house__robber_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/house__robber_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -150,19 +152,12 @@ Functions</h2></td></tr>
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> dynamic_programming::house_robber::houseRobber </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint32_t &gt; &amp;&#160;</td>
<td class="paramname"><em>money</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint32_t &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>money</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t &amp;&#160;</td>
<td class="paramname"><em>n</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const uint32_t &amp;</td> <td class="paramname"><span class="paramname"><em>n</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -216,8 +211,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -226,10 +220,10 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 111</span> {</div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_function" href="../../d6/d26/house__robber_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 113</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 114</span>}</div>
<div class="ttc" id="ahouse__robber_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/d26/house__robber_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> house_robber.cpp:66</div></div>
<div class="ttc" id="ahouse__robber_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> house_robber.cpp:66</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -250,7 +244,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -321,7 +315,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a class="el" href="../../d6/d26/house__robber_8cpp.html">house_robber.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -1,8 +1,11 @@
<map id="binary_search_tree&lt; T &gt;::bst_node" name="binary_search_tree&lt; T &gt;::bst_node">
<area shape="rect" id="Node000001" title="A struct to represent a node in the Binary Search Tree." alt="" coords="5,124,137,165"/>
<area shape="rect" id="Node000002" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/memory/unique_ptr.html" title=" " alt="" coords="86,5,256,46"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="144,59,133,72,89,125,85,122,129,68,140,56"/>
<area shape="rect" id="Node000003" href="$dd/db6/structbinary__search__tree_1_1bst__node.html" title="A struct to represent a node in the Binary Search Tree." alt="" coords="161,124,293,165"/>
<area shape="poly" id="edge3_Node000003_Node000002" title=" " alt="" coords="165,61,165,80,170,99,179,111,191,122,187,126,175,115,165,101,159,81,160,61"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="212,110,195,71,182,48,186,45,200,69,217,108"/>
<area shape="rect" id="Node000001" title="A struct to represent a node in the Binary Search Tree." alt="" coords="5,331,137,372"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="52,5,90,31"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="74,46,74,331,68,331,68,46"/>
<area shape="rect" id="Node000004" href="$dd/db6/structbinary__search__tree_1_1bst__node.html" title="A struct to represent a node in the Binary Search Tree." alt="" coords="87,94,218,135"/>
<area shape="poly" id="edge4_Node000004_Node000002" title=" " alt="" coords="93,41,137,92,133,95,89,44"/>
<area shape="rect" id="Node000003" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/memory/unique_ptr.html" title=" " alt="" coords="88,213,257,253"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="148,267,90,333,86,329,144,263"/>
<area shape="poly" id="edge5_Node000004_Node000003" title=" " alt="" coords="164,197,153,135,158,134,169,197"/>
<area shape="poly" id="edge3_Node000003_Node000004" title=" " alt="" coords="141,150,139,169,141,188,155,211,151,214,136,190,133,169,136,150"/>
</map>

View File

@@ -1 +1 @@
7b723a3263ac1a0a1c2e17b6764e444f
455a4be07dce015dea0fc6a1abe2e4e6

View File

@@ -4,8 +4,8 @@
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: binary_search_tree&lt; T &gt;::bst_node Pages: 1 -->
<svg width="224pt" height="128pt"
viewBox="0.00 0.00 223.50 127.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="197pt" height="283pt"
viewBox="0.00 0.00 196.75 283.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
<style type="text/css"><![CDATA[
@@ -16,7 +16,7 @@
]]></style>
<script type="application/ecmascript" xlink:href="../../svg.min.js"/>
<svg id="graph" class="graph">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 123.5)">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 279)">
<title>binary_search_tree&lt; T &gt;::bst_node</title>
<!-- Node1 -->
<g id="Node000001" class="node">
@@ -31,10 +31,9 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="187.75,-119.5 60.75,-119.5 60.75,-89 187.75,-89 187.75,-119.5"/>
<text text-anchor="start" x="68.75" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::unique_ptr&lt; binary</text>
<text text-anchor="middle" x="124.25" y="-94.75" font-family="Helvetica,sans-Serif" font-size="10.00">_search_tree::bst_node &gt;</text>
<g id="a_Node000002"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="63.65,-275 34.85,-275 34.85,-255.75 63.65,-255.75 63.65,-275"/>
<text text-anchor="middle" x="49.25" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00">T</text>
</a>
</g>
</g>
@@ -42,43 +41,73 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2&#45;&gt;Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M102.74,-80.24C99.94,-77.16 97.14,-74.02 94.5,-71 82.82,-57.63 69.96,-41.97 60.95,-30.84"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="100.09,-82.52 109.43,-87.52 105.24,-77.79 100.09,-82.52"/>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M49.25,-244.15C49.25,-195.54 49.25,-73 49.25,-30.8"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="45.75,-244.03 49.25,-254.03 52.75,-244.03 45.75,-244.03"/>
</a>
</g>
<text text-anchor="middle" x="104.62" y="-61.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> left</text>
<text text-anchor="middle" x="104.62" y="-50.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey">right</text>
<text text-anchor="middle" x="62.38" y="-144.88" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> value</text>
</g>
<!-- Node4 -->
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="../../dd/db6/structbinary__search__tree_1_1bst__node.html" target="_top" xlink:title="A struct to represent a node in the Binary Search Tree.">
<polygon fill="white" stroke="#666666" points="159.5,-208.5 61,-208.5 61,-178 159.5,-178 159.5,-208.5"/>
<text text-anchor="start" x="69" y="-195" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="110.25" y="-183.75" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; T &gt;::bst_node</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge4_Node000004_Node000002" class="edge">
<title>Node2&#45;&gt;Node4</title>
<g id="a_edge4_Node000004_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M64.35,-247.02C74.54,-235.3 87.83,-220.02 97.49,-208.92"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="61.89,-244.51 57.97,-254.35 67.17,-249.1 61.89,-244.51"/>
</a>
</g>
<text text-anchor="middle" x="94.38" y="-228.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> value</text>
</g>
<!-- Node3 -->
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:href="../../dd/db6/structbinary__search__tree_1_1bst__node.html" target="_top" xlink:title="A struct to represent a node in the Binary Search Tree.">
<polygon fill="white" stroke="#666666" points="215.5,-30.5 117,-30.5 117,0 215.5,0 215.5,-30.5"/>
<text text-anchor="start" x="125" y="-17" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="166.25" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; T &gt;::bst_node</text>
<g id="a_Node000003"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="188.75,-119.5 61.75,-119.5 61.75,-89 188.75,-89 188.75,-119.5"/>
<text text-anchor="start" x="69.75" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::unique_ptr&lt; binary</text>
<text text-anchor="middle" x="125.25" y="-94.75" font-family="Helvetica,sans-Serif" font-size="10.00">_search_tree::bst_node &gt;</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge3_Node000003_Node000002" class="edge">
<title>Node2&#45;&gt;Node3</title>
<g id="a_edge3_Node000003_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M117.76,-77.92C116.59,-68.25 116.94,-57.41 121.5,-48.5 125.17,-41.34 131.24,-35.41 137.76,-30.67"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="114.26,-78.23 119.5,-87.44 121.15,-76.98 114.26,-78.23"/>
<!-- Node3&#45;&gt;Node1 -->
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node3&#45;&gt;Node1</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M105.2,-80.29C91.54,-64.66 73.86,-44.43 62.07,-30.93"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="102.49,-82.52 111.7,-87.74 107.76,-77.91 102.49,-82.52"/>
</a>
</g>
<text text-anchor="middle" x="131.62" y="-61.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> left</text>
<text text-anchor="middle" x="131.62" y="-50.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey">right</text>
<text text-anchor="middle" x="105.62" y="-61.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> left</text>
<text text-anchor="middle" x="105.62" y="-50.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey">right</text>
</g>
<!-- Node3&#45;&gt;Node2 -->
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3&#45;&gt;Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M157.11,-41.63C153.45,-51.01 148.99,-61.64 144.25,-71 141.22,-77 137.42,-83.33 133.96,-88.79"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="160.34,-42.97 160.59,-32.38 153.79,-40.5 160.34,-42.97"/>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge5_Node000004_Node000003" class="edge">
<title>Node3&#45;&gt;Node4</title>
<g id="a_edge5_Node000004_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M120.77,-131.25C118.13,-146.52 114.91,-165.24 112.73,-177.88"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="124.21,-131.87 122.46,-121.42 117.31,-130.68 124.21,-131.87"/>
</a>
</g>
<text text-anchor="middle" x="160.38" y="-55.88" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> ptr</text>
<text text-anchor="middle" x="128.62" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> left</text>
<text text-anchor="middle" x="128.62" y="-139.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey">right</text>
</g>
<!-- Node4&#45;&gt;Node3 -->
<g id="edge3_Node000003_Node000004" class="edge">
<title>Node4&#45;&gt;Node3</title>
<g id="a_edge3_Node000003_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M100.04,-166.57C97.74,-157.25 96.81,-146.76 100,-137.5 102.23,-131.05 106.33,-124.9 110.6,-119.73"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="96.7,-167.6 103.02,-176.1 103.38,-165.51 96.7,-167.6"/>
</a>
</g>
<text text-anchor="middle" x="106.38" y="-144.88" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> ptr</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -4,9 +4,9 @@
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: binary_search_tree&lt; T &gt;::bst_node Pages: 1 -->
<svg width="224pt" height="128pt"
viewBox="0.00 0.00 223.50 127.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 123.5)">
<svg width="197pt" height="283pt"
viewBox="0.00 0.00 196.75 283.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 279)">
<title>binary_search_tree&lt; T &gt;::bst_node</title>
<!-- Node1 -->
<g id="Node000001" class="node">
@@ -21,10 +21,9 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="187.75,-119.5 60.75,-119.5 60.75,-89 187.75,-89 187.75,-119.5"/>
<text text-anchor="start" x="68.75" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::unique_ptr&lt; binary</text>
<text text-anchor="middle" x="124.25" y="-94.75" font-family="Helvetica,sans-Serif" font-size="10.00">_search_tree::bst_node &gt;</text>
<g id="a_Node000002"><a xlink:title=" ">
<polygon fill="white" stroke="#bfbfbf" points="63.65,-275 34.85,-275 34.85,-255.75 63.65,-255.75 63.65,-275"/>
<text text-anchor="middle" x="49.25" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00">T</text>
</a>
</g>
</g>
@@ -32,43 +31,73 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2&#45;&gt;Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M102.74,-80.24C99.94,-77.16 97.14,-74.02 94.5,-71 82.82,-57.63 69.96,-41.97 60.95,-30.84"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="100.09,-82.52 109.43,-87.52 105.24,-77.79 100.09,-82.52"/>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M49.25,-244.15C49.25,-195.54 49.25,-73 49.25,-30.8"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="45.75,-244.03 49.25,-254.03 52.75,-244.03 45.75,-244.03"/>
</a>
</g>
<text text-anchor="middle" x="104.62" y="-61.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> left</text>
<text text-anchor="middle" x="104.62" y="-50.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey">right</text>
<text text-anchor="middle" x="62.38" y="-144.88" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> value</text>
</g>
<!-- Node4 -->
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="../../dd/db6/structbinary__search__tree_1_1bst__node.html" target="_top" xlink:title="A struct to represent a node in the Binary Search Tree.">
<polygon fill="white" stroke="#666666" points="159.5,-208.5 61,-208.5 61,-178 159.5,-178 159.5,-208.5"/>
<text text-anchor="start" x="69" y="-195" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="110.25" y="-183.75" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; T &gt;::bst_node</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge4_Node000004_Node000002" class="edge">
<title>Node2&#45;&gt;Node4</title>
<g id="a_edge4_Node000004_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M64.35,-247.02C74.54,-235.3 87.83,-220.02 97.49,-208.92"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="61.89,-244.51 57.97,-254.35 67.17,-249.1 61.89,-244.51"/>
</a>
</g>
<text text-anchor="middle" x="94.38" y="-228.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> value</text>
</g>
<!-- Node3 -->
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:href="../../dd/db6/structbinary__search__tree_1_1bst__node.html" target="_top" xlink:title="A struct to represent a node in the Binary Search Tree.">
<polygon fill="white" stroke="#666666" points="215.5,-30.5 117,-30.5 117,0 215.5,0 215.5,-30.5"/>
<text text-anchor="start" x="125" y="-17" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="166.25" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; T &gt;::bst_node</text>
<g id="a_Node000003"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="188.75,-119.5 61.75,-119.5 61.75,-89 188.75,-89 188.75,-119.5"/>
<text text-anchor="start" x="69.75" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::unique_ptr&lt; binary</text>
<text text-anchor="middle" x="125.25" y="-94.75" font-family="Helvetica,sans-Serif" font-size="10.00">_search_tree::bst_node &gt;</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge3_Node000003_Node000002" class="edge">
<title>Node2&#45;&gt;Node3</title>
<g id="a_edge3_Node000003_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M117.76,-77.92C116.59,-68.25 116.94,-57.41 121.5,-48.5 125.17,-41.34 131.24,-35.41 137.76,-30.67"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="114.26,-78.23 119.5,-87.44 121.15,-76.98 114.26,-78.23"/>
<!-- Node3&#45;&gt;Node1 -->
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node3&#45;&gt;Node1</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M105.2,-80.29C91.54,-64.66 73.86,-44.43 62.07,-30.93"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="102.49,-82.52 111.7,-87.74 107.76,-77.91 102.49,-82.52"/>
</a>
</g>
<text text-anchor="middle" x="131.62" y="-61.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> left</text>
<text text-anchor="middle" x="131.62" y="-50.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey">right</text>
<text text-anchor="middle" x="105.62" y="-61.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> left</text>
<text text-anchor="middle" x="105.62" y="-50.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey">right</text>
</g>
<!-- Node3&#45;&gt;Node2 -->
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3&#45;&gt;Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M157.11,-41.63C153.45,-51.01 148.99,-61.64 144.25,-71 141.22,-77 137.42,-83.33 133.96,-88.79"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="160.34,-42.97 160.59,-32.38 153.79,-40.5 160.34,-42.97"/>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge5_Node000004_Node000003" class="edge">
<title>Node3&#45;&gt;Node4</title>
<g id="a_edge5_Node000004_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M120.77,-131.25C118.13,-146.52 114.91,-165.24 112.73,-177.88"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="124.21,-131.87 122.46,-121.42 117.31,-130.68 124.21,-131.87"/>
</a>
</g>
<text text-anchor="middle" x="160.38" y="-55.88" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> ptr</text>
<text text-anchor="middle" x="128.62" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> left</text>
<text text-anchor="middle" x="128.62" y="-139.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey">right</text>
</g>
<!-- Node4&#45;&gt;Node3 -->
<g id="edge3_Node000003_Node000004" class="edge">
<title>Node4&#45;&gt;Node3</title>
<g id="a_edge3_Node000003_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M100.04,-166.57C97.74,-157.25 96.81,-146.76 100,-137.5 102.23,-131.05 106.33,-124.9 110.6,-119.73"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="96.7,-167.6 103.02,-176.1 103.38,-165.51 96.7,-167.6"/>
</a>
</g>
<text text-anchor="middle" x="106.38" y="-144.88" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> ptr</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers/caesar_cipher.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d2c/caesar__cipher_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d2c/caesar__cipher_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -126,13 +128,13 @@ 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:ac3381121289548640b1c27a58a8524c3" id="r_ac3381121289548640b1c27a58a8524c3"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2c/caesar__cipher_8cpp.html#ac3381121289548640b1c27a58a8524c3">ciphers::caesar::encrypt</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const int &amp;shift)</td></tr>
<tr class="memitem:ac3381121289548640b1c27a58a8524c3" id="r_ac3381121289548640b1c27a58a8524c3"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac3381121289548640b1c27a58a8524c3">ciphers::caesar::encrypt</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const int &amp;shift)</td></tr>
<tr class="separator:ac3381121289548640b1c27a58a8524c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a355e69511cd2006b5c4c80ae95b71056" id="r_a355e69511cd2006b5c4c80ae95b71056"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2c/caesar__cipher_8cpp.html#a355e69511cd2006b5c4c80ae95b71056">ciphers::caesar::decrypt</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const int &amp;shift)</td></tr>
<tr class="memitem:a355e69511cd2006b5c4c80ae95b71056" id="r_a355e69511cd2006b5c4c80ae95b71056"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a355e69511cd2006b5c4c80ae95b71056">ciphers::caesar::decrypt</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const int &amp;shift)</td></tr>
<tr class="separator:a355e69511cd2006b5c4c80ae95b71056"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1a3968e7947464bee7714f6d43b7002" id="r_ae1a3968e7947464bee7714f6d43b7002"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2c/caesar__cipher_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a> ()</td></tr>
<tr class="memitem:ae1a3968e7947464bee7714f6d43b7002" id="r_ae1a3968e7947464bee7714f6d43b7002"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae1a3968e7947464bee7714f6d43b7002">test</a> ()</td></tr>
<tr class="separator:ae1a3968e7947464bee7714f6d43b7002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2c/caesar__cipher_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -158,19 +160,12 @@ Algorithm</h3>
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ciphers::caesar::decrypt </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>text</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;</td> <td class="paramname"><span class="paramname"><em>text</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int &amp;&#160;</td>
<td class="paramname"><em>shift</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const int &amp;</td> <td class="paramname"><span class="paramname"><em>shift</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -209,19 +204,12 @@ Algorithm</h3>
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ciphers::caesar::encrypt </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>text</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;</td> <td class="paramname"><span class="paramname"><em>text</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int &amp;&#160;</td>
<td class="paramname"><em>shift</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const int &amp;</td> <td class="paramname"><span class="paramname"><em>shift</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -255,8 +243,7 @@ Algorithm</h3>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -264,10 +251,10 @@ Algorithm</h3>
<p>Driver Code </p>
<div class="fragment"><div class="line"><span class="lineno"> 120</span> {</div>
<div class="line"><span class="lineno"> 121</span> <span class="comment">// Testing</span></div>
<div class="line"><span class="lineno"> 122</span> <a class="code hl_function" href="../../d6/d2c/caesar__cipher_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a>();</div>
<div class="line"><span class="lineno"> 122</span> <a class="code hl_function" href="#ae1a3968e7947464bee7714f6d43b7002">test</a>();</div>
<div class="line"><span class="lineno"> 123</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 124</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 class="ttc" id="acaesar__cipher_8cpp_html_ae1a3968e7947464bee7714f6d43b7002"><div class="ttname"><a href="#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">
@@ -285,7 +272,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -294,24 +281,24 @@ Here is the call graph for this function:</div>
<div class="fragment"><div class="line"><span class="lineno"> 100</span> {</div>
<div class="line"><span class="lineno"> 101</span> <span class="comment">// Test 1</span></div>
<div class="line"><span class="lineno"> 102</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> text1 = <span class="stringliteral">&quot;ALANTURING&quot;</span>;</div>
<div class="line"><span class="lineno"> 103</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted1 = <a class="code hl_function" href="../../d6/d2c/caesar__cipher_8cpp.html#ac3381121289548640b1c27a58a8524c3">ciphers::caesar::encrypt</a>(text1, 17);</div>
<div class="line"><span class="lineno"> 104</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted1 = <a class="code hl_function" href="../../d6/d2c/caesar__cipher_8cpp.html#a355e69511cd2006b5c4c80ae95b71056">ciphers::caesar::decrypt</a>(encrypted1, 17);</div>
<div class="line"><span class="lineno"> 103</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted1 = <a class="code hl_function" href="#ac3381121289548640b1c27a58a8524c3">ciphers::caesar::encrypt</a>(text1, 17);</div>
<div class="line"><span class="lineno"> 104</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted1 = <a class="code hl_function" href="#a355e69511cd2006b5c4c80ae95b71056">ciphers::caesar::decrypt</a>(encrypted1, 17);</div>
<div class="line"><span class="lineno"> 105</span> assert(text1 == decrypted1);</div>
<div class="line"><span class="lineno"> 106</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;Original text : &quot;</span> &lt;&lt; text1;</div>
<div class="line"><span class="lineno"> 107</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; , Encrypted text (with shift = 21) : &quot;</span> &lt;&lt; encrypted1;</div>
<div class="line"><span class="lineno"> 108</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; , Decrypted text : &quot;</span>&lt;&lt; decrypted1 &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"> 109</span> <span class="comment">// Test 2</span></div>
<div class="line"><span class="lineno"> 110</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> text2 = <span class="stringliteral">&quot;HELLOWORLD&quot;</span>;</div>
<div class="line"><span class="lineno"> 111</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted2 = <a class="code hl_function" href="../../d6/d2c/caesar__cipher_8cpp.html#ac3381121289548640b1c27a58a8524c3">ciphers::caesar::encrypt</a>(text2, 1729);</div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted2 = <a class="code hl_function" href="../../d6/d2c/caesar__cipher_8cpp.html#a355e69511cd2006b5c4c80ae95b71056">ciphers::caesar::decrypt</a>(encrypted2, 1729);</div>
<div class="line"><span class="lineno"> 111</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted2 = <a class="code hl_function" href="#ac3381121289548640b1c27a58a8524c3">ciphers::caesar::encrypt</a>(text2, 1729);</div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted2 = <a class="code hl_function" href="#a355e69511cd2006b5c4c80ae95b71056">ciphers::caesar::decrypt</a>(encrypted2, 1729);</div>
<div class="line"><span class="lineno"> 113</span> assert(text2 == decrypted2);</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;Original text : &quot;</span> &lt;&lt; text2;</div>
<div class="line"><span class="lineno"> 115</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; , Encrypted text (with shift = 1729) : &quot;</span> &lt;&lt; encrypted2;</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; , Decrypted text : &quot;</span>&lt;&lt; decrypted2 &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>}</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="acaesar__cipher_8cpp_html_a355e69511cd2006b5c4c80ae95b71056"><div class="ttname"><a href="../../d6/d2c/caesar__cipher_8cpp.html#a355e69511cd2006b5c4c80ae95b71056">ciphers::caesar::decrypt</a></div><div class="ttdeci">std::string decrypt(const std::string &amp;text, const int &amp;shift)</div><div class="ttdef"><b>Definition</b> caesar_cipher.cpp:81</div></div>
<div class="ttc" id="acaesar__cipher_8cpp_html_ac3381121289548640b1c27a58a8524c3"><div class="ttname"><a href="../../d6/d2c/caesar__cipher_8cpp.html#ac3381121289548640b1c27a58a8524c3">ciphers::caesar::encrypt</a></div><div class="ttdeci">std::string encrypt(const std::string &amp;text, const int &amp;shift)</div><div class="ttdef"><b>Definition</b> caesar_cipher.cpp:65</div></div>
<div class="ttc" id="acaesar__cipher_8cpp_html_a355e69511cd2006b5c4c80ae95b71056"><div class="ttname"><a href="#a355e69511cd2006b5c4c80ae95b71056">ciphers::caesar::decrypt</a></div><div class="ttdeci">std::string decrypt(const std::string &amp;text, const int &amp;shift)</div><div class="ttdef"><b>Definition</b> caesar_cipher.cpp:81</div></div>
<div class="ttc" id="acaesar__cipher_8cpp_html_ac3381121289548640b1c27a58a8524c3"><div class="ttname"><a href="#ac3381121289548640b1c27a58a8524c3">ciphers::caesar::encrypt</a></div><div class="ttdeci">std::string encrypt(const std::string &amp;text, const int &amp;shift)</div><div class="ttdef"><b>Definition</b> caesar_cipher.cpp:65</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><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -327,7 +314,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_4d6e05837bf820fb089a8a8cdf2f42b7.html">ciphers</a></li><li class="navelem"><a class="el" href="../../d6/d2c/caesar__cipher_8cpp.html">caesar_cipher.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math/modular_inverse_simple.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d2d/modular__inverse__simple_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d2d/modular__inverse__simple_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -115,13 +117,13 @@ Include dependency graph for modular_inverse_simple.cpp:</div>
</div><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:a618b198f74a88ab0023355b3a05d9ad6" id="r_a618b198f74a88ab0023355b3a05d9ad6"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2d/modular__inverse__simple_8cpp.html#a618b198f74a88ab0023355b3a05d9ad6">imod</a> (uint64_t x, uint64_t y)</td></tr>
<tr class="memitem:a618b198f74a88ab0023355b3a05d9ad6" id="r_a618b198f74a88ab0023355b3a05d9ad6"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a618b198f74a88ab0023355b3a05d9ad6">imod</a> (uint64_t x, uint64_t y)</td></tr>
<tr class="memdesc:a618b198f74a88ab0023355b3a05d9ad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">for IO operations <br /></td></tr>
<tr class="separator:a618b198f74a88ab0023355b3a05d9ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2d/modular__inverse__simple_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">self-test implementations <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2d/modular__inverse__simple_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -138,19 +140,12 @@ Functions</h2></td></tr>
<tr>
<td class="memname">uint64_t imod </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>x</em>, </td>
<td class="paramtype">uint64_t</td> <td class="paramname"><span class="paramname"><em>x</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">uint64_t</td> <td class="paramname"><span class="paramname"><em>y</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -188,8 +183,7 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -198,9 +192,9 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 58</span> {</div>
<div class="line"><span class="lineno"> 59</span> <a class="code hl_function" href="../../d6/d2d/modular__inverse__simple_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 59</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 60</span>};</div>
<div class="ttc" id="amodular__inverse__simple_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/d2d/modular__inverse__simple_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">self-test implementations</div><div class="ttdef"><b>Definition</b> modular_inverse_simple.cpp:36</div></div>
<div class="ttc" id="amodular__inverse__simple_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">self-test implementations</div><div class="ttdef"><b>Definition</b> modular_inverse_simple.cpp:36</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -221,7 +215,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -237,23 +231,23 @@ Here is the call graph for this function:</div>
<div class="fragment"><div class="line"><span class="lineno"> 36</span> {</div>
<div class="line"><span class="lineno"> 37</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;First case testing... \n&quot;</span>;</div>
<div class="line"><span class="lineno"> 38</span> <span class="comment">// for a = 3 and b = 11 return 4</span></div>
<div class="line"><span class="lineno"> 39</span> assert(<a class="code hl_function" href="../../d6/d2d/modular__inverse__simple_8cpp.html#a618b198f74a88ab0023355b3a05d9ad6">imod</a>(3, 11) == 4);</div>
<div class="line"><span class="lineno"> 39</span> assert(<a class="code hl_function" href="#a618b198f74a88ab0023355b3a05d9ad6">imod</a>(3, 11) == 4);</div>
<div class="line"><span class="lineno"> 40</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;\nPassed!\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 41</span> </div>
<div class="line"><span class="lineno"> 42</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;Second case testing... \n&quot;</span>;</div>
<div class="line"><span class="lineno"> 43</span> <span class="comment">// for a = 3 and b = 26 return 9</span></div>
<div class="line"><span class="lineno"> 44</span> assert(<a class="code hl_function" href="../../d6/d2d/modular__inverse__simple_8cpp.html#a618b198f74a88ab0023355b3a05d9ad6">imod</a>(3, 26) == 9);</div>
<div class="line"><span class="lineno"> 44</span> assert(<a class="code hl_function" href="#a618b198f74a88ab0023355b3a05d9ad6">imod</a>(3, 26) == 9);</div>
<div class="line"><span class="lineno"> 45</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;\nPassed!\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 46</span> </div>
<div class="line"><span class="lineno"> 47</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;Third case testing... \n&quot;</span>;</div>
<div class="line"><span class="lineno"> 48</span> <span class="comment">// for a = 7 and b = 26 return 15</span></div>
<div class="line"><span class="lineno"> 49</span> assert(<a class="code hl_function" href="../../d6/d2d/modular__inverse__simple_8cpp.html#a618b198f74a88ab0023355b3a05d9ad6">imod</a>(7, 26) == 15);</div>
<div class="line"><span class="lineno"> 49</span> assert(<a class="code hl_function" href="#a618b198f74a88ab0023355b3a05d9ad6">imod</a>(7, 26) == 15);</div>
<div class="line"><span class="lineno"> 50</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;\nPassed!\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 51</span> </div>
<div class="line"><span class="lineno"> 52</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;\nAll test cases have successfully passed!\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 53</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="amodular__inverse__simple_8cpp_html_a618b198f74a88ab0023355b3a05d9ad6"><div class="ttname"><a href="../../d6/d2d/modular__inverse__simple_8cpp.html#a618b198f74a88ab0023355b3a05d9ad6">imod</a></div><div class="ttdeci">uint64_t imod(uint64_t x, uint64_t y)</div><div class="ttdoc">for IO operations</div><div class="ttdef"><b>Definition</b> modular_inverse_simple.cpp:20</div></div>
<div class="ttc" id="amodular__inverse__simple_8cpp_html_a618b198f74a88ab0023355b3a05d9ad6"><div class="ttname"><a href="#a618b198f74a88ab0023355b3a05d9ad6">imod</a></div><div class="ttdeci">uint64_t imod(uint64_t x, uint64_t y)</div><div class="ttdoc">for IO operations</div><div class="ttdef"><b>Definition</b> modular_inverse_simple.cpp:20</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -268,7 +262,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_296d53ceaeaa7e099814a6def439fe8a.html">math</a></li><li class="navelem"><a class="el" href="../../d6/d2d/modular__inverse__simple_8cpp.html">modular_inverse_simple.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: range_queries/fenwick_tree.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d2e/fenwick__tree_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d2e/fenwick__tree_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -130,10 +132,10 @@ 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:a483bb8ccf42aaf7375a83e91490eda1e" id="r_a483bb8ccf42aaf7375a83e91490eda1e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2e/fenwick__tree_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a> ()</td></tr>
<tr class="memitem:a483bb8ccf42aaf7375a83e91490eda1e" id="r_a483bb8ccf42aaf7375a83e91490eda1e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a> ()</td></tr>
<tr class="memdesc:a483bb8ccf42aaf7375a83e91490eda1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <br /></td></tr>
<tr class="separator:a483bb8ccf42aaf7375a83e91490eda1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2e/fenwick__tree_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -154,8 +156,7 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -164,10 +165,10 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 132</span> {</div>
<div class="line"><span class="lineno"> 133</span> <a class="code hl_function" href="../../d6/d2e/fenwick__tree_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 133</span> <a class="code hl_function" href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 134</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 135</span>}</div>
<div class="ttc" id="afenwick__tree_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../d6/d2e/fenwick__tree_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:114</div></div>
<div class="ttc" id="afenwick__tree_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:114</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -188,7 +189,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void tests </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -231,7 +232,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_074119ce3a874b57120c49a0cc4bb5ad.html">range_queries</a></li><li class="navelem"><a class="el" href="../../d6/d2e/fenwick__tree_8cpp.html">fenwick_tree.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: machine_learning::adaline Class Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d30/classmachine__learning_1_1adaline.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d30/classmachine__learning_1_1adaline.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -114,21 +116,21 @@ Collaboration diagram for machine_learning::adaline:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0acbe32aaab897e7939e5b0454035b8c" id="r_a0acbe32aaab897e7939e5b0454035b8c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html#a0acbe32aaab897e7939e5b0454035b8c">adaline</a> (int num_features, const double <a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html#a28160d17e492597a2f112e0d38551cda">eta</a>=0.01f, const double <a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html#aa23d60262f917f35836ef4b1c1d9f7d3">accuracy</a>=1e-5)</td></tr>
<tr class="memitem:a0acbe32aaab897e7939e5b0454035b8c" id="r_a0acbe32aaab897e7939e5b0454035b8c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0acbe32aaab897e7939e5b0454035b8c">adaline</a> (int num_features, const double <a class="el" href="#a28160d17e492597a2f112e0d38551cda">eta</a>=0.01f, const double <a class="el" href="#aa23d60262f917f35836ef4b1c1d9f7d3">accuracy</a>=1e-5)</td></tr>
<tr class="separator:a0acbe32aaab897e7939e5b0454035b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab11242d9ad5b03a75911e29b04f78fd3" id="r_ab11242d9ad5b03a75911e29b04f78fd3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html#ab11242d9ad5b03a75911e29b04f78fd3">predict</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;x, double *out=nullptr)</td></tr>
<tr class="memitem:ab11242d9ad5b03a75911e29b04f78fd3" id="r_ab11242d9ad5b03a75911e29b04f78fd3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab11242d9ad5b03a75911e29b04f78fd3">predict</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;x, double *out=nullptr)</td></tr>
<tr class="separator:ab11242d9ad5b03a75911e29b04f78fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74e3c6c037b67895014414c5d75465e5" id="r_a74e3c6c037b67895014414c5d75465e5"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html#a74e3c6c037b67895014414c5d75465e5">fit</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;x, const int &amp;y)</td></tr>
<tr class="memitem:a74e3c6c037b67895014414c5d75465e5" id="r_a74e3c6c037b67895014414c5d75465e5"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a74e3c6c037b67895014414c5d75465e5">fit</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;x, const int &amp;y)</td></tr>
<tr class="separator:a74e3c6c037b67895014414c5d75465e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d61f9ed872eef26bca39388cbda6a91" id="r_a8d61f9ed872eef26bca39388cbda6a91"><td class="memTemplParams" colspan="2">template&lt;size_t N&gt; </td></tr>
<tr class="memitem:a8d61f9ed872eef26bca39388cbda6a91"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html#a8d61f9ed872eef26bca39388cbda6a91">fit</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt;, N &gt; const &amp;X, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int, N &gt; const &amp;Y)</td></tr>
<tr class="memitem:a8d61f9ed872eef26bca39388cbda6a91"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a8d61f9ed872eef26bca39388cbda6a91">fit</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt;, N &gt; const &amp;X, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int, N &gt; const &amp;Y)</td></tr>
<tr class="separator:a8d61f9ed872eef26bca39388cbda6a91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a082f758fb55fe19f22b3df66f89b2325" id="r_a082f758fb55fe19f22b3df66f89b2325"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html#a082f758fb55fe19f22b3df66f89b2325">activation</a> (double x)</td></tr>
<tr class="memitem:a082f758fb55fe19f22b3df66f89b2325" id="r_a082f758fb55fe19f22b3df66f89b2325"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a082f758fb55fe19f22b3df66f89b2325">activation</a> (double x)</td></tr>
<tr class="separator:a082f758fb55fe19f22b3df66f89b2325"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ac8a9c2aaaa63b0f27ea176857e1e7d56" id="r_ac8a9c2aaaa63b0f27ea176857e1e7d56"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html#ac8a9c2aaaa63b0f27ea176857e1e7d56">check_size_match</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;x)</td></tr>
<tr class="memitem:ac8a9c2aaaa63b0f27ea176857e1e7d56" id="r_ac8a9c2aaaa63b0f27ea176857e1e7d56"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac8a9c2aaaa63b0f27ea176857e1e7d56">check_size_match</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;x)</td></tr>
<tr class="separator:ac8a9c2aaaa63b0f27ea176857e1e7d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
@@ -148,7 +150,7 @@ const double&#160;</td><td class="memItemRight" valign="bottom"><b>accuracy</b><
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ae347040516e995c8fb8ca2e5c0496daa" id="r_ae347040516e995c8fb8ca2e5c0496daa"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html#ae347040516e995c8fb8ca2e5c0496daa">operator&lt;&lt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;out, const <a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html">adaline</a> &amp;ada)</td></tr>
<tr class="memitem:ae347040516e995c8fb8ca2e5c0496daa" id="r_ae347040516e995c8fb8ca2e5c0496daa"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae347040516e995c8fb8ca2e5c0496daa">operator&lt;&lt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;out, const <a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html">adaline</a> &amp;ada)</td></tr>
<tr class="separator:ae347040516e995c8fb8ca2e5c0496daa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
@@ -164,25 +166,17 @@ Friends</h2></td></tr>
<tr>
<td class="memname">machine_learning::adaline::adaline </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_features</em>, </td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>num_features</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double&#160;</td>
<td class="paramname"><em>eta</em> = <code>0.01f</code>, </td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>eta</em><span class="paramdefsep"> = </span><span class="paramdefval">0.01f</span>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double&#160;</td>
<td class="paramname"><em>accuracy</em> = <code>1e-5</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>accuracy</em><span class="paramdefsep"> = </span><span class="paramdefval">1e-5</span></span>&#160;)</td>
</tr>
</table>
</td>
@@ -199,25 +193,25 @@ Friends</h2></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 57</span> : <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a28160d17e492597a2f112e0d38551cda">eta</a>(<a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a28160d17e492597a2f112e0d38551cda">eta</a>), <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#aa23d60262f917f35836ef4b1c1d9f7d3">accuracy</a>(<a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#aa23d60262f917f35836ef4b1c1d9f7d3">accuracy</a>) {</div>
<div class="line"><span class="lineno"> 58</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a28160d17e492597a2f112e0d38551cda">eta</a> &lt;= 0) {</div>
<div class="fragment"><div class="line"><span class="lineno"> 57</span> : <a class="code hl_variable" href="#a28160d17e492597a2f112e0d38551cda">eta</a>(<a class="code hl_variable" href="#a28160d17e492597a2f112e0d38551cda">eta</a>), <a class="code hl_variable" href="#aa23d60262f917f35836ef4b1c1d9f7d3">accuracy</a>(<a class="code hl_variable" href="#aa23d60262f917f35836ef4b1c1d9f7d3">accuracy</a>) {</div>
<div class="line"><span class="lineno"> 58</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a28160d17e492597a2f112e0d38551cda">eta</a> &lt;= 0) {</div>
<div class="line"><span class="lineno"> 59</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; <span class="stringliteral">&quot;learning rate should be positive and nonzero&quot;</span></div>
<div class="line"><span class="lineno"> 60</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"> 61</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a>(EXIT_FAILURE);</div>
<div class="line"><span class="lineno"> 62</span> }</div>
<div class="line"><span class="lineno"> 63</span> </div>
<div class="line"><span class="lineno"> 64</span> <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a> = <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;double&gt;</a>(</div>
<div class="line"><span class="lineno"> 64</span> <a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a> = <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;double&gt;</a>(</div>
<div class="line"><span class="lineno"> 65</span> num_features +</div>
<div class="line"><span class="lineno"> 66</span> 1); <span class="comment">// additional weight is for the constant bias term</span></div>
<div class="line"><span class="lineno"> 67</span> </div>
<div class="line"><span class="lineno"> 68</span> <span class="comment">// initialize with random weights in the range [-50, 49]</span></div>
<div class="line"><span class="lineno"> 69</span> <span class="keywordflow">for</span> (<span class="keywordtype">double</span> &amp;weight : <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>) weight = 1.f;</div>
<div class="line"><span class="lineno"> 69</span> <span class="keywordflow">for</span> (<span class="keywordtype">double</span> &amp;weight : <a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>) weight = 1.f;</div>
<div class="line"><span class="lineno"> 70</span> <span class="comment">// weights[i] = (static_cast&lt;double&gt;(std::rand() % 100) - 50);</span></div>
<div class="line"><span class="lineno"> 71</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::cerr</a></div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_a28160d17e492597a2f112e0d38551cda"><div class="ttname"><a href="../../d6/d30/classmachine__learning_1_1adaline.html#a28160d17e492597a2f112e0d38551cda">machine_learning::adaline::eta</a></div><div class="ttdeci">const double eta</div><div class="ttdoc">learning rate of the algorithm</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:207</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_a4cd8fe438032fedaa66f93bfd66f5492"><div class="ttname"><a href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">machine_learning::adaline::weights</a></div><div class="ttdeci">std::vector&lt; double &gt; weights</div><div class="ttdoc">weights of the neural network</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:209</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_aa23d60262f917f35836ef4b1c1d9f7d3"><div class="ttname"><a href="../../d6/d30/classmachine__learning_1_1adaline.html#aa23d60262f917f35836ef4b1c1d9f7d3">machine_learning::adaline::accuracy</a></div><div class="ttdeci">const double accuracy</div><div class="ttdoc">model fit convergence accuracy</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:208</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_a28160d17e492597a2f112e0d38551cda"><div class="ttname"><a href="#a28160d17e492597a2f112e0d38551cda">machine_learning::adaline::eta</a></div><div class="ttdeci">const double eta</div><div class="ttdoc">learning rate of the algorithm</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:207</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_a4cd8fe438032fedaa66f93bfd66f5492"><div class="ttname"><a href="#a4cd8fe438032fedaa66f93bfd66f5492">machine_learning::adaline::weights</a></div><div class="ttdeci">std::vector&lt; double &gt; weights</div><div class="ttdoc">weights of the neural network</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:209</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_aa23d60262f917f35836ef4b1c1d9f7d3"><div class="ttname"><a href="#aa23d60262f917f35836ef4b1c1d9f7d3">machine_learning::adaline::accuracy</a></div><div class="ttdeci">const double accuracy</div><div class="ttdoc">model fit convergence accuracy</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:208</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="aexit_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a></div><div class="ttdeci">T exit(T... args)</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
@@ -242,8 +236,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int machine_learning::adaline::activation </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>x</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -284,8 +277,7 @@ f(x) = \begin{cases}
<tr>
<td class="memname">bool machine_learning::adaline::check_size_match </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>x</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -305,7 +297,7 @@ f(x) = \begin{cases}
<dd>
<code>false</code> size does not match </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 196</span> {</div>
<div class="line"><span class="lineno"> 197</span> <span class="keywordflow">if</span> (x.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() != (<a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 1)) {</div>
<div class="line"><span class="lineno"> 197</span> <span class="keywordflow">if</span> (x.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() != (<a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 1)) {</div>
<div class="line"><span class="lineno"> 198</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; __func__ &lt;&lt; <span class="stringliteral">&quot;: &quot;</span></div>
<div class="line"><span class="lineno"> 199</span> &lt;&lt; <span class="stringliteral">&quot;Number of features in x does not match the feature &quot;</span></div>
<div class="line"><span class="lineno"> 200</span> <span class="stringliteral">&quot;dimension in model!&quot;</span></div>
@@ -335,19 +327,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">double machine_learning::adaline::fit </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>x</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int &amp;&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const int &amp;</td> <td class="paramname"><span class="paramname"><em>y</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -365,25 +350,25 @@ Here is the call graph for this function:</div>
</dl>
<dl class="section return"><dt>Returns</dt><dd>correction factor </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 119</span> {</div>
<div class="line"><span class="lineno"> 120</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="../../d6/d30/classmachine__learning_1_1adaline.html#ac8a9c2aaaa63b0f27ea176857e1e7d56">check_size_match</a>(x)) {</div>
<div class="line"><span class="lineno"> 120</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="#ac8a9c2aaaa63b0f27ea176857e1e7d56">check_size_match</a>(x)) {</div>
<div class="line"><span class="lineno"> 121</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 122</span> }</div>
<div class="line"><span class="lineno"> 123</span> </div>
<div class="line"><span class="lineno"> 124</span> <span class="comment">/* output of the model with current weights */</span></div>
<div class="line"><span class="lineno"> 125</span> <span class="keywordtype">int</span> p = <a class="code hl_function" href="../../d6/d30/classmachine__learning_1_1adaline.html#ab11242d9ad5b03a75911e29b04f78fd3">predict</a>(x);</div>
<div class="line"><span class="lineno"> 125</span> <span class="keywordtype">int</span> p = <a class="code hl_function" href="#ab11242d9ad5b03a75911e29b04f78fd3">predict</a>(x);</div>
<div class="line"><span class="lineno"> 126</span> <span class="keywordtype">int</span> prediction_error = y - p; <span class="comment">// error in estimation</span></div>
<div class="line"><span class="lineno"> 127</span> <span class="keywordtype">double</span> correction_factor = <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a28160d17e492597a2f112e0d38551cda">eta</a> * prediction_error;</div>
<div class="line"><span class="lineno"> 127</span> <span class="keywordtype">double</span> correction_factor = <a class="code hl_variable" href="#a28160d17e492597a2f112e0d38551cda">eta</a> * prediction_error;</div>
<div class="line"><span class="lineno"> 128</span> </div>
<div class="line"><span class="lineno"> 129</span> <span class="comment">/* update each weight, the last weight is the bias term */</span></div>
<div class="line"><span class="lineno"> 130</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; x.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); i++) {</div>
<div class="line"><span class="lineno"> 131</span> <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>[i] += correction_factor * x[i];</div>
<div class="line"><span class="lineno"> 131</span> <a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>[i] += correction_factor * x[i];</div>
<div class="line"><span class="lineno"> 132</span> }</div>
<div class="line"><span class="lineno"> 133</span> <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>[x.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()] += correction_factor; <span class="comment">// update bias</span></div>
<div class="line"><span class="lineno"> 133</span> <a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>[x.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()] += correction_factor; <span class="comment">// update bias</span></div>
<div class="line"><span class="lineno"> 134</span> </div>
<div class="line"><span class="lineno"> 135</span> <span class="keywordflow">return</span> correction_factor;</div>
<div class="line"><span class="lineno"> 136</span> }</div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_ab11242d9ad5b03a75911e29b04f78fd3"><div class="ttname"><a href="../../d6/d30/classmachine__learning_1_1adaline.html#ab11242d9ad5b03a75911e29b04f78fd3">machine_learning::adaline::predict</a></div><div class="ttdeci">int predict(const std::vector&lt; double &gt; &amp;x, double *out=nullptr)</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:95</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_ac8a9c2aaaa63b0f27ea176857e1e7d56"><div class="ttname"><a href="../../d6/d30/classmachine__learning_1_1adaline.html#ac8a9c2aaaa63b0f27ea176857e1e7d56">machine_learning::adaline::check_size_match</a></div><div class="ttdeci">bool check_size_match(const std::vector&lt; double &gt; &amp;x)</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:196</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_ab11242d9ad5b03a75911e29b04f78fd3"><div class="ttname"><a href="#ab11242d9ad5b03a75911e29b04f78fd3">machine_learning::adaline::predict</a></div><div class="ttdeci">int predict(const std::vector&lt; double &gt; &amp;x, double *out=nullptr)</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:95</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_ac8a9c2aaaa63b0f27ea176857e1e7d56"><div class="ttname"><a href="#ac8a9c2aaaa63b0f27ea176857e1e7d56">machine_learning::adaline::check_size_match</a></div><div class="ttdeci">bool check_size_match(const std::vector&lt; double &gt; &amp;x)</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:196</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -406,19 +391,12 @@ template&lt;size_t N&gt; </div>
<tr>
<td class="memname">void machine_learning::adaline::fit </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt;, N &gt; const &amp;&#160;</td>
<td class="paramname"><em>X</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt;, N &gt; const &amp;</td> <td class="paramname"><span class="paramname"><em>X</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int, N &gt; const &amp;&#160;</td>
<td class="paramname"><em>Y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int, N &gt; const &amp;</td> <td class="paramname"><span class="paramname"><em>Y</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -438,13 +416,13 @@ template&lt;size_t N&gt; </div>
<div class="line"><span class="lineno"> 147</span> <span class="keywordtype">double</span> avg_pred_error = 1.f;</div>
<div class="line"><span class="lineno"> 148</span> </div>
<div class="line"><span class="lineno"> 149</span> <span class="keywordtype">int</span> iter = 0;</div>
<div class="line"><span class="lineno"> 150</span> <span class="keywordflow">for</span> (iter = 0; (iter &lt; <a class="code hl_variable" href="../../d9/d66/group__machine__learning.html#ga5118e5cbc4f0886e27b3a7a2544dded1">MAX_ITER</a>) &amp;&amp; (avg_pred_error &gt; <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#aa23d60262f917f35836ef4b1c1d9f7d3">accuracy</a>);</div>
<div class="line"><span class="lineno"> 150</span> <span class="keywordflow">for</span> (iter = 0; (iter &lt; <a class="code hl_variable" href="../../d9/d66/group__machine__learning.html#ga5118e5cbc4f0886e27b3a7a2544dded1">MAX_ITER</a>) &amp;&amp; (avg_pred_error &gt; <a class="code hl_variable" href="#aa23d60262f917f35836ef4b1c1d9f7d3">accuracy</a>);</div>
<div class="line"><span class="lineno"> 151</span> iter++) {</div>
<div class="line"><span class="lineno"> 152</span> avg_pred_error = 0.f;</div>
<div class="line"><span class="lineno"> 153</span> </div>
<div class="line"><span class="lineno"> 154</span> <span class="comment">// perform fit for each sample</span></div>
<div class="line"><span class="lineno"> 155</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; i++) {</div>
<div class="line"><span class="lineno"> 156</span> <span class="keywordtype">double</span> err = <a class="code hl_function" href="../../d6/d30/classmachine__learning_1_1adaline.html#a74e3c6c037b67895014414c5d75465e5">fit</a>(X[i], Y[i]);</div>
<div class="line"><span class="lineno"> 156</span> <span class="keywordtype">double</span> err = <a class="code hl_function" href="#a74e3c6c037b67895014414c5d75465e5">fit</a>(X[i], Y[i]);</div>
<div class="line"><span class="lineno"> 157</span> avg_pred_error += std::abs(err);</div>
<div class="line"><span class="lineno"> 158</span> }</div>
<div class="line"><span class="lineno"> 159</span> avg_pred_error /= <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>;</div>
@@ -463,7 +441,7 @@ template&lt;size_t N&gt; </div>
<div class="line"><span class="lineno"> 172</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"> 173</span> }</div>
<div class="line"><span class="lineno"> 174</span> }</div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_a74e3c6c037b67895014414c5d75465e5"><div class="ttname"><a href="../../d6/d30/classmachine__learning_1_1adaline.html#a74e3c6c037b67895014414c5d75465e5">machine_learning::adaline::fit</a></div><div class="ttdeci">double fit(const std::vector&lt; double &gt; &amp;x, const int &amp;y)</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:119</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_a74e3c6c037b67895014414c5d75465e5"><div class="ttname"><a href="#a74e3c6c037b67895014414c5d75465e5">machine_learning::adaline::fit</a></div><div class="ttdeci">double fit(const std::vector&lt; double &gt; &amp;x, const int &amp;y)</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:119</div></div>
<div class="ttc" id="adata__structures_2sparse__table_8cpp_html_a10f3ffb3f6f7e1b83d556b9c8de89a5d"><div class="ttname"><a href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">data_structures::sparse_table::N</a></div><div class="ttdeci">constexpr uint32_t N</div><div class="ttdoc">A struct to represent sparse table for min() as their invariant function, for the given array A....</div><div class="ttdef"><b>Definition</b> sparse_table.cpp:47</div></div>
<div class="ttc" id="agroup__machine__learning_html_ga5118e5cbc4f0886e27b3a7a2544dded1"><div class="ttname"><a href="../../d9/d66/group__machine__learning.html#ga5118e5cbc4f0886e27b3a7a2544dded1">MAX_ITER</a></div><div class="ttdeci">constexpr int MAX_ITER</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:40</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -486,19 +464,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int machine_learning::adaline::predict </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>x</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double *&#160;</td>
<td class="paramname"><em>out</em> = <code>nullptr</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double *</td> <td class="paramname"><span class="paramname"><em>out</em><span class="paramdefsep"> = </span><span class="paramdefval">nullptr</span></span>&#160;)</td>
</tr>
</table>
</td>
@@ -516,24 +487,24 @@ Here is the call graph for this function:</div>
</dl>
<dl class="section return"><dt>Returns</dt><dd>model prediction output </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 95</span> {</div>
<div class="line"><span class="lineno"> 96</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="../../d6/d30/classmachine__learning_1_1adaline.html#ac8a9c2aaaa63b0f27ea176857e1e7d56">check_size_match</a>(x)) {</div>
<div class="line"><span class="lineno"> 96</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="#ac8a9c2aaaa63b0f27ea176857e1e7d56">check_size_match</a>(x)) {</div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 98</span> }</div>
<div class="line"><span class="lineno"> 99</span> </div>
<div class="line"><span class="lineno"> 100</span> <span class="keywordtype">double</span> y = <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/back.html">back</a>(); <span class="comment">// assign bias value</span></div>
<div class="line"><span class="lineno"> 100</span> <span class="keywordtype">double</span> y = <a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/back.html">back</a>(); <span class="comment">// assign bias value</span></div>
<div class="line"><span class="lineno"> 101</span> </div>
<div class="line"><span class="lineno"> 102</span> <span class="comment">// for (int i = 0; i &lt; x.size(); i++) y += x[i] * weights[i];</span></div>
<div class="line"><span class="lineno"> 103</span> y = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/inner_product.html">std::inner_product</a>(x.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), x.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>(), <a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), y);</div>
<div class="line"><span class="lineno"> 103</span> y = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/inner_product.html">std::inner_product</a>(x.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), x.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>(), <a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), y);</div>
<div class="line"><span class="lineno"> 104</span> </div>
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">if</span> (out != <span class="keyword">nullptr</span>) { <span class="comment">// if out variable is provided</span></div>
<div class="line"><span class="lineno"> 106</span> *out = y;</div>
<div class="line"><span class="lineno"> 107</span> }</div>
<div class="line"><span class="lineno"> 108</span> </div>
<div class="line"><span class="lineno"> 109</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d6/d30/classmachine__learning_1_1adaline.html#a082f758fb55fe19f22b3df66f89b2325">activation</a>(y); <span class="comment">// quantizer: apply ADALINE threshold function</span></div>
<div class="line"><span class="lineno"> 109</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#a082f758fb55fe19f22b3df66f89b2325">activation</a>(y); <span class="comment">// quantizer: apply ADALINE threshold function</span></div>
<div class="line"><span class="lineno"> 110</span> }</div>
<div class="ttc" id="aback_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/back.html">std::vector::back</a></div><div class="ttdeci">T back(T... args)</div></div>
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/begin.html">std::vector::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_a082f758fb55fe19f22b3df66f89b2325"><div class="ttname"><a href="../../d6/d30/classmachine__learning_1_1adaline.html#a082f758fb55fe19f22b3df66f89b2325">machine_learning::adaline::activation</a></div><div class="ttdeci">int activation(double x)</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:186</div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html_a082f758fb55fe19f22b3df66f89b2325"><div class="ttname"><a href="#a082f758fb55fe19f22b3df66f89b2325">machine_learning::adaline::activation</a></div><div class="ttdeci">int activation(double x)</div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:186</div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/end.html">std::vector::end</a></div><div class="ttdeci">T end(T... args)</div></div>
<div class="ttc" id="ainner_product_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/inner_product.html">std::inner_product</a></div><div class="ttdeci">T inner_product(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -557,19 +528,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp; operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td>
<td class="paramname"><em>out</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;</td> <td class="paramname"><span class="paramname"><em>out</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html">adaline</a> &amp;&#160;</td>
<td class="paramname"><em>ada</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const <a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html">adaline</a> &amp;</td> <td class="paramname"><span class="paramname"><em>ada</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -581,9 +545,9 @@ Here is the call graph for this function:</div>
<p>Operator to print the weights of the model </p>
<div class="fragment"><div class="line"><span class="lineno"> 76</span> {</div>
<div class="line"><span class="lineno"> 77</span> out &lt;&lt; <span class="stringliteral">&quot;&lt;&quot;</span>;</div>
<div class="line"><span class="lineno"> 78</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; ada.<a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); i++) {</div>
<div class="line"><span class="lineno"> 79</span> out &lt;&lt; ada.<a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>[i];</div>
<div class="line"><span class="lineno"> 80</span> <span class="keywordflow">if</span> (i &lt; ada.<a class="code hl_variable" href="../../d6/d30/classmachine__learning_1_1adaline.html#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 1) {</div>
<div class="line"><span class="lineno"> 78</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; ada.<a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); i++) {</div>
<div class="line"><span class="lineno"> 79</span> out &lt;&lt; ada.<a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>[i];</div>
<div class="line"><span class="lineno"> 80</span> <span class="keywordflow">if</span> (i &lt; ada.<a class="code hl_variable" href="#a4cd8fe438032fedaa66f93bfd66f5492">weights</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 1) {</div>
<div class="line"><span class="lineno"> 81</span> out &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
<div class="line"><span class="lineno"> 82</span> }</div>
<div class="line"><span class="lineno"> 83</span> }</div>
@@ -602,7 +566,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d8/d77/namespacemachine__learning.html">machine_learning</a></li><li class="navelem"><a class="el" href="../../d6/d30/classmachine__learning_1_1adaline.html">adaline</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: bit_manipulation/find_non_repeating_number.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d38/find__non__repeating__number_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d38/find__non__repeating__number_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -126,13 +128,13 @@ 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:ac5ca4c0be0967b4dd572507f50451ae3" id="r_ac5ca4c0be0967b4dd572507f50451ae3"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d38/find__non__repeating__number_8cpp.html#ac5ca4c0be0967b4dd572507f50451ae3">bit_manipulation::find_non_repeating_integer::find_non_repeating_integer</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;nums)</td></tr>
<tr class="memitem:ac5ca4c0be0967b4dd572507f50451ae3" id="r_ac5ca4c0be0967b4dd572507f50451ae3"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac5ca4c0be0967b4dd572507f50451ae3">bit_manipulation::find_non_repeating_integer::find_non_repeating_integer</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;nums)</td></tr>
<tr class="memdesc:ac5ca4c0be0967b4dd572507f50451ae3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function implements find single number. <br /></td></tr>
<tr class="separator:ac5ca4c0be0967b4dd572507f50451ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d38/find__non__repeating__number_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d38/find__non__repeating__number_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -151,8 +153,7 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int64_t bit_manipulation::find_non_repeating_integer::find_non_repeating_integer </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>nums</em></td><td>)</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>nums</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -194,8 +195,7 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -204,10 +204,10 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 85</span> {</div>
<div class="line"><span class="lineno"> 86</span> <a class="code hl_function" href="../../d6/d38/find__non__repeating__number_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 86</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 87</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 88</span>}</div>
<div class="ttc" id="afind__non__repeating__number_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/d38/find__non__repeating__number_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> find_non_repeating_number.cpp:62</div></div>
<div class="ttc" id="afind__non__repeating__number_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> find_non_repeating_number.cpp:62</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -228,7 +228,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -278,7 +278,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_f3c4fbc4e901afa0a54d0623c5574aa7.html">bit_manipulation</a></li><li class="navelem"><a class="el" href="../../d6/d38/find__non__repeating__number_8cpp.html">find_non_repeating_number.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: data_structures/sparse_table.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d42/data__structures_2sparse__table_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d42/data__structures_2sparse__table_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -133,16 +135,16 @@ 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:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97" id="r_a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97" id="r_a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr class="memdesc:a0ddf1224851353fc92bfbff6f499fa97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:a0ddf1224851353fc92bfbff6f499fa97"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a10f3ffb3f6f7e1b83d556b9c8de89a5d" id="r_a10f3ffb3f6f7e1b83d556b9c8de89a5d"><td class="memItemLeft" align="right" valign="top">constexpr uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">data_structures::sparse_table::N</a> = 12345</td></tr>
<tr class="memitem:a10f3ffb3f6f7e1b83d556b9c8de89a5d" id="r_a10f3ffb3f6f7e1b83d556b9c8de89a5d"><td class="memItemLeft" align="right" valign="top">constexpr uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a10f3ffb3f6f7e1b83d556b9c8de89a5d">data_structures::sparse_table::N</a> = 12345</td></tr>
<tr class="memdesc:a10f3ffb3f6f7e1b83d556b9c8de89a5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">A struct to represent sparse table for <code>min()</code> as their invariant function, for the given array <code>A</code>. The answer to queries are stored in the array ST. <br /></td></tr>
<tr class="separator:a10f3ffb3f6f7e1b83d556b9c8de89a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7db62f21983565c64d5d42d2a49888e" id="r_af7db62f21983565c64d5d42d2a49888e"><td class="memItemLeft" align="right" valign="top"><a id="af7db62f21983565c64d5d42d2a49888e" name="af7db62f21983565c64d5d42d2a49888e"></a>
@@ -155,7 +157,7 @@ constexpr uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>data_str
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/manncodes" target="_blank">Mann Patel</a></dd></dl>
<p>Sparse Table is a data structure, that allows answering range queries. It can answer most range queries in O(logn), but its true power is answering range minimum queries (or equivalent range maximum queries). For those queries it can compute the answer in O(1) time. The only drawback of this data structure is, that it can only be used on immutable arrays. This means, that the array cannot be changed between two queries.</p>
<p>If any element in the array changes, the complete data structure has to be recomputed.</p>
<dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000004">Todo:</a></b></dt><dd>make stress tests.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000004">Todo</a></b></dt><dd>make stress tests.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>This sparse table is made for <code>min(a1,a2,...an)</code> duplicate invariant function. This implementation can be changed to other functions like <code><a class="el" href="../../d4/da0/gcd__iterative__euclidean_8cpp.html#ae48807fa2b7000afae599e67f327545e">gcd()</a></code>, <code><a class="el" href="../../d4/d21/least__common__multiple_8cpp.html#aa8d0e241db517813725e721a152e3a25">lcm()</a></code>, and <code>max()</code> by changing a few lines of code. </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a0ddf1224851353fc92bfbff6f499fa97" name="a0ddf1224851353fc92bfbff6f499fa97"></a>
@@ -167,19 +169,12 @@ constexpr uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>data_str
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>argc</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>argv</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">char *</td> <td class="paramname"><span class="paramname"><em>argv</em>[]</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -194,10 +189,10 @@ constexpr uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>data_str
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 161</span> {</div>
<div class="line"><span class="lineno"> 162</span> <a class="code hl_function" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 162</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 163</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 164</span>}</div>
<div class="ttc" id="adata__structures_2sparse__table_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/d42/data__structures_2sparse__table_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> sparse_table.cpp:128</div></div>
<div class="ttc" id="adata__structures_2sparse__table_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> sparse_table.cpp:128</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -218,7 +213,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -313,7 +308,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_2e746e9d06bf2d8ff842208bcc6ebcfc.html">data_structures</a></li><li class="navelem"><a class="el" href="../../d6/d42/data__structures_2sparse__table_8cpp.html">sparse_table.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math/miller_rabin.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d42/miller__rabin_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d42/miller__rabin_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -115,20 +117,20 @@ Include dependency graph for miller_rabin.cpp:</div>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a091662a787d5ad4866713021f580fddb" id="r_a091662a787d5ad4866713021f580fddb"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a091662a787d5ad4866713021f580fddb"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d42/miller__rabin_8cpp.html#a091662a787d5ad4866713021f580fddb">reverse_binary</a> (T num)</td></tr>
<tr class="memitem:a091662a787d5ad4866713021f580fddb"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a091662a787d5ad4866713021f580fddb">reverse_binary</a> (T num)</td></tr>
<tr class="separator:a091662a787d5ad4866713021f580fddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6c2c67ea416d0e80003a88623f98b29" id="r_ad6c2c67ea416d0e80003a88623f98b29"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad6c2c67ea416d0e80003a88623f98b29"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d42/miller__rabin_8cpp.html#ad6c2c67ea416d0e80003a88623f98b29">modular_exponentiation</a> (T base, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;rev_binary_exponent, T mod)</td></tr>
<tr class="memitem:ad6c2c67ea416d0e80003a88623f98b29"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ad6c2c67ea416d0e80003a88623f98b29">modular_exponentiation</a> (T base, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;rev_binary_exponent, T mod)</td></tr>
<tr class="separator:ad6c2c67ea416d0e80003a88623f98b29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f9c31c1047aa3191676d64571d4c506" id="r_a6f9c31c1047aa3191676d64571d4c506"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a6f9c31c1047aa3191676d64571d4c506"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d42/miller__rabin_8cpp.html#a6f9c31c1047aa3191676d64571d4c506">miller_test</a> (T d, T num)</td></tr>
<tr class="memitem:a6f9c31c1047aa3191676d64571d4c506"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a6f9c31c1047aa3191676d64571d4c506">miller_test</a> (T d, T num)</td></tr>
<tr class="separator:a6f9c31c1047aa3191676d64571d4c506"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a901288288ef5ebe8e97414cc30797cce" id="r_a901288288ef5ebe8e97414cc30797cce"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a901288288ef5ebe8e97414cc30797cce"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/d42/miller__rabin_8cpp.html#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a> (T num, T repeats)</td></tr>
<tr class="memitem:a901288288ef5ebe8e97414cc30797cce"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a> (T num, T repeats)</td></tr>
<tr class="separator:a901288288ef5ebe8e97414cc30797cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88ec9ad42717780d6caaff9d3d6977f9" id="r_a88ec9ad42717780d6caaff9d3d6977f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d42/miller__rabin_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a> ()</td></tr>
<tr class="memitem:a88ec9ad42717780d6caaff9d3d6977f9" id="r_a88ec9ad42717780d6caaff9d3d6977f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a88ec9ad42717780d6caaff9d3d6977f9">tests</a> ()</td></tr>
<tr class="separator:a88ec9ad42717780d6caaff9d3d6977f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d42/miller__rabin_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -144,18 +146,17 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><span class="lineno"> 183</span> {</div>
<div class="line"><span class="lineno"> 184</span> <a class="code hl_function" href="../../d6/d42/miller__rabin_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
<div class="line"><span class="lineno"> 184</span> <a class="code hl_function" href="#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
<div class="line"><span class="lineno"> 185</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 186</span>}</div>
<div class="ttc" id="amiller__rabin_8cpp_html_a88ec9ad42717780d6caaff9d3d6977f9"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a></div><div class="ttdeci">void tests()</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:157</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_a88ec9ad42717780d6caaff9d3d6977f9"><div class="ttname"><a href="#a88ec9ad42717780d6caaff9d3d6977f9">tests</a></div><div class="ttdeci">void tests()</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:157</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -175,19 +176,12 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname">bool miller_rabin_primality_test </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>num</em>, </td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>num</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>repeats</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>repeats</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -223,13 +217,13 @@ template&lt;typename T &gt; </div>
<div class="line"><span class="lineno"> 143</span> }</div>
<div class="line"><span class="lineno"> 144</span> </div>
<div class="line"><span class="lineno"> 145</span> <span class="keywordflow">for</span> (T i = 0; i &lt; repeats; ++i) {</div>
<div class="line"><span class="lineno"> 146</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="../../d6/d42/miller__rabin_8cpp.html#a6f9c31c1047aa3191676d64571d4c506">miller_test</a>(d, num)) {</div>
<div class="line"><span class="lineno"> 146</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="#a6f9c31c1047aa3191676d64571d4c506">miller_test</a>(d, num)) {</div>
<div class="line"><span class="lineno"> 147</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 148</span> }</div>
<div class="line"><span class="lineno"> 149</span> }</div>
<div class="line"><span class="lineno"> 150</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 151</span>}</div>
<div class="ttc" id="amiller__rabin_8cpp_html_a6f9c31c1047aa3191676d64571d4c506"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#a6f9c31c1047aa3191676d64571d4c506">miller_test</a></div><div class="ttdeci">bool miller_test(T d, T num)</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:73</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_a6f9c31c1047aa3191676d64571d4c506"><div class="ttname"><a href="#a6f9c31c1047aa3191676d64571d4c506">miller_test</a></div><div class="ttdeci">bool miller_test(T d, T num)</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:73</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -249,19 +243,12 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname">bool miller_test </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>d</em>, </td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>d</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>num</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>num</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -285,9 +272,9 @@ template&lt;typename T &gt; </div>
<div class="line"><span class="lineno"> 80</span> <span class="comment">// Random number generated in the range [2, num -2].</span></div>
<div class="line"><span class="lineno"> 81</span> T random = distribution(gen);</div>
<div class="line"><span class="lineno"> 82</span> <span class="comment">// vector for reverse binary of the power</span></div>
<div class="line"><span class="lineno"> 83</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;T&gt;</a> <a class="code hl_function" href="../../df/def/power__for__huge__numbers_8cpp.html#ae249a2af508aa94266023ce8aa81426f">power</a> = <a class="code hl_function" href="../../d6/d42/miller__rabin_8cpp.html#a091662a787d5ad4866713021f580fddb">reverse_binary</a>(d);</div>
<div class="line"><span class="lineno"> 83</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;T&gt;</a> <a class="code hl_function" href="../../df/def/power__for__huge__numbers_8cpp.html#ae249a2af508aa94266023ce8aa81426f">power</a> = <a class="code hl_function" href="#a091662a787d5ad4866713021f580fddb">reverse_binary</a>(d);</div>
<div class="line"><span class="lineno"> 84</span> <span class="comment">// x = random ^ d % num</span></div>
<div class="line"><span class="lineno"> 85</span> T x = <a class="code hl_function" href="../../d6/d42/miller__rabin_8cpp.html#ad6c2c67ea416d0e80003a88623f98b29">modular_exponentiation</a>(random, <a class="code hl_function" href="../../df/def/power__for__huge__numbers_8cpp.html#ae249a2af508aa94266023ce8aa81426f">power</a>, num);</div>
<div class="line"><span class="lineno"> 85</span> T x = <a class="code hl_function" href="#ad6c2c67ea416d0e80003a88623f98b29">modular_exponentiation</a>(random, <a class="code hl_function" href="../../df/def/power__for__huge__numbers_8cpp.html#ae249a2af508aa94266023ce8aa81426f">power</a>, num);</div>
<div class="line"><span class="lineno"> 86</span> <span class="comment">// miller conditions</span></div>
<div class="line"><span class="lineno"> 87</span> <span class="keywordflow">if</span> (x == 1 || x == num - 1) {</div>
<div class="line"><span class="lineno"> 88</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
@@ -306,8 +293,8 @@ template&lt;typename T &gt; </div>
<div class="line"><span class="lineno"> 101</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 102</span>}</div>
<div class="ttc" id="amersenne_twister_engine_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/mersenne_twister_engine.html">std::mt19937</a></div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_a091662a787d5ad4866713021f580fddb"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#a091662a787d5ad4866713021f580fddb">reverse_binary</a></div><div class="ttdeci">std::vector&lt; T &gt; reverse_binary(T num)</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:19</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_ad6c2c67ea416d0e80003a88623f98b29"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#ad6c2c67ea416d0e80003a88623f98b29">modular_exponentiation</a></div><div class="ttdeci">T modular_exponentiation(T base, const std::vector&lt; T &gt; &amp;rev_binary_exponent, T mod)</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:43</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_a091662a787d5ad4866713021f580fddb"><div class="ttname"><a href="#a091662a787d5ad4866713021f580fddb">reverse_binary</a></div><div class="ttdeci">std::vector&lt; T &gt; reverse_binary(T num)</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:19</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_ad6c2c67ea416d0e80003a88623f98b29"><div class="ttname"><a href="#ad6c2c67ea416d0e80003a88623f98b29">modular_exponentiation</a></div><div class="ttdeci">T modular_exponentiation(T base, const std::vector&lt; T &gt; &amp;rev_binary_exponent, T mod)</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:43</div></div>
<div class="ttc" id="apower__for__huge__numbers_8cpp_html_ae249a2af508aa94266023ce8aa81426f"><div class="ttname"><a href="../../df/def/power__for__huge__numbers_8cpp.html#ae249a2af508aa94266023ce8aa81426f">power</a></div><div class="ttdeci">void power(int x, int n)</div><div class="ttdef"><b>Definition</b> power_for_huge_numbers.cpp:56</div></div>
<div class="ttc" id="arandom_device_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/random_device.html">std::random_device</a></div></div>
<div class="ttc" id="auniform_int_distribution_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution.html">std::uniform_int_distribution</a></div></div>
@@ -331,25 +318,17 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname">T modular_exponentiation </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>base</em>, </td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>base</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>rev_binary_exponent</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>rev_binary_exponent</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>mod</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>mod</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -373,7 +352,7 @@ template&lt;typename T &gt; </div>
<div class="line"><span class="lineno"> 51</span> <span class="keywordflow">if</span> (rev_binary_exponent[0] == 1)</div>
<div class="line"><span class="lineno"> 52</span> b = base;</div>
<div class="line"><span class="lineno"> 53</span> </div>
<div class="line"><span class="lineno"> 54</span> <span class="keywordflow">for</span> (<span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;T&gt;::const_iterator</a> it =</div>
<div class="line"><span class="lineno"> 54</span> <span class="keywordflow">for</span> (<span class="keyword">typename</span> std::vector&lt;T&gt;::const_iterator it =</div>
<div class="line"><span class="lineno"> 55</span> rev_binary_exponent.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">cbegin</a>() + 1;</div>
<div class="line"><span class="lineno"> 56</span> it != rev_binary_exponent.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">cend</a>(); ++it) {</div>
<div class="line"><span class="lineno"> 57</span> A = A * A % mod;</div>
@@ -404,8 +383,7 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; reverse_binary </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>num</em></td><td>)</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>num</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -439,37 +417,37 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname">void tests </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Functions for testing the <a class="el" href="../../d6/d42/miller__rabin_8cpp.html#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test()</a> function with some assert statements. </p>
<p>Functions for testing the <a class="el" href="#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test()</a> function with some assert statements. </p>
<div class="fragment"><div class="line"><span class="lineno"> 157</span> {</div>
<div class="line"><span class="lineno"> 158</span> <span class="comment">// First test on 2</span></div>
<div class="line"><span class="lineno"> 159</span> assert(((<span class="keywordtype">void</span>)<span class="stringliteral">&quot;2 is prime but function says otherwise.\n&quot;</span>,</div>
<div class="line"><span class="lineno"> 160</span> <a class="code hl_function" href="../../d6/d42/miller__rabin_8cpp.html#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(2, 1) == <span class="keyword">true</span>));</div>
<div class="line"><span class="lineno"> 160</span> <a class="code hl_function" href="#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(2, 1) == <span class="keyword">true</span>));</div>
<div class="line"><span class="lineno"> 161</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;First test passes.&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"> 162</span> <span class="comment">// Second test on 5</span></div>
<div class="line"><span class="lineno"> 163</span> assert(((<span class="keywordtype">void</span>)<span class="stringliteral">&quot;5 should be prime but the function says otherwise.\n&quot;</span>,</div>
<div class="line"><span class="lineno"> 164</span> <a class="code hl_function" href="../../d6/d42/miller__rabin_8cpp.html#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(5, 3) == <span class="keyword">true</span>));</div>
<div class="line"><span class="lineno"> 164</span> <a class="code hl_function" href="#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(5, 3) == <span class="keyword">true</span>));</div>
<div class="line"><span class="lineno"> 165</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;Second test passes.&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"> 166</span> <span class="comment">// Third test on 23</span></div>
<div class="line"><span class="lineno"> 167</span> assert(((<span class="keywordtype">void</span>)<span class="stringliteral">&quot;23 should be prime but the function says otherwise.\n&quot;</span>,</div>
<div class="line"><span class="lineno"> 168</span> <a class="code hl_function" href="../../d6/d42/miller__rabin_8cpp.html#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(23, 3) == <span class="keyword">true</span>));</div>
<div class="line"><span class="lineno"> 168</span> <a class="code hl_function" href="#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(23, 3) == <span class="keyword">true</span>));</div>
<div class="line"><span class="lineno"> 169</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;Third test passes.&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"> 170</span> <span class="comment">// Fourth test on 16</span></div>
<div class="line"><span class="lineno"> 171</span> assert(((<span class="keywordtype">void</span>)<span class="stringliteral">&quot;16 is not a prime but the function says otherwise.\n&quot;</span>,</div>
<div class="line"><span class="lineno"> 172</span> <a class="code hl_function" href="../../d6/d42/miller__rabin_8cpp.html#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(16, 3) == <span class="keyword">false</span>));</div>
<div class="line"><span class="lineno"> 172</span> <a class="code hl_function" href="#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(16, 3) == <span class="keyword">false</span>));</div>
<div class="line"><span class="lineno"> 173</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;Fourth test passes.&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"> 174</span> <span class="comment">// Fifth test on 27</span></div>
<div class="line"><span class="lineno"> 175</span> assert(((<span class="keywordtype">void</span>)<span class="stringliteral">&quot;27 is not a prime but the function says otherwise.\n&quot;</span>,</div>
<div class="line"><span class="lineno"> 176</span> <a class="code hl_function" href="../../d6/d42/miller__rabin_8cpp.html#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(27, 3) == <span class="keyword">false</span>));</div>
<div class="line"><span class="lineno"> 176</span> <a class="code hl_function" href="#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a>(27, 3) == <span class="keyword">false</span>));</div>
<div class="line"><span class="lineno"> 177</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;Fifth test passes.&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"> 178</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="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="amiller__rabin_8cpp_html_a901288288ef5ebe8e97414cc30797cce"><div class="ttname"><a href="../../d6/d42/miller__rabin_8cpp.html#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a></div><div class="ttdeci">bool miller_rabin_primality_test(T num, T repeats)</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:125</div></div>
<div class="ttc" id="amiller__rabin_8cpp_html_a901288288ef5ebe8e97414cc30797cce"><div class="ttname"><a href="#a901288288ef5ebe8e97414cc30797cce">miller_rabin_primality_test</a></div><div class="ttdeci">bool miller_rabin_primality_test(T num, T repeats)</div><div class="ttdef"><b>Definition</b> miller_rabin.cpp:125</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -484,7 +462,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_296d53ceaeaa7e099814a6def439fe8a.html">math</a></li><li class="navelem"><a class="el" href="../../d6/d42/miller__rabin_8cpp.html">miller_rabin.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers::elliptic_curve_key_exchange::Point Struct Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -107,7 +109,7 @@ $(document).ready(function(){initNavTree('d6/d45/structciphers_1_1elliptic__curv
<div class="contents">
<p>Definition of struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a>.
<a href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html#details">More...</a></p>
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for ciphers::elliptic_curve_key_exchange::Point:</div>
<div class="dyncontent">
@@ -116,7 +118,7 @@ Collaboration diagram for ciphers::elliptic_curve_key_exchange::Point:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5084e9ca27837662c31d4dc003815446" id="r_a5084e9ca27837662c31d4dc003815446"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html#a5084e9ca27837662c31d4dc003815446">operator==</a> (const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> &amp;p)</td></tr>
<tr class="memitem:a5084e9ca27837662c31d4dc003815446" id="r_a5084e9ca27837662c31d4dc003815446"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5084e9ca27837662c31d4dc003815446">operator==</a> (const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> &amp;p)</td></tr>
<tr class="memdesc:a5084e9ca27837662c31d4dc003815446"><td class="mdescLeft">&#160;</td><td class="mdescRight">x and y co-ordinates <br /></td></tr>
<tr class="separator:a5084e9ca27837662c31d4dc003815446"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -131,7 +133,7 @@ Public Attributes</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:af2142b27241b28f835e8ce78d7d6463c" id="r_af2142b27241b28f835e8ce78d7d6463c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html#af2142b27241b28f835e8ce78d7d6463c">operator&lt;&lt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;op, const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> &amp;p)</td></tr>
<tr class="memitem:af2142b27241b28f835e8ce78d7d6463c" id="r_af2142b27241b28f835e8ce78d7d6463c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af2142b27241b28f835e8ce78d7d6463c">operator&lt;&lt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;op, const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> &amp;p)</td></tr>
<tr class="memdesc:af2142b27241b28f835e8ce78d7d6463c"><td class="mdescLeft">&#160;</td><td class="mdescRight">ostream operator for printing <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> <br /></td></tr>
<tr class="separator:af2142b27241b28f835e8ce78d7d6463c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -151,8 +153,7 @@ Friends</h2></td></tr>
<tr>
<td class="memname">bool ciphers::elliptic_curve_key_exchange::Point::operator== </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>p</em></td><td>)</td>
<td class="paramtype">const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> &amp;</td> <td class="paramname"><span class="paramname"><em>p</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -190,19 +191,12 @@ Friends</h2></td></tr>
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp; operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td>
<td class="paramname"><em>op</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;</td> <td class="paramname"><span class="paramname"><em>op</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> &amp;&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> &amp;</td> <td class="paramname"><span class="paramname"><em>p</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -237,7 +231,7 @@ Friends</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></li><li class="navelem"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html">elliptic_curve_key_exchange</a></li><li class="navelem"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: probability/addition_rule.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d4a/addition__rule_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d4a/addition__rule_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -114,11 +116,11 @@ Include dependency graph for addition_rule.cpp:</div>
</div><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:a4adfd055c758546456d440ee9133555d" id="r_a4adfd055c758546456d440ee9133555d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4a/addition__rule_8cpp.html#a4adfd055c758546456d440ee9133555d">addition_rule_independent</a> (double A, double B)</td></tr>
<tr class="memitem:a4adfd055c758546456d440ee9133555d" id="r_a4adfd055c758546456d440ee9133555d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4adfd055c758546456d440ee9133555d">addition_rule_independent</a> (double A, double B)</td></tr>
<tr class="separator:a4adfd055c758546456d440ee9133555d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a565ffcbbdbe496ced37250bc8dc36bc0" id="r_a565ffcbbdbe496ced37250bc8dc36bc0"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4a/addition__rule_8cpp.html#a565ffcbbdbe496ced37250bc8dc36bc0">addition_rule_dependent</a> (double A, double B, double B_given_A)</td></tr>
<tr class="memitem:a565ffcbbdbe496ced37250bc8dc36bc0" id="r_a565ffcbbdbe496ced37250bc8dc36bc0"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a565ffcbbdbe496ced37250bc8dc36bc0">addition_rule_dependent</a> (double A, double B, double B_given_A)</td></tr>
<tr class="separator:a565ffcbbdbe496ced37250bc8dc36bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4a/addition__rule_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -133,25 +135,17 @@ Functions</h2></td></tr>
<tr>
<td class="memname">double addition_rule_dependent </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>A</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>A</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>B</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>B</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>B_given_A</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>B_given_A</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -171,19 +165,12 @@ Functions</h2></td></tr>
<tr>
<td class="memname">double addition_rule_independent </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>A</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>A</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>B</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>B</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -203,8 +190,7 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -215,16 +201,16 @@ Functions</h2></td></tr>
<div class="line"><span class="lineno"> 32</span> <span class="keywordtype">double</span> B = 0.25;</div>
<div class="line"><span class="lineno"> 33</span> <span class="keywordtype">double</span> B_given_A = 0.05;</div>
<div class="line"><span class="lineno"> 34</span> </div>
<div class="line"><span class="lineno"> 35</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;independent P(A or B) = &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d6/d4a/addition__rule_8cpp.html#a4adfd055c758546456d440ee9133555d">addition_rule_independent</a>(A, B)</div>
<div class="line"><span class="lineno"> 35</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;independent P(A or B) = &quot;</span> &lt;&lt; <a class="code hl_function" href="#a4adfd055c758546456d440ee9133555d">addition_rule_independent</a>(A, B)</div>
<div class="line"><span class="lineno"> 36</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"> 37</span> </div>
<div class="line"><span class="lineno"> 38</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;dependent P(A or B) = &quot;</span></div>
<div class="line"><span class="lineno"> 39</span> &lt;&lt; <a class="code hl_function" href="../../d6/d4a/addition__rule_8cpp.html#a565ffcbbdbe496ced37250bc8dc36bc0">addition_rule_dependent</a>(A, B, B_given_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"> 39</span> &lt;&lt; <a class="code hl_function" href="#a565ffcbbdbe496ced37250bc8dc36bc0">addition_rule_dependent</a>(A, B, B_given_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"> 40</span> </div>
<div class="line"><span class="lineno"> 41</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 42</span>}</div>
<div class="ttc" id="aaddition__rule_8cpp_html_a4adfd055c758546456d440ee9133555d"><div class="ttname"><a href="../../d6/d4a/addition__rule_8cpp.html#a4adfd055c758546456d440ee9133555d">addition_rule_independent</a></div><div class="ttdeci">double addition_rule_independent(double A, double B)</div><div class="ttdef"><b>Definition</b> addition_rule.cpp:14</div></div>
<div class="ttc" id="aaddition__rule_8cpp_html_a565ffcbbdbe496ced37250bc8dc36bc0"><div class="ttname"><a href="../../d6/d4a/addition__rule_8cpp.html#a565ffcbbdbe496ced37250bc8dc36bc0">addition_rule_dependent</a></div><div class="ttdeci">double addition_rule_dependent(double A, double B, double B_given_A)</div><div class="ttdef"><b>Definition</b> addition_rule.cpp:25</div></div>
<div class="ttc" id="aaddition__rule_8cpp_html_a4adfd055c758546456d440ee9133555d"><div class="ttname"><a href="#a4adfd055c758546456d440ee9133555d">addition_rule_independent</a></div><div class="ttdeci">double addition_rule_independent(double A, double B)</div><div class="ttdef"><b>Definition</b> addition_rule.cpp:14</div></div>
<div class="ttc" id="aaddition__rule_8cpp_html_a565ffcbbdbe496ced37250bc8dc36bc0"><div class="ttname"><a href="#a565ffcbbdbe496ced37250bc8dc36bc0">addition_rule_dependent</a></div><div class="ttdeci">double addition_rule_dependent(double A, double B, double B_given_A)</div><div class="ttdef"><b>Definition</b> addition_rule.cpp:25</div></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="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><!-- fragment --><div class="dynheader">
@@ -241,7 +227,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_82e494173a87936756866de2fa774307.html">probability</a></li><li class="navelem"><a class="el" href="../../d6/d4a/addition__rule_8cpp.html">addition_rule.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers Namespace Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d4e/namespaceciphers.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d4e/namespaceciphers.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -106,7 +108,7 @@ $(document).ready(function(){initNavTree('d6/d4e/namespaceciphers.html','../../'
<div class="contents">
<p>Algorithms for encryption and decryption.
<a href="../../d6/d4e/namespaceciphers.html#details">More...</a></p>
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
@@ -122,7 +124,7 @@ Classes</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ab9aec0ccf4b6809f652bb540be87c216" id="r_ab9aec0ccf4b6809f652bb540be87c216"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4e/namespaceciphers.html#ab9aec0ccf4b6809f652bb540be87c216">STRKEY</a></td></tr>
<tr class="memitem:ab9aec0ccf4b6809f652bb540be87c216" id="r_ab9aec0ccf4b6809f652bb540be87c216"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab9aec0ccf4b6809f652bb540be87c216">STRKEY</a></td></tr>
<tr class="separator:ab9aec0ccf4b6809f652bb540be87c216"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -170,7 +172,7 @@ Variables</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: /Users/runner/work/C-Plus-Plus/C-Plus-Plus/math/iterative_factorial.cpp</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d50/_2_users_2runner_2work_2_c-_plus-_plus_2_c-_plus-_plus_2math_2iterative_factorial_8cpp-example.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d50/_2_users_2runner_2work_2_c-_plus-_plus_2_c-_plus-_plus_2math_2iterative_factorial_8cpp-example.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -236,7 +238,7 @@ $(document).ready(function(){initNavTree('d6/d50/_2_users_2runner_2work_2_c-_plu
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: word_break Namespace Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d53/namespaceword__break.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d53/namespaceword__break.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -102,7 +104,7 @@ $(document).ready(function(){initNavTree('d6/d53/namespaceword__break.html','../
<div class="contents">
<p>Functions for <a href="https://leetcode.com/problems/word-break/" target="_blank">Word Break</a> problem.
<a href="../../d6/d53/namespaceword__break.html#details">More...</a></p>
<a href="#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for <a href="https://leetcode.com/problems/word-break/" target="_blank">Word Break</a> problem. </p>
</div></div><!-- contents -->
@@ -111,7 +113,7 @@ $(document).ready(function(){initNavTree('d6/d53/namespaceword__break.html','../
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d53/namespaceword__break.html">word_break</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: operations_on_datastructures/array_right_rotation.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d57/array__right__rotation_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d57/array__right__rotation_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -147,10 +149,10 @@ Functions</h2></td></tr>
<tr class="memitem:af7b81d7a1534216af6a36a80135beb86" id="r_af7b81d7a1534216af6a36a80135beb86"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/df4/namespacetests.html#af7b81d7a1534216af6a36a80135beb86">tests::test5</a> ()</td></tr>
<tr class="memdesc:af7b81d7a1534216af6a36a80135beb86"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Test to check a shift of zero. <br /></td></tr>
<tr class="separator:af7b81d7a1534216af6a36a80135beb86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d57/array__right__rotation_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to test the correctness of shift_right() function. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d57/array__right__rotation_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">main function <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -168,8 +170,7 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -178,10 +179,10 @@ Functions</h2></td></tr>
<p>main function </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 172</span> {</div>
<div class="line"><span class="lineno"> 173</span> <a class="code hl_function" href="../../d6/d57/array__right__rotation_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 173</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 174</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 175</span>}</div>
<div class="ttc" id="aarray__right__rotation_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/d57/array__right__rotation_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Function to test the correctness of shift_right() function.</div><div class="ttdef"><b>Definition</b> array_right_rotation.cpp:160</div></div>
<div class="ttc" id="aarray__right__rotation_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Function to test the correctness of shift_right() function.</div><div class="ttdef"><b>Definition</b> array_right_rotation.cpp:160</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -202,7 +203,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -241,7 +242,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_35422be6552f1b3672c1b6c4aba2da64.html">operations_on_datastructures</a></li><li class="navelem"><a class="el" href="../../d6/d57/array__right__rotation_8cpp.html">array_right_rotation.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Ordinary Differential Equations</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d60/group__ode.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d60/group__ode.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -105,27 +107,27 @@ $(document).ready(function(){initNavTree('d6/d60/group__ode.html','../../'); ini
<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:ga195d23bbdfcb80e83c9cda45c9ad5723" id="r_ga195d23bbdfcb80e83c9cda45c9ad5723"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d60/group__ode.html#ga195d23bbdfcb80e83c9cda45c9ad5723">forward_euler_step</a> (const double dx, const double x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *dy)</td></tr>
<tr class="memitem:ga195d23bbdfcb80e83c9cda45c9ad5723" id="r_ga195d23bbdfcb80e83c9cda45c9ad5723"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga195d23bbdfcb80e83c9cda45c9ad5723">forward_euler_step</a> (const double dx, const double x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *dy)</td></tr>
<tr class="memdesc:ga195d23bbdfcb80e83c9cda45c9ad5723"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute next step approximation using the forward-Euler method. <br /></td></tr>
<tr class="separator:ga195d23bbdfcb80e83c9cda45c9ad5723"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae0509f8843e2bc42de2abbd00a14b7b9" id="r_gae0509f8843e2bc42de2abbd00a14b7b9"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d60/group__ode.html#gae0509f8843e2bc42de2abbd00a14b7b9">forward_euler</a> (double dx, double x0, double x_max, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, bool save_to_file=false)</td></tr>
<tr class="memitem:gae0509f8843e2bc42de2abbd00a14b7b9" id="r_gae0509f8843e2bc42de2abbd00a14b7b9"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae0509f8843e2bc42de2abbd00a14b7b9">forward_euler</a> (double dx, double x0, double x_max, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, bool save_to_file=false)</td></tr>
<tr class="memdesc:gae0509f8843e2bc42de2abbd00a14b7b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute approximation using the forward-Euler method in the given limits. <br /></td></tr>
<tr class="separator:gae0509f8843e2bc42de2abbd00a14b7b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8c319db420c3d97a83e9dcca803b6812" id="r_ga8c319db420c3d97a83e9dcca803b6812"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d60/group__ode.html#ga8c319db420c3d97a83e9dcca803b6812">midpoint_euler_step</a> (const double dx, const double &amp;x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *dy)</td></tr>
<tr class="memitem:ga8c319db420c3d97a83e9dcca803b6812" id="r_ga8c319db420c3d97a83e9dcca803b6812"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8c319db420c3d97a83e9dcca803b6812">midpoint_euler_step</a> (const double dx, const double &amp;x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *dy)</td></tr>
<tr class="memdesc:ga8c319db420c3d97a83e9dcca803b6812"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute next step approximation using the midpoint-Euler method. <br /></td></tr>
<tr class="separator:ga8c319db420c3d97a83e9dcca803b6812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36ff0710861ca39d957046c0b09b2985" id="r_ga36ff0710861ca39d957046c0b09b2985"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d60/group__ode.html#ga36ff0710861ca39d957046c0b09b2985">midpoint_euler</a> (double dx, double x0, double x_max, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, bool save_to_file=false)</td></tr>
<tr class="memitem:ga36ff0710861ca39d957046c0b09b2985" id="r_ga36ff0710861ca39d957046c0b09b2985"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga36ff0710861ca39d957046c0b09b2985">midpoint_euler</a> (double dx, double x0, double x_max, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, bool save_to_file=false)</td></tr>
<tr class="memdesc:ga36ff0710861ca39d957046c0b09b2985"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute approximation using the midpoint-Euler method in the given limits. <br /></td></tr>
<tr class="separator:ga36ff0710861ca39d957046c0b09b2985"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga827bf009831ddc477c5fa8891d5cb35f" id="r_ga827bf009831ddc477c5fa8891d5cb35f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d60/group__ode.html#ga827bf009831ddc477c5fa8891d5cb35f">semi_implicit_euler_step</a> (const double dx, const double &amp;x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *dy)</td></tr>
<tr class="memitem:ga827bf009831ddc477c5fa8891d5cb35f" id="r_ga827bf009831ddc477c5fa8891d5cb35f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga827bf009831ddc477c5fa8891d5cb35f">semi_implicit_euler_step</a> (const double dx, const double &amp;x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *dy)</td></tr>
<tr class="memdesc:ga827bf009831ddc477c5fa8891d5cb35f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute next step approximation using the semi-implicit-Euler method. <br /></td></tr>
<tr class="separator:ga827bf009831ddc477c5fa8891d5cb35f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3874d294ab00fe9ce8731c5b7991a089" id="r_ga3874d294ab00fe9ce8731c5b7991a089"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d60/group__ode.html#ga3874d294ab00fe9ce8731c5b7991a089">semi_implicit_euler</a> (double dx, double x0, double x_max, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, bool save_to_file=false)</td></tr>
<tr class="memitem:ga3874d294ab00fe9ce8731c5b7991a089" id="r_ga3874d294ab00fe9ce8731c5b7991a089"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3874d294ab00fe9ce8731c5b7991a089">semi_implicit_euler</a> (double dx, double x0, double x_max, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, bool save_to_file=false)</td></tr>
<tr class="memdesc:ga3874d294ab00fe9ce8731c5b7991a089"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute approximation using the semi-implicit-Euler method in the given limits. <br /></td></tr>
<tr class="separator:ga3874d294ab00fe9ce8731c5b7991a089"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Integration functions for implementations with solving <a href="https://en.wikipedia.org/wiki/Ordinary_differential_equation" target="_blank">ordinary differential equations</a> (ODEs) of any order and and any number of independent variables. </p>
<p>Integration functions for implementations with solving <a href="https://en.wikipedia.org/wiki/Ordinary_differential_equation" target="_blank">ordinary differential equations</a> (ODEs) of any order and and any number of independent variables.</p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gae0509f8843e2bc42de2abbd00a14b7b9" name="gae0509f8843e2bc42de2abbd00a14b7b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae0509f8843e2bc42de2abbd00a14b7b9">&#9670;&#160;</a></span>forward_euler()</h2>
@@ -136,37 +138,27 @@ Functions</h2></td></tr>
<tr>
<td class="memname">double forward_euler </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>dx</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>dx</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x0</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>x0</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x_max</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>x_max</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>y</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>y</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>save_to_file</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>save_to_file</em><span class="paramdefsep"> = </span><span class="paramdefval">false</span></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -210,7 +202,7 @@ Functions</h2></td></tr>
<div class="line"><span class="lineno"> 127</span> fp &lt;&lt; y[0][L - 1] &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>; <span class="comment">// NOLINT</span></div>
<div class="line"><span class="lineno"> 128</span> }</div>
<div class="line"><span class="lineno"> 129</span> </div>
<div class="line"><span class="lineno"> 130</span> <a class="code hl_function" href="../../d6/d60/group__ode.html#ga195d23bbdfcb80e83c9cda45c9ad5723">forward_euler_step</a>(dx, x, y, &amp;dy); <span class="comment">// perform integration</span></div>
<div class="line"><span class="lineno"> 130</span> <a class="code hl_function" href="#ga195d23bbdfcb80e83c9cda45c9ad5723">forward_euler_step</a>(dx, x, y, &amp;dy); <span class="comment">// perform integration</span></div>
<div class="line"><span class="lineno"> 131</span> x += dx; <span class="comment">// update step</span></div>
<div class="line"><span class="lineno"> 132</span> } <span class="keywordflow">while</span> (x &lt;= x_max); <span class="comment">// till upper limit of independent variable</span></div>
<div class="line"><span class="lineno"> 133</span> <span class="comment">/* end of integration */</span></div>
@@ -226,7 +218,7 @@ Functions</h2></td></tr>
<div class="ttc" id="aclock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a></div><div class="ttdeci">T clock(T... args)</div></div>
<div class="ttc" id="aclock_t_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a></div></div>
<div class="ttc" id="aclose_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html">std::ofstream::close</a></div><div class="ttdeci">T close(T... args)</div></div>
<div class="ttc" id="agroup__ode_html_ga195d23bbdfcb80e83c9cda45c9ad5723"><div class="ttname"><a href="../../d6/d60/group__ode.html#ga195d23bbdfcb80e83c9cda45c9ad5723">forward_euler_step</a></div><div class="ttdeci">void forward_euler_step(const double dx, const double x, std::valarray&lt; double &gt; *y, std::valarray&lt; double &gt; *dy)</div><div class="ttdoc">Compute next step approximation using the forward-Euler method.</div><div class="ttdef"><b>Definition</b> ode_forward_euler.cpp:86</div></div>
<div class="ttc" id="agroup__ode_html_ga195d23bbdfcb80e83c9cda45c9ad5723"><div class="ttname"><a href="#ga195d23bbdfcb80e83c9cda45c9ad5723">forward_euler_step</a></div><div class="ttdeci">void forward_euler_step(const double dx, const double x, std::valarray&lt; double &gt; *y, std::valarray&lt; double &gt; *dy)</div><div class="ttdoc">Compute next step approximation using the forward-Euler method.</div><div class="ttdef"><b>Definition</b> ode_forward_euler.cpp:86</div></div>
<div class="ttc" id="ais_open_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream/is_open.html">std::ofstream::is_open</a></div><div class="ttdeci">T is_open(T... args)</div></div>
<div class="ttc" id="aopen_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html">std::ofstream::open</a></div><div class="ttdeci">T open(T... args)</div></div>
<div class="ttc" id="aperror_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/c/perror.html">std::perror</a></div><div class="ttdeci">T perror(T... args)</div></div>
@@ -249,31 +241,22 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void forward_euler_step </td>
<td>(</td>
<td class="paramtype">const double&#160;</td>
<td class="paramname"><em>dx</em>, </td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>dx</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double&#160;</td>
<td class="paramname"><em>x</em>, </td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>x</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>y</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>y</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>dy</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>dy</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -313,37 +296,27 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">double midpoint_euler </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>dx</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>dx</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x0</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>x0</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x_max</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>x_max</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>y</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>y</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>save_to_file</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>save_to_file</em><span class="paramdefsep"> = </span><span class="paramdefval">false</span></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -386,7 +359,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 131</span> fp &lt;&lt; y[0][L - 1] &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 132</span> }</div>
<div class="line"><span class="lineno"> 133</span> </div>
<div class="line"><span class="lineno"> 134</span> <a class="code hl_function" href="../../d6/d60/group__ode.html#ga8c319db420c3d97a83e9dcca803b6812">midpoint_euler_step</a>(dx, x, y, &amp;dy); <span class="comment">// perform integration</span></div>
<div class="line"><span class="lineno"> 134</span> <a class="code hl_function" href="#ga8c319db420c3d97a83e9dcca803b6812">midpoint_euler_step</a>(dx, x, y, &amp;dy); <span class="comment">// perform integration</span></div>
<div class="line"><span class="lineno"> 135</span> x += dx; <span class="comment">// update step</span></div>
<div class="line"><span class="lineno"> 136</span> } <span class="keywordflow">while</span> (x &lt;= x_max); <span class="comment">// till upper limit of independent variable</span></div>
<div class="line"><span class="lineno"> 137</span> <span class="comment">/* end of integration */</span></div>
@@ -397,7 +370,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 142</span> </div>
<div class="line"><span class="lineno"> 143</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(t2 - t1) / CLOCKS_PER_SEC;</div>
<div class="line"><span class="lineno"> 144</span>}</div>
<div class="ttc" id="agroup__ode_html_ga8c319db420c3d97a83e9dcca803b6812"><div class="ttname"><a href="../../d6/d60/group__ode.html#ga8c319db420c3d97a83e9dcca803b6812">midpoint_euler_step</a></div><div class="ttdeci">void midpoint_euler_step(const double dx, const double &amp;x, std::valarray&lt; double &gt; *y, std::valarray&lt; double &gt; *dy)</div><div class="ttdoc">Compute next step approximation using the midpoint-Euler method.</div><div class="ttdef"><b>Definition</b> ode_midpoint_euler.cpp:85</div></div>
<div class="ttc" id="agroup__ode_html_ga8c319db420c3d97a83e9dcca803b6812"><div class="ttname"><a href="#ga8c319db420c3d97a83e9dcca803b6812">midpoint_euler_step</a></div><div class="ttdeci">void midpoint_euler_step(const double dx, const double &amp;x, std::valarray&lt; double &gt; *y, std::valarray&lt; double &gt; *dy)</div><div class="ttdoc">Compute next step approximation using the midpoint-Euler method.</div><div class="ttdef"><b>Definition</b> ode_midpoint_euler.cpp:85</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -415,31 +388,22 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void midpoint_euler_step </td>
<td>(</td>
<td class="paramtype">const double&#160;</td>
<td class="paramname"><em>dx</em>, </td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>dx</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>x</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>y</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>y</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>dy</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>dy</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -486,37 +450,27 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">double semi_implicit_euler </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>dx</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>dx</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x0</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>x0</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x_max</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>x_max</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>y</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>y</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>save_to_file</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>save_to_file</em><span class="paramdefsep"> = </span><span class="paramdefval">false</span></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -559,7 +513,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 128</span> fp &lt;&lt; y[0][L - 1] &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 129</span> }</div>
<div class="line"><span class="lineno"> 130</span> </div>
<div class="line"><span class="lineno"> 131</span> <a class="code hl_function" href="../../d6/d60/group__ode.html#ga827bf009831ddc477c5fa8891d5cb35f">semi_implicit_euler_step</a>(dx, x, y, &amp;dy); <span class="comment">// perform integration</span></div>
<div class="line"><span class="lineno"> 131</span> <a class="code hl_function" href="#ga827bf009831ddc477c5fa8891d5cb35f">semi_implicit_euler_step</a>(dx, x, y, &amp;dy); <span class="comment">// perform integration</span></div>
<div class="line"><span class="lineno"> 132</span> x += dx; <span class="comment">// update step</span></div>
<div class="line"><span class="lineno"> 133</span> } <span class="keywordflow">while</span> (x &lt;= x_max); <span class="comment">// till upper limit of independent variable</span></div>
<div class="line"><span class="lineno"> 134</span> <span class="comment">/* end of integration */</span></div>
@@ -570,7 +524,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 139</span> </div>
<div class="line"><span class="lineno"> 140</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(t2 - t1) / CLOCKS_PER_SEC;</div>
<div class="line"><span class="lineno"> 141</span>}</div>
<div class="ttc" id="agroup__ode_html_ga827bf009831ddc477c5fa8891d5cb35f"><div class="ttname"><a href="../../d6/d60/group__ode.html#ga827bf009831ddc477c5fa8891d5cb35f">semi_implicit_euler_step</a></div><div class="ttdeci">void semi_implicit_euler_step(const double dx, const double &amp;x, std::valarray&lt; double &gt; *y, std::valarray&lt; double &gt; *dy)</div><div class="ttdoc">Compute next step approximation using the semi-implicit-Euler method.</div><div class="ttdef"><b>Definition</b> ode_semi_implicit_euler.cpp:82</div></div>
<div class="ttc" id="agroup__ode_html_ga827bf009831ddc477c5fa8891d5cb35f"><div class="ttname"><a href="#ga827bf009831ddc477c5fa8891d5cb35f">semi_implicit_euler_step</a></div><div class="ttdeci">void semi_implicit_euler_step(const double dx, const double &amp;x, std::valarray&lt; double &gt; *y, std::valarray&lt; double &gt; *dy)</div><div class="ttdoc">Compute next step approximation using the semi-implicit-Euler method.</div><div class="ttdef"><b>Definition</b> ode_semi_implicit_euler.cpp:82</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -588,31 +542,22 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void semi_implicit_euler_step </td>
<td>(</td>
<td class="paramtype">const double&#160;</td>
<td class="paramname"><em>dx</em>, </td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>dx</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>x</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>y</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>y</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>dy</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>dy</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -652,7 +597,7 @@ Here is the call graph for this function:</div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: kadane Namespace Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d74/namespacekadane.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d74/namespacekadane.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -102,7 +104,7 @@ $(document).ready(function(){initNavTree('d6/d74/namespacekadane.html','../../')
<div class="contents">
<p>Functions for <a href="https://en.wikipedia.org/wiki/Kadane%27s_algorithm" target="_blank">Kadane</a> algorithm.
<a href="../../d6/d74/namespacekadane.html#details">More...</a></p>
<a href="#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for <a href="https://en.wikipedia.org/wiki/Kadane%27s_algorithm" target="_blank">Kadane</a> algorithm. </p>
</div></div><!-- contents -->
@@ -111,7 +113,7 @@ $(document).ready(function(){initNavTree('d6/d74/namespacekadane.html','../../')
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d74/namespacekadane.html">kadane</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: numerical_methods/golden_search_extrema.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d7a/golden__search__extrema_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d7a/golden__search__extrema_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -129,22 +131,22 @@ Macros</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:a1aa76a6d5fd4d333f9072beff1dc486b" id="r_a1aa76a6d5fd4d333f9072beff1dc486b"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d7a/golden__search__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a> (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;f, double lim_a, double lim_b)</td></tr>
<tr class="memitem:a1aa76a6d5fd4d333f9072beff1dc486b" id="r_a1aa76a6d5fd4d333f9072beff1dc486b"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a> (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;f, double lim_a, double lim_b)</td></tr>
<tr class="memdesc:a1aa76a6d5fd4d333f9072beff1dc486b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the minima of a function in the given interval. To get the maxima, simply negate the function. The golden ratio used here is: <br /></td></tr>
<tr class="separator:a1aa76a6d5fd4d333f9072beff1dc486b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1440a7779ac56f47a3f355ce4a8c7da0" id="r_a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d7a/golden__search__extrema_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a> ()</td></tr>
<tr class="memitem:a1440a7779ac56f47a3f355ce4a8c7da0" id="r_a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a> ()</td></tr>
<tr class="memdesc:a1440a7779ac56f47a3f355ce4a8c7da0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test function to find minima for the function \(f(x)= (x-2)^2\) in the interval \([1,5]\) <br />
Expected result = 2. <br /></td></tr>
<tr class="separator:a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0283886819c7c140a023582b7269e2d0" id="r_a0283886819c7c140a023582b7269e2d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d7a/golden__search__extrema_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a> ()</td></tr>
<tr class="memitem:a0283886819c7c140a023582b7269e2d0" id="r_a0283886819c7c140a023582b7269e2d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0283886819c7c140a023582b7269e2d0">test2</a> ()</td></tr>
<tr class="memdesc:a0283886819c7c140a023582b7269e2d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test function to find <em>maxima</em> for the function \(f(x)= x^{\frac{1}{x}}\) in the interval \([-2,10]\) <br />
Expected result: \(e\approx 2.71828182845904509\). <br /></td></tr>
<tr class="separator:a0283886819c7c140a023582b7269e2d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d0455dd5c30adda100e95f0423c786e" id="r_a6d0455dd5c30adda100e95f0423c786e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d7a/golden__search__extrema_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a> ()</td></tr>
<tr class="memitem:a6d0455dd5c30adda100e95f0423c786e" id="r_a6d0455dd5c30adda100e95f0423c786e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6d0455dd5c30adda100e95f0423c786e">test3</a> ()</td></tr>
<tr class="memdesc:a6d0455dd5c30adda100e95f0423c786e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test function to find <em>maxima</em> for the function \(f(x)= \cos x\) in the interval \([0,12]\) <br />
Expected result: \(\pi\approx 3.14159265358979312\). <br /></td></tr>
<tr class="separator:a6d0455dd5c30adda100e95f0423c786e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d7a/golden__search__extrema_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -161,25 +163,17 @@ Functions</h2></td></tr>
<tr>
<td class="memname">double get_minima </td>
<td>(</td>
<td class="paramtype">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;&#160;</td>
<td class="paramname"><em>f</em>, </td>
<td class="paramtype">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;</td> <td class="paramname"><span class="paramname"><em>f</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>lim_a</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>lim_a</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>lim_b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>lim_b</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -209,8 +203,8 @@ k=\frac{3-\sqrt{5}}{2} \approx 0.381966\ldots\]
<div class="line"><span class="lineno"> 38</span> <span class="comment">// ensure that lim_a &lt; lim_b</span></div>
<div class="line"><span class="lineno"> 39</span> <span class="keywordflow">if</span> (lim_a &gt; lim_b) {</div>
<div class="line"><span class="lineno"> 40</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>(lim_a, lim_b);</div>
<div class="line"><span class="lineno"> 41</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (std::abs(lim_a - lim_b) &lt;= <a class="code hl_define" href="../../d6/d7a/golden__search__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a>) {</div>
<div class="line"><span class="lineno"> 42</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; <span class="stringliteral">&quot;Search range must be greater than &quot;</span> &lt;&lt; <a class="code hl_define" href="../../d6/d7a/golden__search__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 41</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (std::abs(lim_a - lim_b) &lt;= <a class="code hl_define" href="#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a>) {</div>
<div class="line"><span class="lineno"> 42</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; <span class="stringliteral">&quot;Search range must be greater than &quot;</span> &lt;&lt; <a class="code hl_define" href="#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 43</span> <span class="keywordflow">return</span> lim_a;</div>
<div class="line"><span class="lineno"> 44</span> }</div>
<div class="line"><span class="lineno"> 45</span> </div>
@@ -234,14 +228,14 @@ k=\frac{3-\sqrt{5}}{2} \approx 0.381966\ldots\]
<div class="line"><span class="lineno"> 63</span> iters++;</div>
<div class="line"><span class="lineno"> 64</span> </div>
<div class="line"><span class="lineno"> 65</span> <span class="comment">// continue till the interval width is greater than sqrt(system epsilon)</span></div>
<div class="line"><span class="lineno"> 66</span> } <span class="keywordflow">while</span> (std::abs(lim_a - lim_b) &gt; <a class="code hl_define" href="../../d6/d7a/golden__search__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a>);</div>
<div class="line"><span class="lineno"> 66</span> } <span class="keywordflow">while</span> (std::abs(lim_a - lim_b) &gt; <a class="code hl_define" href="#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a>);</div>
<div class="line"><span class="lineno"> 67</span> </div>
<div class="line"><span class="lineno"> 68</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; (iters: &quot;</span> &lt;&lt; iters &lt;&lt; <span class="stringliteral">&quot;) &quot;</span>;</div>
<div class="line"><span class="lineno"> 69</span> <span class="keywordflow">return</span> prev_mean;</div>
<div class="line"><span class="lineno"> 70</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::cerr</a></div></div>
<div class="ttc" id="acomposite__simpson__rule_8cpp_html_a4251b4df4748a0b9c43a48f61bdd2397"><div class="ttname"><a href="../../d4/d18/composite__simpson__rule_8cpp.html#a4251b4df4748a0b9c43a48f61bdd2397">numerical_methods::simpson_method::f</a></div><div class="ttdeci">double f(double x)</div><div class="ttdoc">A function f(x) that will be used to test the method.</div><div class="ttdef"><b>Definition</b> composite_simpson_rule.cpp:113</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a002b2f4894492820fe708b1b7e7c5e70"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a></div><div class="ttdeci">#define EPSILON</div><div class="ttdoc">solution accuracy limit</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:17</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a002b2f4894492820fe708b1b7e7c5e70"><div class="ttname"><a href="#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a></div><div class="ttdeci">#define EPSILON</div><div class="ttdoc">solution accuracy limit</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:17</div></div>
<div class="ttc" id="ainfinity_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/numeric_limits/infinity.html">std::numeric_limits::infinity</a></div><div class="ttdeci">T infinity(T... args)</div></div>
<div class="ttc" id="asqrt_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a></div><div class="ttdeci">T sqrt(T... args)</div></div>
<div class="ttc" id="aswap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a></div><div class="ttdeci">T swap(T... args)</div></div>
@@ -262,8 +256,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -272,18 +265,18 @@ Here is the call graph for this function:</div>
<div class="fragment"><div class="line"><span class="lineno"> 139</span> {</div>
<div class="line"><span class="lineno"> 140</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>.precision(9);</div>
<div class="line"><span class="lineno"> 141</span> </div>
<div class="line"><span class="lineno"> 142</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;Computations performed with machine epsilon: &quot;</span> &lt;&lt; <a class="code hl_define" href="../../d6/d7a/golden__search__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a></div>
<div class="line"><span class="lineno"> 142</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;Computations performed with machine epsilon: &quot;</span> &lt;&lt; <a class="code hl_define" href="#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a></div>
<div class="line"><span class="lineno"> 143</span> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 144</span> </div>
<div class="line"><span class="lineno"> 145</span> <a class="code hl_function" href="../../d6/d7a/golden__search__extrema_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a>();</div>
<div class="line"><span class="lineno"> 146</span> <a class="code hl_function" href="../../d6/d7a/golden__search__extrema_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a>();</div>
<div class="line"><span class="lineno"> 147</span> <a class="code hl_function" href="../../d6/d7a/golden__search__extrema_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a>();</div>
<div class="line"><span class="lineno"> 145</span> <a class="code hl_function" href="#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a>();</div>
<div class="line"><span class="lineno"> 146</span> <a class="code hl_function" href="#a0283886819c7c140a023582b7269e2d0">test2</a>();</div>
<div class="line"><span class="lineno"> 147</span> <a class="code hl_function" href="#a6d0455dd5c30adda100e95f0423c786e">test3</a>();</div>
<div class="line"><span class="lineno"> 148</span> </div>
<div class="line"><span class="lineno"> 149</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 150</span>}</div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdoc">Test function to find maxima for the function in the interval Expected result: .</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:100</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdoc">Test function to find minima for the function in the interval Expected result = 2.</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:78</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a6d0455dd5c30adda100e95f0423c786e"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a></div><div class="ttdeci">void test3()</div><div class="ttdoc">Test function to find maxima for the function in the interval Expected result: .</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:123</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdoc">Test function to find maxima for the function in the interval Expected result: .</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:100</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdoc">Test function to find minima for the function in the interval Expected result = 2.</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:78</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a6d0455dd5c30adda100e95f0423c786e"><div class="ttname"><a href="#a6d0455dd5c30adda100e95f0423c786e">test3</a></div><div class="ttdeci">void test3()</div><div class="ttdoc">Test function to find maxima for the function in the interval Expected result: .</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:123</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -301,7 +294,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void test1 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -317,15 +310,15 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 83</span> </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;Test 1.... &quot;</span>;</div>
<div class="line"><span class="lineno"> 85</span> </div>
<div class="line"><span class="lineno"> 86</span> <span class="keywordtype">double</span> minima = <a class="code hl_function" href="../../d6/d7a/golden__search__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a>(f1, 1, 5);</div>
<div class="line"><span class="lineno"> 86</span> <span class="keywordtype">double</span> minima = <a class="code hl_function" href="#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a>(f1, 1, 5);</div>
<div class="line"><span class="lineno"> 87</span> </div>
<div class="line"><span class="lineno"> 88</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; minima &lt;&lt; <span class="stringliteral">&quot;...&quot;</span>;</div>
<div class="line"><span class="lineno"> 89</span> </div>
<div class="line"><span class="lineno"> 90</span> assert(std::abs(minima - 2) &lt; <a class="code hl_define" href="../../d6/d7a/golden__search__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a>);</div>
<div class="line"><span class="lineno"> 90</span> assert(std::abs(minima - 2) &lt; <a class="code hl_define" href="#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</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;passed\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 92</span>}</div>
<div class="ttc" id="afunction_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a></div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a1aa76a6d5fd4d333f9072beff1dc486b"><div class="ttname"><a href="../../d6/d7a/golden__search__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a></div><div class="ttdeci">double get_minima(const std::function&lt; double(double)&gt; &amp;f, double lim_a, double lim_b)</div><div class="ttdoc">Get the minima of a function in the given interval. To get the maxima, simply negate the function....</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:29</div></div>
<div class="ttc" id="agolden__search__extrema_8cpp_html_a1aa76a6d5fd4d333f9072beff1dc486b"><div class="ttname"><a href="#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a></div><div class="ttdeci">double get_minima(const std::function&lt; double(double)&gt; &amp;f, double lim_a, double lim_b)</div><div class="ttdoc">Get the minima of a function in the given interval. To get the maxima, simply negate the function....</div><div class="ttdef"><b>Definition</b> golden_search_extrema.cpp:29</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -343,7 +336,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void test2 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -360,11 +353,11 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 106</span> </div>
<div class="line"><span class="lineno"> 107</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.... &quot;</span>;</div>
<div class="line"><span class="lineno"> 108</span> </div>
<div class="line"><span class="lineno"> 109</span> <span class="keywordtype">double</span> minima = <a class="code hl_function" href="../../d6/d7a/golden__search__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a>(func, -2, 10);</div>
<div class="line"><span class="lineno"> 109</span> <span class="keywordtype">double</span> minima = <a class="code hl_function" href="#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a>(func, -2, 10);</div>
<div class="line"><span class="lineno"> 110</span> </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; minima &lt;&lt; <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; M_E &lt;&lt; <span class="stringliteral">&quot;)...&quot;</span>;</div>
<div class="line"><span class="lineno"> 112</span> </div>
<div class="line"><span class="lineno"> 113</span> assert(std::abs(minima - M_E) &lt; <a class="code hl_define" href="../../d6/d7a/golden__search__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a>);</div>
<div class="line"><span class="lineno"> 113</span> assert(std::abs(minima - M_E) &lt; <a class="code hl_define" href="#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</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;passed\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 115</span>}</div>
<div class="ttc" id="apow_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a></div><div class="ttdeci">T pow(T... args)</div></div>
@@ -385,7 +378,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void test3 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -400,11 +393,11 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 127</span> </div>
<div class="line"><span class="lineno"> 128</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.... &quot;</span>;</div>
<div class="line"><span class="lineno"> 129</span> </div>
<div class="line"><span class="lineno"> 130</span> <span class="keywordtype">double</span> minima = <a class="code hl_function" href="../../d6/d7a/golden__search__extrema_8cpp.html#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a>(func, -4, 12);</div>
<div class="line"><span class="lineno"> 130</span> <span class="keywordtype">double</span> minima = <a class="code hl_function" href="#a1aa76a6d5fd4d333f9072beff1dc486b">get_minima</a>(func, -4, 12);</div>
<div class="line"><span class="lineno"> 131</span> </div>
<div class="line"><span class="lineno"> 132</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; minima &lt;&lt; <span class="stringliteral">&quot; (&quot;</span> &lt;&lt; M_PI &lt;&lt; <span class="stringliteral">&quot;)...&quot;</span>;</div>
<div class="line"><span class="lineno"> 133</span> </div>
<div class="line"><span class="lineno"> 134</span> assert(std::abs(minima - M_PI) &lt; <a class="code hl_define" href="../../d6/d7a/golden__search__extrema_8cpp.html#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a>);</div>
<div class="line"><span class="lineno"> 134</span> assert(std::abs(minima - M_PI) &lt; <a class="code hl_define" href="#a002b2f4894492820fe708b1b7e7c5e70">EPSILON</a>);</div>
<div class="line"><span class="lineno"> 135</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;passed\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 136</span>}</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>
@@ -422,7 +415,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_9c6faab82c22511b50177aa2e38e2780.html">numerical_methods</a></li><li class="navelem"><a class="el" href="../../d6/d7a/golden__search__extrema_8cpp.html">golden_search_extrema.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: hashing/double_hash_hash_table.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d80/double__hash__hash__table_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d80/double__hash__hash__table_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -131,9 +133,9 @@ Namespaces</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:aa5f416c3d658d09e41cab50c8fb7b756" id="r_aa5f416c3d658d09e41cab50c8fb7b756"><td class="memItemLeft" align="right" valign="top"><a id="aa5f416c3d658d09e41cab50c8fb7b756" name="aa5f416c3d658d09e41cab50c8fb7b756"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::Entry</b> = <a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html">Entry</a></td></tr>
<tr class="separator:aa5f416c3d658d09e41cab50c8fb7b756"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92054ec26cd6907c163fb00a596bebdd" id="r_a92054ec26cd6907c163fb00a596bebdd"><td class="memItemLeft" align="right" valign="top"><a id="a92054ec26cd6907c163fb00a596bebdd" name="a92054ec26cd6907c163fb00a596bebdd"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::Entry</b> = struct Entry</td></tr>
<tr class="separator:a92054ec26cd6907c163fb00a596bebdd"><td class="memSeparator" colspan="2">&#160;</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>
@@ -162,7 +164,7 @@ Functions</h2></td></tr>
<tr class="separator:a9c652b2e467e5d250dfe3bed83b12560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d06e4598569526294f10104875f6824" id="r_a5d06e4598569526294f10104875f6824"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a5d06e4598569526294f10104875f6824">double_hashing::removalInfo</a> (int key)</td></tr>
<tr class="separator:a5d06e4598569526294f10104875f6824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d80/double__hash__hash__table_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
@@ -202,8 +204,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::rehas
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -289,7 +290,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_ece9b94c107bbaa1dd68197a8c9983b9.html">hashing</a></li><li class="navelem"><a class="el" href="../../d6/d80/double__hash__hash__table_8cpp.html">double_hash_hash_table.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: dynamic_programming/subset_sum.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d80/dynamic__programming_2subset__sum_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d80/dynamic__programming_2subset__sum_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -127,14 +129,14 @@ 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:a280fcfb2f6fe49a31c4da572e7032607" id="r_a280fcfb2f6fe49a31c4da572e7032607"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#a280fcfb2f6fe49a31c4da572e7032607">dynamic_programming::subset_sum::subset_sum_recursion</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;arr, int targetSum, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map</a>&lt; int, bool &gt; &gt; *dp, int index=0)</td></tr>
<tr class="memitem:a280fcfb2f6fe49a31c4da572e7032607" id="r_a280fcfb2f6fe49a31c4da572e7032607"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a280fcfb2f6fe49a31c4da572e7032607">dynamic_programming::subset_sum::subset_sum_recursion</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;arr, int targetSum, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map</a>&lt; int, bool &gt; &gt; *dp, int index=0)</td></tr>
<tr class="separator:a280fcfb2f6fe49a31c4da572e7032607"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac94e6c0dee11278ac0a5491f1b9a4a50" id="r_ac94e6c0dee11278ac0a5491f1b9a4a50"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#ac94e6c0dee11278ac0a5491f1b9a4a50">dynamic_programming::subset_sum::subset_sum_problem</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;arr, const int targetSum)</td></tr>
<tr class="memitem:ac94e6c0dee11278ac0a5491f1b9a4a50" id="r_ac94e6c0dee11278ac0a5491f1b9a4a50"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac94e6c0dee11278ac0a5491f1b9a4a50">dynamic_programming::subset_sum::subset_sum_problem</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;arr, const int targetSum)</td></tr>
<tr class="separator:ac94e6c0dee11278ac0a5491f1b9a4a50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test Function. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -151,8 +153,7 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -182,19 +183,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">bool dynamic_programming::subset_sum::subset_sum_problem </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>arr</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>arr</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int&#160;</td>
<td class="paramname"><em>targetSum</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const int</td> <td class="paramname"><span class="paramname"><em>targetSum</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -209,9 +203,9 @@ Here is the call graph for this function:</div>
<div class="fragment"><div class="line"><span class="lineno"> 70</span> {</div>
<div class="line"><span class="lineno"> 71</span> <span class="keywordtype">size_t</span> n = arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><span class="lineno"> 72</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::unordered_map&lt;int, bool&gt;</a>&gt; <a class="code hl_namespace" href="../../df/d88/namespacedp.html">dp</a>(n);</div>
<div class="line"><span class="lineno"> 73</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#a280fcfb2f6fe49a31c4da572e7032607">subset_sum_recursion</a>(arr, targetSum, &amp;<a class="code hl_namespace" href="../../df/d88/namespacedp.html">dp</a>);</div>
<div class="line"><span class="lineno"> 73</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#a280fcfb2f6fe49a31c4da572e7032607">subset_sum_recursion</a>(arr, targetSum, &amp;<a class="code hl_namespace" href="../../df/d88/namespacedp.html">dp</a>);</div>
<div class="line"><span class="lineno"> 74</span>}</div>
<div class="ttc" id="adynamic__programming_2subset__sum_8cpp_html_a280fcfb2f6fe49a31c4da572e7032607"><div class="ttname"><a href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#a280fcfb2f6fe49a31c4da572e7032607">dynamic_programming::subset_sum::subset_sum_recursion</a></div><div class="ttdeci">bool subset_sum_recursion(const std::vector&lt; int &gt; &amp;arr, int targetSum, std::vector&lt; std::unordered_map&lt; int, bool &gt; &gt; *dp, int index=0)</div><div class="ttdef"><b>Definition</b> subset_sum.cpp:43</div></div>
<div class="ttc" id="adynamic__programming_2subset__sum_8cpp_html_a280fcfb2f6fe49a31c4da572e7032607"><div class="ttname"><a href="#a280fcfb2f6fe49a31c4da572e7032607">dynamic_programming::subset_sum::subset_sum_recursion</a></div><div class="ttdeci">bool subset_sum_recursion(const std::vector&lt; int &gt; &amp;arr, int targetSum, std::vector&lt; std::unordered_map&lt; int, bool &gt; &gt; *dp, int index=0)</div><div class="ttdef"><b>Definition</b> subset_sum.cpp:43</div></div>
<div class="ttc" id="anamespacedp_html"><div class="ttname"><a href="../../df/d88/namespacedp.html">dp</a></div><div class="ttdoc">for std::vector</div><div class="ttdef"><b>Definition</b> partition_problem.cpp:39</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
@@ -232,31 +226,22 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">bool dynamic_programming::subset_sum::subset_sum_recursion </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>arr</em>, </td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>arr</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>targetSum</em>, </td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>targetSum</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map</a>&lt; int, bool &gt; &gt; *&#160;</td>
<td class="paramname"><em>dp</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map</a>&lt; int, bool &gt; &gt; *</td> <td class="paramname"><span class="paramname"><em>dp</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>index</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>index</em><span class="paramdefsep"> = </span><span class="paramdefval">0</span></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -282,8 +267,8 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 55</span> }</div>
<div class="line"><span class="lineno"> 56</span> </div>
<div class="line"><span class="lineno"> 57</span> <span class="keywordtype">bool</span> ans =</div>
<div class="line"><span class="lineno"> 58</span> <a class="code hl_function" href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#a280fcfb2f6fe49a31c4da572e7032607">subset_sum_recursion</a>(arr, targetSum - arr[index], <a class="code hl_namespace" href="../../df/d88/namespacedp.html">dp</a>, index + 1) ||</div>
<div class="line"><span class="lineno"> 59</span> <a class="code hl_function" href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#a280fcfb2f6fe49a31c4da572e7032607">subset_sum_recursion</a>(arr, targetSum, <a class="code hl_namespace" href="../../df/d88/namespacedp.html">dp</a>, index + 1);</div>
<div class="line"><span class="lineno"> 58</span> <a class="code hl_function" href="#a280fcfb2f6fe49a31c4da572e7032607">subset_sum_recursion</a>(arr, targetSum - arr[index], <a class="code hl_namespace" href="../../df/d88/namespacedp.html">dp</a>, index + 1) ||</div>
<div class="line"><span class="lineno"> 59</span> <a class="code hl_function" href="#a280fcfb2f6fe49a31c4da572e7032607">subset_sum_recursion</a>(arr, targetSum, <a class="code hl_namespace" href="../../df/d88/namespacedp.html">dp</a>, index + 1);</div>
<div class="line"><span class="lineno"> 60</span> (*dp)[index][targetSum] = ans; <span class="comment">// Save ans in dp map.</span></div>
<div class="line"><span class="lineno"> 61</span> <span class="keywordflow">return</span> ans;</div>
<div class="line"><span class="lineno"> 62</span>}</div>
@@ -307,7 +292,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -337,7 +322,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 96</span> </div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div>
<div class="line"><span class="lineno"> 98</span> calculated_output[i] =</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_function" href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#ac94e6c0dee11278ac0a5491f1b9a4a50">dynamic_programming::subset_sum::subset_sum_problem</a>(</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_function" href="#ac94e6c0dee11278ac0a5491f1b9a4a50">dynamic_programming::subset_sum::subset_sum_problem</a>(</div>
<div class="line"><span class="lineno"> 100</span> custom_input_arr[i], custom_input_target_sum[i]);</div>
<div class="line"><span class="lineno"> 101</span> }</div>
<div class="line"><span class="lineno"> 102</span> </div>
@@ -354,7 +339,7 @@ Here is the call graph for this function:</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;All tests passed successfully!\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 114</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="adynamic__programming_2subset__sum_8cpp_html_ac94e6c0dee11278ac0a5491f1b9a4a50"><div class="ttname"><a href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html#ac94e6c0dee11278ac0a5491f1b9a4a50">dynamic_programming::subset_sum::subset_sum_problem</a></div><div class="ttdeci">bool subset_sum_problem(const std::vector&lt; int &gt; &amp;arr, const int targetSum)</div><div class="ttdef"><b>Definition</b> subset_sum.cpp:70</div></div>
<div class="ttc" id="adynamic__programming_2subset__sum_8cpp_html_ac94e6c0dee11278ac0a5491f1b9a4a50"><div class="ttname"><a href="#ac94e6c0dee11278ac0a5491f1b9a4a50">dynamic_programming::subset_sum::subset_sum_problem</a></div><div class="ttdeci">bool subset_sum_problem(const std::vector&lt; int &gt; &amp;arr, const int targetSum)</div><div class="ttdef"><b>Definition</b> subset_sum.cpp:70</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -364,7 +349,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_8a20dd5bfd5341a725342bf72b6b686f.html">dynamic_programming</a></li><li class="navelem"><a class="el" href="../../d6/d80/dynamic__programming_2subset__sum_8cpp.html">subset_sum.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: hashing::sha256::Hash Class Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d84/classhashing_1_1sha256_1_1_hash.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d84/classhashing_1_1sha256_1_1_hash.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -106,7 +108,7 @@ $(document).ready(function(){initNavTree('d6/d84/classhashing_1_1sha256_1_1_hash
<div class="contents">
<p>Contains hash array and functions to update it and convert it to a hexadecimal string.
<a href="../../d6/d84/classhashing_1_1sha256_1_1_hash.html#details">More...</a></p>
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for hashing::sha256::Hash:</div>
<div class="dyncontent">
@@ -115,16 +117,16 @@ Collaboration diagram for hashing::sha256::Hash:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0896c27ac39c780e0ee62417fdd0b9d3" id="r_a0896c27ac39c780e0ee62417fdd0b9d3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d84/classhashing_1_1sha256_1_1_hash.html#a0896c27ac39c780e0ee62417fdd0b9d3">update</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, 64 &gt; &amp;blocks)</td></tr>
<tr class="memitem:a0896c27ac39c780e0ee62417fdd0b9d3" id="r_a0896c27ac39c780e0ee62417fdd0b9d3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0896c27ac39c780e0ee62417fdd0b9d3">update</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, 64 &gt; &amp;blocks)</td></tr>
<tr class="memdesc:a0896c27ac39c780e0ee62417fdd0b9d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the hash array. <br /></td></tr>
<tr class="separator:a0896c27ac39c780e0ee62417fdd0b9d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4581f503a263d8e928e5716d54477e08" id="r_a4581f503a263d8e928e5716d54477e08"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d84/classhashing_1_1sha256_1_1_hash.html#a4581f503a263d8e928e5716d54477e08">to_string</a> () const</td></tr>
<tr class="memitem:a4581f503a263d8e928e5716d54477e08" id="r_a4581f503a263d8e928e5716d54477e08"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4581f503a263d8e928e5716d54477e08">to_string</a> () const</td></tr>
<tr class="memdesc:a4581f503a263d8e928e5716d54477e08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the hash to a hexadecimal string. <br /></td></tr>
<tr class="separator:a4581f503a263d8e928e5716d54477e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:ae6bacea3aec06351f4dfa5fa7b9fb13d" id="r_ae6bacea3aec06351f4dfa5fa7b9fb13d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, 8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d84/classhashing_1_1sha256_1_1_hash.html#ae6bacea3aec06351f4dfa5fa7b9fb13d">hash</a></td></tr>
<tr class="memitem:ae6bacea3aec06351f4dfa5fa7b9fb13d" id="r_ae6bacea3aec06351f4dfa5fa7b9fb13d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, 8 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae6bacea3aec06351f4dfa5fa7b9fb13d">hash</a></td></tr>
<tr class="separator:ae6bacea3aec06351f4dfa5fa7b9fb13d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -139,7 +141,7 @@ Private Attributes</h2></td></tr>
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> hashing::sha256::Hash::to_string </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td> const</td>
</tr>
</table>
@@ -176,8 +178,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void hashing::sha256::Hash::update </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, 64 &gt; &amp;&#160;</td>
<td class="paramname"><em>blocks</em></td><td>)</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, 64 &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>blocks</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -300,7 +301,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d0c/namespacehashing.html">hashing</a></li><li class="navelem"><b>sha256</b></li><li class="navelem"><a class="el" href="../../d6/d84/classhashing_1_1sha256_1_1_hash.html">Hash</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: morse Namespace Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d8d/namespacemorse.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d8d/namespacemorse.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -102,7 +104,7 @@ $(document).ready(function(){initNavTree('d6/d8d/namespacemorse.html','../../');
<div class="contents">
<p>Functions for [Morse Code] (<a href="https://en.wikipedia.org/wiki/Morse_code">https://en.wikipedia.org/wiki/Morse_code</a>).
<a href="../../d6/d8d/namespacemorse.html#details">More...</a></p>
<a href="#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for [Morse Code] (<a href="https://en.wikipedia.org/wiki/Morse_code">https://en.wikipedia.org/wiki/Morse_code</a>). </p>
</div></div><!-- contents -->
@@ -111,7 +113,7 @@ $(document).ready(function(){initNavTree('d6/d8d/namespacemorse.html','../../');
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d8d/namespacemorse.html">morse</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math/large_factorial.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/d9d/large__factorial_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/d9d/large__factorial_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -117,11 +119,11 @@ Include dependency graph for large_factorial.cpp:</div>
</div><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:a3f93b60e229b6683e24c4754a7106ee8" id="r_a3f93b60e229b6683e24c4754a7106ee8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d9d/large__factorial_8cpp.html#a3f93b60e229b6683e24c4754a7106ee8">test1</a> ()</td></tr>
<tr class="memitem:a3f93b60e229b6683e24c4754a7106ee8" id="r_a3f93b60e229b6683e24c4754a7106ee8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3f93b60e229b6683e24c4754a7106ee8">test1</a> ()</td></tr>
<tr class="separator:a3f93b60e229b6683e24c4754a7106ee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76aae4778fbe89a3d59fd61fbc050cfa" id="r_a76aae4778fbe89a3d59fd61fbc050cfa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d9d/large__factorial_8cpp.html#a76aae4778fbe89a3d59fd61fbc050cfa">test2</a> ()</td></tr>
<tr class="memitem:a76aae4778fbe89a3d59fd61fbc050cfa" id="r_a76aae4778fbe89a3d59fd61fbc050cfa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a76aae4778fbe89a3d59fd61fbc050cfa">test2</a> ()</td></tr>
<tr class="separator:a76aae4778fbe89a3d59fd61fbc050cfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97" id="r_a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d9d/large__factorial_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97" id="r_a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr class="separator:a0ddf1224851353fc92bfbff6f499fa97"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -138,19 +140,12 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>argc</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>argv</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">char *</td> <td class="paramname"><span class="paramname"><em>argv</em>[]</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -179,8 +174,8 @@ Functions</h2></td></tr>
<div class="line"><span class="lineno"> 110</span> &lt;&lt; <span class="stringliteral">&quot;Time taken: &quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/fixed.html">std::scientific</a> &lt;&lt; time_taken &lt;&lt; <span class="stringliteral">&quot; s&quot;</span></div>
<div class="line"><span class="lineno"> 111</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> </div>
<div class="line"><span class="lineno"> 113</span> <a class="code hl_function" href="../../d6/d9d/large__factorial_8cpp.html#a3f93b60e229b6683e24c4754a7106ee8">test1</a>();</div>
<div class="line"><span class="lineno"> 114</span> <a class="code hl_function" href="../../d6/d9d/large__factorial_8cpp.html#a76aae4778fbe89a3d59fd61fbc050cfa">test2</a>();</div>
<div class="line"><span class="lineno"> 113</span> <a class="code hl_function" href="#a3f93b60e229b6683e24c4754a7106ee8">test1</a>();</div>
<div class="line"><span class="lineno"> 114</span> <a class="code hl_function" href="#a76aae4778fbe89a3d59fd61fbc050cfa">test2</a>();</div>
<div class="line"><span class="lineno"> 115</span> <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>.test();</div>
<div class="line"><span class="lineno"> 116</span> </div>
<div class="line"><span class="lineno"> 117</span> <span class="keywordflow">return</span> 0;</div>
@@ -194,8 +189,8 @@ Functions</h2></td></tr>
<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="afibonacci__sum_8cpp_html_aadb40ac4c74a7efc0680b83eeee138aa"><div class="ttname"><a href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">math::fibonacci_sum::result</a></div><div class="ttdeci">uint64_t result(uint64_t n)</div><div class="ttdef"><b>Definition</b> fibonacci_sum.cpp:76</div></div>
<div class="ttc" id="afixed_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/fixed.html">std::scientific</a></div><div class="ttdeci">T scientific(T... args)</div></div>
<div class="ttc" id="alarge__factorial_8cpp_html_a3f93b60e229b6683e24c4754a7106ee8"><div class="ttname"><a href="../../d6/d9d/large__factorial_8cpp.html#a3f93b60e229b6683e24c4754a7106ee8">test1</a></div><div class="ttdeci">bool test1()</div><div class="ttdef"><b>Definition</b> large_factorial.cpp:17</div></div>
<div class="ttc" id="alarge__factorial_8cpp_html_a76aae4778fbe89a3d59fd61fbc050cfa"><div class="ttname"><a href="../../d6/d9d/large__factorial_8cpp.html#a76aae4778fbe89a3d59fd61fbc050cfa">test2</a></div><div class="ttdeci">bool test2()</div><div class="ttdef"><b>Definition</b> large_factorial.cpp:54</div></div>
<div class="ttc" id="alarge__factorial_8cpp_html_a3f93b60e229b6683e24c4754a7106ee8"><div class="ttname"><a href="#a3f93b60e229b6683e24c4754a7106ee8">test1</a></div><div class="ttdeci">bool test1()</div><div class="ttdef"><b>Definition</b> large_factorial.cpp:17</div></div>
<div class="ttc" id="alarge__factorial_8cpp_html_a76aae4778fbe89a3d59fd61fbc050cfa"><div class="ttname"><a href="#a76aae4778fbe89a3d59fd61fbc050cfa">test2</a></div><div class="ttdeci">bool test2()</div><div class="ttdef"><b>Definition</b> large_factorial.cpp:54</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -213,7 +208,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">bool test1 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -266,7 +261,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">bool test2 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -320,7 +315,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_296d53ceaeaa7e099814a6def439fe8a.html">math</a></li><li class="navelem"><a class="el" href="../../d6/d9d/large__factorial_8cpp.html">large_factorial.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: vigenere Namespace Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/da2/namespacevigenere.html','../../'); initResizable(); });
$(function(){initNavTree('d6/da2/namespacevigenere.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -102,7 +104,7 @@ $(document).ready(function(){initNavTree('d6/da2/namespacevigenere.html','../../
<div class="contents">
<p>Functions for <a href="https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher" target="_blank">vigenère cipher</a> algorithm.
<a href="../../d6/da2/namespacevigenere.html#details">More...</a></p>
<a href="#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for <a href="https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher" target="_blank">vigenère cipher</a> algorithm. </p>
</div></div><!-- contents -->
@@ -111,7 +113,7 @@ $(document).ready(function(){initNavTree('d6/da2/namespacevigenere.html','../../
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/da2/namespacevigenere.html">vigenere</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: tree_234 Namespace Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/dab/namespacetree__234.html','../../'); initResizable(); });
$(function(){initNavTree('d6/dab/namespacetree__234.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -102,7 +104,7 @@ $(document).ready(function(){initNavTree('d6/dab/namespacetree__234.html','../..
<div class="contents">
<p>Functions for <a href="https://en.wikipedia.org/wiki/2%E2%80%933%E2%80%934_tree" target="_blank">234 tree</a>
<a href="../../d6/dab/namespacetree__234.html#details">More...</a></p>
<a href="#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for <a href="https://en.wikipedia.org/wiki/2%E2%80%933%E2%80%934_tree" target="_blank">234 tree</a> </p>
</div></div><!-- contents -->
@@ -111,7 +113,7 @@ $(document).ready(function(){initNavTree('d6/dab/namespacetree__234.html','../..
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/dab/namespacetree__234.html">tree_234</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: others::lru_cache::LRUCache Class Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html','../../'); initResizable(); });
$(function(){initNavTree('d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -106,7 +108,7 @@ $(document).ready(function(){initNavTree('d6/dae/classothers_1_1lru__cache_1_1_l
<div class="contents">
<p>LRU cache class.
<a href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#details">More...</a></p>
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for others::lru_cache::LRUCache:</div>
<div class="dyncontent">
@@ -115,19 +117,19 @@ Collaboration diagram for others::lru_cache::LRUCache:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a41c9b6f1693b8a316cc4a2d8c9149ba4" id="r_a41c9b6f1693b8a316cc4a2d8c9149ba4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a41c9b6f1693b8a316cc4a2d8c9149ba4">LRUCache</a> (uint64_t pf)</td></tr>
<tr class="memitem:a41c9b6f1693b8a316cc4a2d8c9149ba4" id="r_a41c9b6f1693b8a316cc4a2d8c9149ba4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a41c9b6f1693b8a316cc4a2d8c9149ba4">LRUCache</a> (uint64_t pf)</td></tr>
<tr class="memdesc:a41c9b6f1693b8a316cc4a2d8c9149ba4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, Initialize thee LRU class with page frame. <br /></td></tr>
<tr class="separator:a41c9b6f1693b8a316cc4a2d8c9149ba4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dbf04bf7e1472c48639694f0b110602" id="r_a7dbf04bf7e1472c48639694f0b110602"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a7dbf04bf7e1472c48639694f0b110602">refer</a> (uint64_t page)</td></tr>
<tr class="memitem:a7dbf04bf7e1472c48639694f0b110602" id="r_a7dbf04bf7e1472c48639694f0b110602"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7dbf04bf7e1472c48639694f0b110602">refer</a> (uint64_t page)</td></tr>
<tr class="memdesc:a7dbf04bf7e1472c48639694f0b110602"><td class="mdescLeft">&#160;</td><td class="mdescRight">Refer to a page, or request a page from memory. <br /></td></tr>
<tr class="separator:a7dbf04bf7e1472c48639694f0b110602"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad506b1c1a3cd5b93cc7e497626bfb53" id="r_aad506b1c1a3cd5b93cc7e497626bfb53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aad506b1c1a3cd5b93cc7e497626bfb53">display</a> ()</td></tr>
<tr class="memitem:aad506b1c1a3cd5b93cc7e497626bfb53" id="r_aad506b1c1a3cd5b93cc7e497626bfb53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aad506b1c1a3cd5b93cc7e497626bfb53">display</a> ()</td></tr>
<tr class="memdesc:aad506b1c1a3cd5b93cc7e497626bfb53"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function to display the current cache. <br /></td></tr>
<tr class="separator:aad506b1c1a3cd5b93cc7e497626bfb53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa24a141455b9fbcbec22392c28d04933" id="r_aa24a141455b9fbcbec22392c28d04933"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aa24a141455b9fbcbec22392c28d04933">getHits</a> () const</td></tr>
<tr class="memitem:aa24a141455b9fbcbec22392c28d04933" id="r_aa24a141455b9fbcbec22392c28d04933"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa24a141455b9fbcbec22392c28d04933">getHits</a> () const</td></tr>
<tr class="memdesc:aa24a141455b9fbcbec22392c28d04933"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function to get page hits. <br /></td></tr>
<tr class="separator:aa24a141455b9fbcbec22392c28d04933"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78be932dac71c90f485a67d4fda877e2" id="r_a78be932dac71c90f485a67d4fda877e2"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a78be932dac71c90f485a67d4fda877e2">getPageFault</a> () const</td></tr>
<tr class="memitem:a78be932dac71c90f485a67d4fda877e2" id="r_a78be932dac71c90f485a67d4fda877e2"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a78be932dac71c90f485a67d4fda877e2">getPageFault</a> () const</td></tr>
<tr class="memdesc:a78be932dac71c90f485a67d4fda877e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function to get page fault. <br /></td></tr>
<tr class="separator:a78be932dac71c90f485a67d4fda877e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -145,10 +147,10 @@ uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>pageFrame</b></td
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map</a>&lt; uint64_t, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list.html">std::list</a>&lt; uint64_t &gt;::iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>pageMap</b></td></tr>
<tr class="memdesc:aa4d6db56109af196ffc7e5f72bc9907c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hash map containing pages and their addresses. <br /></td></tr>
<tr class="separator:aa4d6db56109af196ffc7e5f72bc9907c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f33913e7ddfbb38062362e7bd859154" id="r_a5f33913e7ddfbb38062362e7bd859154"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a5f33913e7ddfbb38062362e7bd859154">hits</a></td></tr>
<tr class="memitem:a5f33913e7ddfbb38062362e7bd859154" id="r_a5f33913e7ddfbb38062362e7bd859154"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5f33913e7ddfbb38062362e7bd859154">hits</a></td></tr>
<tr class="memdesc:a5f33913e7ddfbb38062362e7bd859154"><td class="mdescLeft">&#160;</td><td class="mdescRight">was found in cache. <br /></td></tr>
<tr class="separator:a5f33913e7ddfbb38062362e7bd859154"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09cbe562b0c396329607f5d388d57c9c" id="r_a09cbe562b0c396329607f5d388d57c9c"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a09cbe562b0c396329607f5d388d57c9c">pageFault</a> = 0</td></tr>
<tr class="memitem:a09cbe562b0c396329607f5d388d57c9c" id="r_a09cbe562b0c396329607f5d388d57c9c"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a09cbe562b0c396329607f5d388d57c9c">pageFault</a> = 0</td></tr>
<tr class="separator:a09cbe562b0c396329607f5d388d57c9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -166,8 +168,7 @@ uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>pageFrame</b></td
<tr>
<td class="memname">others::lru_cache::LRUCache::LRUCache </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>pf</em></td><td>)</td>
<td class="paramtype">uint64_t</td> <td class="paramname"><span class="paramname"><em>pf</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -185,8 +186,8 @@ uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>pageFrame</b></td
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 84</span>{ <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a1aafd0444b410e0fcb66287e9954c893">pageFrame</a> = pf; }</div>
<div class="ttc" id="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_a1aafd0444b410e0fcb66287e9954c893"><div class="ttname"><a href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a1aafd0444b410e0fcb66287e9954c893">others::lru_cache::LRUCache::pageFrame</a></div><div class="ttdeci">uint64_t pageFrame</div><div class="ttdoc">Page frame, or total size of the cache.</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:68</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 84</span>{ <a class="code hl_variable" href="#a1aafd0444b410e0fcb66287e9954c893">pageFrame</a> = pf; }</div>
<div class="ttc" id="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_a1aafd0444b410e0fcb66287e9954c893"><div class="ttname"><a href="#a1aafd0444b410e0fcb66287e9954c893">others::lru_cache::LRUCache::pageFrame</a></div><div class="ttdeci">uint64_t pageFrame</div><div class="ttdoc">Page frame, or total size of the cache.</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:68</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -203,7 +204,7 @@ uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>pageFrame</b></td
<tr>
<td class="memname">void others::lru_cache::LRUCache::display </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -217,13 +218,13 @@ uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>pageFrame</b></td
<p>A function to display the current cache. </p>
<dl class="section return"><dt>Returns</dt><dd>Void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 120</span> {</div>
<div class="line"><span class="lineno"> 121</span> <span class="keywordflow">for</span> (uint64_t &amp;it : <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>) {</div>
<div class="line"><span class="lineno"> 121</span> <span class="keywordflow">for</span> (uint64_t &amp;it : <a class="code hl_variable" href="#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</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; it &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><span class="lineno"> 123</span> }</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; <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"> 125</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="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_a3ee3560a6b90e6f50f6e063d690ba8e8"><div class="ttname"><a href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a3ee3560a6b90e6f50f6e063d690ba8e8">others::lru_cache::LRUCache::cache</a></div><div class="ttdeci">std::list&lt; uint64_t &gt; cache</div><div class="ttdoc">Cache linked list (using the STL)</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:69</div></div>
<div class="ttc" id="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_a3ee3560a6b90e6f50f6e063d690ba8e8"><div class="ttname"><a href="#a3ee3560a6b90e6f50f6e063d690ba8e8">others::lru_cache::LRUCache::cache</a></div><div class="ttdeci">std::list&lt; uint64_t &gt; cache</div><div class="ttdoc">Cache linked list (using the STL)</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:69</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><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -245,7 +246,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">uint64_t others::lru_cache::LRUCache::getHits </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td> const</td>
</tr>
</table>
@@ -258,8 +259,8 @@ Here is the call graph for this function:</div>
<p>A function to get page hits. </p>
<dl class="section return"><dt>Returns</dt><dd>int </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 130</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a5f33913e7ddfbb38062362e7bd859154">hits</a>; }</div>
<div class="ttc" id="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_a5f33913e7ddfbb38062362e7bd859154"><div class="ttname"><a href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a5f33913e7ddfbb38062362e7bd859154">others::lru_cache::LRUCache::hits</a></div><div class="ttdeci">uint64_t hits</div><div class="ttdoc">was found in cache.</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:73</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 130</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="#a5f33913e7ddfbb38062362e7bd859154">hits</a>; }</div>
<div class="ttc" id="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_a5f33913e7ddfbb38062362e7bd859154"><div class="ttname"><a href="#a5f33913e7ddfbb38062362e7bd859154">others::lru_cache::LRUCache::hits</a></div><div class="ttdeci">uint64_t hits</div><div class="ttdoc">was found in cache.</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:73</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -275,7 +276,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">uint64_t others::lru_cache::LRUCache::getPageFault </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td> const</td>
</tr>
</table>
@@ -288,8 +289,8 @@ Here is the call graph for this function:</div>
<p>A function to get page fault. </p>
<dl class="section return"><dt>Returns</dt><dd>int </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 135</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a09cbe562b0c396329607f5d388d57c9c">pageFault</a>; }</div>
<div class="ttc" id="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_a09cbe562b0c396329607f5d388d57c9c"><div class="ttname"><a href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a09cbe562b0c396329607f5d388d57c9c">others::lru_cache::LRUCache::pageFault</a></div><div class="ttdeci">uint64_t pageFault</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:76</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 135</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="#a09cbe562b0c396329607f5d388d57c9c">pageFault</a>; }</div>
<div class="ttc" id="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_a09cbe562b0c396329607f5d388d57c9c"><div class="ttname"><a href="#a09cbe562b0c396329607f5d388d57c9c">others::lru_cache::LRUCache::pageFault</a></div><div class="ttdeci">uint64_t pageFault</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:76</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -305,8 +306,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void others::lru_cache::LRUCache::refer </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>page</em></td><td>)</td>
<td class="paramtype">uint64_t</td> <td class="paramname"><span class="paramname"><em>page</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -328,31 +328,31 @@ Here is the call graph for this function:</div>
<p>&lt; Increase the page fault by one.</p>
<div class="fragment"><div class="line"><span class="lineno"> 91</span> {</div>
<div class="line"><span class="lineno"> 92</span> <span class="comment">// If the page requested not in cache.</span></div>
<div class="line"><span class="lineno"> 93</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map/find.html">find</a>(page) == <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map/end.html">end</a>()) {</div>
<div class="line"><span class="lineno"> 94</span> <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a09cbe562b0c396329607f5d388d57c9c">pageFault</a>++; <span class="comment">///&lt; Increase the page fault by one.</span></div>
<div class="line"><span class="lineno"> 93</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map/find.html">find</a>(page) == <a class="code hl_variable" href="#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map/end.html">end</a>()) {</div>
<div class="line"><span class="lineno"> 94</span> <a class="code hl_variable" href="#a09cbe562b0c396329607f5d388d57c9c">pageFault</a>++; <span class="comment">///&lt; Increase the page fault by one.</span></div>
<div class="line"><span class="lineno"> 95</span> </div>
<div class="line"><span class="lineno"> 96</span> <span class="comment">// Check if the cache is full</span></div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/size.html">size</a>() == <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a1aafd0444b410e0fcb66287e9954c893">pageFrame</a>) {</div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/size.html">size</a>() == <a class="code hl_variable" href="#a1aafd0444b410e0fcb66287e9954c893">pageFrame</a>) {</div>
<div class="line"><span class="lineno"> 98</span> <span class="comment">// delete the last page from cache</span></div>
<div class="line"><span class="lineno"> 99</span> uint64_t lastPage = <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/back.html">back</a>();</div>
<div class="line"><span class="lineno"> 100</span> <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/pop_back.html">pop_back</a>();</div>
<div class="line"><span class="lineno"> 101</span> <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map/erase.html">erase</a>(lastPage);</div>
<div class="line"><span class="lineno"> 99</span> uint64_t lastPage = <a class="code hl_variable" href="#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/back.html">back</a>();</div>
<div class="line"><span class="lineno"> 100</span> <a class="code hl_variable" href="#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/pop_back.html">pop_back</a>();</div>
<div class="line"><span class="lineno"> 101</span> <a class="code hl_variable" href="#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map/erase.html">erase</a>(lastPage);</div>
<div class="line"><span class="lineno"> 102</span> }</div>
<div class="line"><span class="lineno"> 103</span> }</div>
<div class="line"><span class="lineno"> 104</span> <span class="comment">// The requested page is in the cache</span></div>
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 106</span> <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a5f33913e7ddfbb38062362e7bd859154">hits</a>++;</div>
<div class="line"><span class="lineno"> 106</span> <a class="code hl_variable" href="#a5f33913e7ddfbb38062362e7bd859154">hits</a>++;</div>
<div class="line"><span class="lineno"> 107</span> <span class="comment">// present in cache, erase from current position to bring in front</span></div>
<div class="line"><span class="lineno"> 108</span> <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/erase.html">erase</a>(<a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>[page]);</div>
<div class="line"><span class="lineno"> 108</span> <a class="code hl_variable" href="#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/erase.html">erase</a>(<a class="code hl_variable" href="#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>[page]);</div>
<div class="line"><span class="lineno"> 109</span> }</div>
<div class="line"><span class="lineno"> 110</span> <span class="comment">// Push it in the front of the cache and update the page reference in</span></div>
<div class="line"><span class="lineno"> 111</span> <span class="comment">// page map.</span></div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/push_front.html">push_front</a>(page);</div>
<div class="line"><span class="lineno"> 113</span> <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>[page] = <a class="code hl_variable" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/begin.html">begin</a>();</div>
<div class="line"><span class="lineno"> 112</span> <a class="code hl_variable" href="#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/push_front.html">push_front</a>(page);</div>
<div class="line"><span class="lineno"> 113</span> <a class="code hl_variable" href="#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a>[page] = <a class="code hl_variable" href="#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/list/begin.html">begin</a>();</div>
<div class="line"><span class="lineno"> 114</span> }</div>
<div class="ttc" id="aback_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/list/back.html">std::list::back</a></div><div class="ttdeci">T back(T... args)</div></div>
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/list/begin.html">std::list::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_aa4d6db56109af196ffc7e5f72bc9907c"><div class="ttname"><a href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aa4d6db56109af196ffc7e5f72bc9907c">others::lru_cache::LRUCache::pageMap</a></div><div class="ttdeci">std::unordered_map&lt; uint64_t, std::list&lt; uint64_t &gt;::iterator &gt; pageMap</div><div class="ttdoc">Hash map containing pages and their addresses.</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:71</div></div>
<div class="ttc" id="aclassothers_1_1lru__cache_1_1_l_r_u_cache_html_aa4d6db56109af196ffc7e5f72bc9907c"><div class="ttname"><a href="#aa4d6db56109af196ffc7e5f72bc9907c">others::lru_cache::LRUCache::pageMap</a></div><div class="ttdeci">std::unordered_map&lt; uint64_t, std::list&lt; uint64_t &gt;::iterator &gt; pageMap</div><div class="ttdoc">Hash map containing pages and their addresses.</div><div class="ttdef"><b>Definition</b> lru_cache.cpp:71</div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/unordered_map/end.html">std::unordered_map::end</a></div><div class="ttdeci">T end(T... args)</div></div>
<div class="ttc" id="aerase_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/unordered_map/erase.html">std::unordered_map::erase</a></div><div class="ttdeci">T erase(T... args)</div></div>
<div class="ttc" id="afind_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/unordered_map/find.html">std::unordered_map::find</a></div><div class="ttdeci">T find(T... args)</div></div>
@@ -427,7 +427,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d0/d6f/namespaceothers.html">others</a></li><li class="navelem"><b>lru_cache</b></li><li class="navelem"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">LRUCache</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: probability/binomial_dist.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/db0/binomial__dist_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/db0/binomial__dist_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -115,19 +117,19 @@ Include dependency graph for binomial_dist.cpp:</div>
</div><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:a4416a7bc7fa87201883c54cdc4c82813" id="r_a4416a7bc7fa87201883c54cdc4c82813"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/db0/binomial__dist_8cpp.html#a4416a7bc7fa87201883c54cdc4c82813">binomial_expected</a> (double n, double p)</td></tr>
<tr class="memitem:a4416a7bc7fa87201883c54cdc4c82813" id="r_a4416a7bc7fa87201883c54cdc4c82813"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4416a7bc7fa87201883c54cdc4c82813">binomial_expected</a> (double n, double p)</td></tr>
<tr class="separator:a4416a7bc7fa87201883c54cdc4c82813"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd4dd4558031e4c5d045c801f73d8861" id="r_acd4dd4558031e4c5d045c801f73d8861"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/db0/binomial__dist_8cpp.html#acd4dd4558031e4c5d045c801f73d8861">binomial_variance</a> (double n, double p)</td></tr>
<tr class="memitem:acd4dd4558031e4c5d045c801f73d8861" id="r_acd4dd4558031e4c5d045c801f73d8861"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acd4dd4558031e4c5d045c801f73d8861">binomial_variance</a> (double n, double p)</td></tr>
<tr class="separator:acd4dd4558031e4c5d045c801f73d8861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af09e51f513cee647d41192ab0a872cdc" id="r_af09e51f513cee647d41192ab0a872cdc"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/db0/binomial__dist_8cpp.html#af09e51f513cee647d41192ab0a872cdc">binomial_standard_deviation</a> (double n, double p)</td></tr>
<tr class="memitem:af09e51f513cee647d41192ab0a872cdc" id="r_af09e51f513cee647d41192ab0a872cdc"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af09e51f513cee647d41192ab0a872cdc">binomial_standard_deviation</a> (double n, double p)</td></tr>
<tr class="separator:af09e51f513cee647d41192ab0a872cdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78d36635232e54b5d71fcbf1eac9a49a" id="r_a78d36635232e54b5d71fcbf1eac9a49a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/db0/binomial__dist_8cpp.html#a78d36635232e54b5d71fcbf1eac9a49a">nCr</a> (double n, double r)</td></tr>
<tr class="memitem:a78d36635232e54b5d71fcbf1eac9a49a" id="r_a78d36635232e54b5d71fcbf1eac9a49a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a78d36635232e54b5d71fcbf1eac9a49a">nCr</a> (double n, double r)</td></tr>
<tr class="separator:a78d36635232e54b5d71fcbf1eac9a49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19ae0a6a2bd200fd1eb0e31b2bf4cc76" id="r_a19ae0a6a2bd200fd1eb0e31b2bf4cc76"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/db0/binomial__dist_8cpp.html#a19ae0a6a2bd200fd1eb0e31b2bf4cc76">binomial_x_successes</a> (double n, double p, double x)</td></tr>
<tr class="memitem:a19ae0a6a2bd200fd1eb0e31b2bf4cc76" id="r_a19ae0a6a2bd200fd1eb0e31b2bf4cc76"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a19ae0a6a2bd200fd1eb0e31b2bf4cc76">binomial_x_successes</a> (double n, double p, double x)</td></tr>
<tr class="separator:a19ae0a6a2bd200fd1eb0e31b2bf4cc76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76ed6ce71415fb400b65f0656cef3d25" id="r_a76ed6ce71415fb400b65f0656cef3d25"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/db0/binomial__dist_8cpp.html#a76ed6ce71415fb400b65f0656cef3d25">binomial_range_successes</a> (double n, double p, double lower_bound, double upper_bound)</td></tr>
<tr class="memitem:a76ed6ce71415fb400b65f0656cef3d25" id="r_a76ed6ce71415fb400b65f0656cef3d25"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a76ed6ce71415fb400b65f0656cef3d25">binomial_range_successes</a> (double n, double p, double lower_bound, double upper_bound)</td></tr>
<tr class="separator:a76ed6ce71415fb400b65f0656cef3d25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/db0/binomial__dist_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -148,19 +150,12 @@ Functions</h2></td></tr>
<tr>
<td class="memname">double binomial_expected </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>n</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>n</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>p</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -185,31 +180,22 @@ Functions</h2></td></tr>
<tr>
<td class="memname">double binomial_range_successes </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>n</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>n</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>p</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>lower_bound</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>lower_bound</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>upper_bound</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>upper_bound</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -219,11 +205,11 @@ Functions</h2></td></tr>
<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_namespace" href="../../d4/ded/namespaceprobability.html">probability</a> = 0;</div>
<div class="line"><span class="lineno"> 77</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = lower_bound; i &lt;= <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/upper_bound.html">upper_bound</a>; i++) {</div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_namespace" href="../../d4/ded/namespaceprobability.html">probability</a> += <a class="code hl_function" href="../../d6/db0/binomial__dist_8cpp.html#a78d36635232e54b5d71fcbf1eac9a49a">nCr</a>(n, i) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(p, i) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(1 - p, n - i);</div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_namespace" href="../../d4/ded/namespaceprobability.html">probability</a> += <a class="code hl_function" href="#a78d36635232e54b5d71fcbf1eac9a49a">nCr</a>(n, i) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(p, i) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(1 - p, n - i);</div>
<div class="line"><span class="lineno"> 79</span> }</div>
<div class="line"><span class="lineno"> 80</span> <span class="keywordflow">return</span> <a class="code hl_namespace" href="../../d4/ded/namespaceprobability.html">probability</a>;</div>
<div class="line"><span class="lineno"> 81</span>}</div>
<div class="ttc" id="abinomial__dist_8cpp_html_a78d36635232e54b5d71fcbf1eac9a49a"><div class="ttname"><a href="../../d6/db0/binomial__dist_8cpp.html#a78d36635232e54b5d71fcbf1eac9a49a">nCr</a></div><div class="ttdeci">double nCr(double n, double r)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:47</div></div>
<div class="ttc" id="abinomial__dist_8cpp_html_a78d36635232e54b5d71fcbf1eac9a49a"><div class="ttname"><a href="#a78d36635232e54b5d71fcbf1eac9a49a">nCr</a></div><div class="ttdeci">double nCr(double n, double r)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:47</div></div>
<div class="ttc" id="anamespaceprobability_html"><div class="ttname"><a href="../../d4/ded/namespaceprobability.html">probability</a></div><div class="ttdoc">Probability algorithms.</div></div>
<div class="ttc" id="apow_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a></div><div class="ttdeci">T pow(T... args)</div></div>
<div class="ttc" id="aupper_bound_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/upper_bound.html">std::upper_bound</a></div><div class="ttdeci">T upper_bound(T... args)</div></div>
@@ -244,19 +230,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">double binomial_standard_deviation </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>n</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>n</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>p</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -269,9 +248,9 @@ Here is the call graph for this function:</div>
</dl>
<dl class="section return"><dt>Returns</dt><dd>\(\sigma = \sqrt{\sigma^2} = \sqrt{n\cdot p\cdot (1-p)}\) </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 36</span> {</div>
<div class="line"><span class="lineno"> 37</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a>(<a class="code hl_function" href="../../d6/db0/binomial__dist_8cpp.html#acd4dd4558031e4c5d045c801f73d8861">binomial_variance</a>(n, p));</div>
<div class="line"><span class="lineno"> 37</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a>(<a class="code hl_function" href="#acd4dd4558031e4c5d045c801f73d8861">binomial_variance</a>(n, p));</div>
<div class="line"><span class="lineno"> 38</span>}</div>
<div class="ttc" id="abinomial__dist_8cpp_html_acd4dd4558031e4c5d045c801f73d8861"><div class="ttname"><a href="../../d6/db0/binomial__dist_8cpp.html#acd4dd4558031e4c5d045c801f73d8861">binomial_variance</a></div><div class="ttdeci">double binomial_variance(double n, double p)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:29</div></div>
<div class="ttc" id="abinomial__dist_8cpp_html_acd4dd4558031e4c5d045c801f73d8861"><div class="ttname"><a href="#acd4dd4558031e4c5d045c801f73d8861">binomial_variance</a></div><div class="ttdeci">double binomial_variance(double n, double p)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:29</div></div>
<div class="ttc" id="asqrt_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">std::sqrt</a></div><div class="ttdeci">T sqrt(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -290,19 +269,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">double binomial_variance </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>n</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>n</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>p</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -327,31 +299,23 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">double binomial_x_successes </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>n</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>n</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>p</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>x</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>calculates the probability of exactly x successes </p><dl class="section return"><dt>Returns</dt><dd>\(\displaystyle P(n,p,x) = {n\choose x} p^x (1-p)^{n-x}\) </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 65</span> {</div>
<div class="line"><span class="lineno"> 66</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d6/db0/binomial__dist_8cpp.html#a78d36635232e54b5d71fcbf1eac9a49a">nCr</a>(n, x) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(p, x) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(1 - p, n - x);</div>
<div class="line"><span class="lineno"> 66</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#a78d36635232e54b5d71fcbf1eac9a49a">nCr</a>(n, x) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(p, x) * <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/pow.html">std::pow</a>(1 - p, n - x);</div>
<div class="line"><span class="lineno"> 67</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -370,35 +334,34 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>main function </p>
<div class="fragment"><div class="line"><span class="lineno"> 84</span> {</div>
<div class="line"><span class="lineno"> 85</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;expected value : &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d6/db0/binomial__dist_8cpp.html#a4416a7bc7fa87201883c54cdc4c82813">binomial_expected</a>(100, 0.5)</div>
<div class="line"><span class="lineno"> 85</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;expected value : &quot;</span> &lt;&lt; <a class="code hl_function" href="#a4416a7bc7fa87201883c54cdc4c82813">binomial_expected</a>(100, 0.5)</div>
<div class="line"><span class="lineno"> 86</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"> 87</span> </div>
<div class="line"><span class="lineno"> 88</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;variance : &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d6/db0/binomial__dist_8cpp.html#acd4dd4558031e4c5d045c801f73d8861">binomial_variance</a>(100, 0.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"> 88</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;variance : &quot;</span> &lt;&lt; <a class="code hl_function" href="#acd4dd4558031e4c5d045c801f73d8861">binomial_variance</a>(100, 0.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"> 89</span> </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;standard deviation : &quot;</span></div>
<div class="line"><span class="lineno"> 91</span> &lt;&lt; <a class="code hl_function" href="../../d6/db0/binomial__dist_8cpp.html#af09e51f513cee647d41192ab0a872cdc">binomial_standard_deviation</a>(100, 0.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"> 91</span> &lt;&lt; <a class="code hl_function" href="#af09e51f513cee647d41192ab0a872cdc">binomial_standard_deviation</a>(100, 0.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"> 92</span> </div>
<div class="line"><span class="lineno"> 93</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;exactly 30 successes : &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d6/db0/binomial__dist_8cpp.html#a19ae0a6a2bd200fd1eb0e31b2bf4cc76">binomial_x_successes</a>(100, 0.5, 30)</div>
<div class="line"><span class="lineno"> 93</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;exactly 30 successes : &quot;</span> &lt;&lt; <a class="code hl_function" href="#a19ae0a6a2bd200fd1eb0e31b2bf4cc76">binomial_x_successes</a>(100, 0.5, 30)</div>
<div class="line"><span class="lineno"> 94</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> </div>
<div class="line"><span class="lineno"> 96</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;45 or more successes : &quot;</span></div>
<div class="line"><span class="lineno"> 97</span> &lt;&lt; <a class="code hl_function" href="../../d6/db0/binomial__dist_8cpp.html#a76ed6ce71415fb400b65f0656cef3d25">binomial_range_successes</a>(100, 0.5, 45, 100) &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"> 97</span> &lt;&lt; <a class="code hl_function" href="#a76ed6ce71415fb400b65f0656cef3d25">binomial_range_successes</a>(100, 0.5, 45, 100) &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"> 98</span> </div>
<div class="line"><span class="lineno"> 99</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 100</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="abinomial__dist_8cpp_html_a19ae0a6a2bd200fd1eb0e31b2bf4cc76"><div class="ttname"><a href="../../d6/db0/binomial__dist_8cpp.html#a19ae0a6a2bd200fd1eb0e31b2bf4cc76">binomial_x_successes</a></div><div class="ttdeci">double binomial_x_successes(double n, double p, double x)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:65</div></div>
<div class="ttc" id="abinomial__dist_8cpp_html_a4416a7bc7fa87201883c54cdc4c82813"><div class="ttname"><a href="../../d6/db0/binomial__dist_8cpp.html#a4416a7bc7fa87201883c54cdc4c82813">binomial_expected</a></div><div class="ttdeci">double binomial_expected(double n, double p)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:22</div></div>
<div class="ttc" id="abinomial__dist_8cpp_html_a76ed6ce71415fb400b65f0656cef3d25"><div class="ttname"><a href="../../d6/db0/binomial__dist_8cpp.html#a76ed6ce71415fb400b65f0656cef3d25">binomial_range_successes</a></div><div class="ttdeci">double binomial_range_successes(double n, double p, double lower_bound, double upper_bound)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:74</div></div>
<div class="ttc" id="abinomial__dist_8cpp_html_af09e51f513cee647d41192ab0a872cdc"><div class="ttname"><a href="../../d6/db0/binomial__dist_8cpp.html#af09e51f513cee647d41192ab0a872cdc">binomial_standard_deviation</a></div><div class="ttdeci">double binomial_standard_deviation(double n, double p)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:36</div></div>
<div class="ttc" id="abinomial__dist_8cpp_html_a19ae0a6a2bd200fd1eb0e31b2bf4cc76"><div class="ttname"><a href="#a19ae0a6a2bd200fd1eb0e31b2bf4cc76">binomial_x_successes</a></div><div class="ttdeci">double binomial_x_successes(double n, double p, double x)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:65</div></div>
<div class="ttc" id="abinomial__dist_8cpp_html_a4416a7bc7fa87201883c54cdc4c82813"><div class="ttname"><a href="#a4416a7bc7fa87201883c54cdc4c82813">binomial_expected</a></div><div class="ttdeci">double binomial_expected(double n, double p)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:22</div></div>
<div class="ttc" id="abinomial__dist_8cpp_html_a76ed6ce71415fb400b65f0656cef3d25"><div class="ttname"><a href="#a76ed6ce71415fb400b65f0656cef3d25">binomial_range_successes</a></div><div class="ttdeci">double binomial_range_successes(double n, double p, double lower_bound, double upper_bound)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:74</div></div>
<div class="ttc" id="abinomial__dist_8cpp_html_af09e51f513cee647d41192ab0a872cdc"><div class="ttname"><a href="#af09e51f513cee647d41192ab0a872cdc">binomial_standard_deviation</a></div><div class="ttdeci">double binomial_standard_deviation(double n, double p)</div><div class="ttdef"><b>Definition</b> binomial_dist.cpp:36</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><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -417,19 +380,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">double nCr </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>n</em>, </td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>n</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>r</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>r</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -466,7 +422,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_82e494173a87936756866de2fa774307.html">probability</a></li><li class="navelem"><a class="el" href="../../d6/db0/binomial__dist_8cpp.html">binomial_dist.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Member List</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d4/d90/classdata__structures_1_1_skip_list.html','../../'); initResizable(); });
$(function(){initNavTree('d4/d90/classdata__structures_1_1_skip_list.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -116,7 +118,7 @@ $(document).ready(function(){initNavTree('d4/d90/classdata__structures_1_1_skip_
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math/inv_sqrt.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/db8/inv__sqrt_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/db8/inv__sqrt_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -118,17 +120,17 @@ Include dependency graph for inv_sqrt.cpp:</div>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad219034bf5fba657f5035ec5a1d50f52" id="r_ad219034bf5fba657f5035ec5a1d50f52"><td class="memTemplParams" colspan="2">template&lt;typename T = double, char iterations = 2&gt; </td></tr>
<tr class="memitem:ad219034bf5fba657f5035ec5a1d50f52"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/db8/inv__sqrt_8cpp.html#ad219034bf5fba657f5035ec5a1d50f52">Fast_InvSqrt</a> (T x)</td></tr>
<tr class="memitem:ad219034bf5fba657f5035ec5a1d50f52"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ad219034bf5fba657f5035ec5a1d50f52">Fast_InvSqrt</a> (T x)</td></tr>
<tr class="memdesc:ad219034bf5fba657f5035ec5a1d50f52"><td class="mdescLeft">&#160;</td><td class="mdescRight">for numeric_limits <br /></td></tr>
<tr class="separator:ad219034bf5fba657f5035ec5a1d50f52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2703e5cf3fecde8becd9066b9666b97" id="r_aa2703e5cf3fecde8becd9066b9666b97"><td class="memTemplParams" colspan="2">template&lt;typename T = double&gt; </td></tr>
<tr class="memitem:aa2703e5cf3fecde8becd9066b9666b97"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d6/db8/inv__sqrt_8cpp.html#aa2703e5cf3fecde8becd9066b9666b97">Standard_InvSqrt</a> (T number)</td></tr>
<tr class="memitem:aa2703e5cf3fecde8becd9066b9666b97"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aa2703e5cf3fecde8becd9066b9666b97">Standard_InvSqrt</a> (T number)</td></tr>
<tr class="memdesc:aa2703e5cf3fecde8becd9066b9666b97"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the function that calculates the fast inverse square root. The following code is the fast inverse square root with standard lib (cmath) More information can be found at <a href="https://www.linkedin.com/pulse/fast-inverse-square-root-still-armin-kassemi-langroodi" target="_blank">LinkedIn</a> <br /></td></tr>
<tr class="separator:aa2703e5cf3fecde8becd9066b9666b97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/db8/inv__sqrt_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memdesc:aa8dca7b867074164d5f45b0f3851269d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self-test implementations. <br /></td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/db8/inv__sqrt_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function. <br /></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -150,8 +152,7 @@ template&lt;typename T = double, char iterations = 2&gt; </div>
<tr>
<td class="memname">T Fast_InvSqrt </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>x</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -212,8 +213,7 @@ template&lt;typename T = double, char iterations = 2&gt; </div>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -222,27 +222,27 @@ template&lt;typename T = double, char iterations = 2&gt; </div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 87</span> {</div>
<div class="line"><span class="lineno"> 88</span> <a class="code hl_function" href="../../d6/db8/inv__sqrt_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 88</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</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;The Fast inverse square root of 36 is: &quot;</span></div>
<div class="line"><span class="lineno"> 90</span> &lt;&lt; Fast_InvSqrt&lt;float, 1&gt;(36.0f) &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;The Fast inverse square root of 36 is: &quot;</span></div>
<div class="line"><span class="lineno"> 92</span> &lt;&lt; Fast_InvSqrt&lt;double, 2&gt;(36.0f) &lt;&lt; <span class="stringliteral">&quot; (2 iterations)&quot;</span></div>
<div class="line"><span class="lineno"> 93</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> <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;The Fast inverse square root of 100 is: &quot;</span></div>
<div class="line"><span class="lineno"> 95</span> &lt;&lt; <a class="code hl_function" href="../../d6/db8/inv__sqrt_8cpp.html#ad219034bf5fba657f5035ec5a1d50f52">Fast_InvSqrt</a>(100.0f)</div>
<div class="line"><span class="lineno"> 95</span> &lt;&lt; <a class="code hl_function" href="#ad219034bf5fba657f5035ec5a1d50f52">Fast_InvSqrt</a>(100.0f)</div>
<div class="line"><span class="lineno"> 96</span> &lt;&lt; <span class="stringliteral">&quot; (With default template type and iterations: double, 2)&quot;</span></div>
<div class="line"><span class="lineno"> 97</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"> 98</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;The Standard inverse square root of 36 is: &quot;</span></div>
<div class="line"><span class="lineno"> 99</span> &lt;&lt; Standard_InvSqrt&lt;float&gt;(36.0f) &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;The Standard inverse square root of 100 is: &quot;</span></div>
<div class="line"><span class="lineno"> 101</span> &lt;&lt; <a class="code hl_function" href="../../d6/db8/inv__sqrt_8cpp.html#aa2703e5cf3fecde8becd9066b9666b97">Standard_InvSqrt</a>(100.0f)</div>
<div class="line"><span class="lineno"> 101</span> &lt;&lt; <a class="code hl_function" href="#aa2703e5cf3fecde8becd9066b9666b97">Standard_InvSqrt</a>(100.0f)</div>
<div class="line"><span class="lineno"> 102</span> &lt;&lt; <span class="stringliteral">&quot; (With default template type: double)&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"> 103</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="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="ainv__sqrt_8cpp_html_aa2703e5cf3fecde8becd9066b9666b97"><div class="ttname"><a href="../../d6/db8/inv__sqrt_8cpp.html#aa2703e5cf3fecde8becd9066b9666b97">Standard_InvSqrt</a></div><div class="ttdeci">T Standard_InvSqrt(T number)</div><div class="ttdoc">This is the function that calculates the fast inverse square root. The following code is the fast inv...</div><div class="ttdef"><b>Definition</b> inv_sqrt.cpp:59</div></div>
<div class="ttc" id="ainv__sqrt_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/db8/inv__sqrt_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> inv_sqrt.cpp:68</div></div>
<div class="ttc" id="ainv__sqrt_8cpp_html_ad219034bf5fba657f5035ec5a1d50f52"><div class="ttname"><a href="../../d6/db8/inv__sqrt_8cpp.html#ad219034bf5fba657f5035ec5a1d50f52">Fast_InvSqrt</a></div><div class="ttdeci">T Fast_InvSqrt(T x)</div><div class="ttdoc">for numeric_limits</div><div class="ttdef"><b>Definition</b> inv_sqrt.cpp:28</div></div>
<div class="ttc" id="ainv__sqrt_8cpp_html_aa2703e5cf3fecde8becd9066b9666b97"><div class="ttname"><a href="#aa2703e5cf3fecde8becd9066b9666b97">Standard_InvSqrt</a></div><div class="ttdeci">T Standard_InvSqrt(T number)</div><div class="ttdoc">This is the function that calculates the fast inverse square root. The following code is the fast inv...</div><div class="ttdef"><b>Definition</b> inv_sqrt.cpp:59</div></div>
<div class="ttc" id="ainv__sqrt_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> inv_sqrt.cpp:68</div></div>
<div class="ttc" id="ainv__sqrt_8cpp_html_ad219034bf5fba657f5035ec5a1d50f52"><div class="ttname"><a href="#ad219034bf5fba657f5035ec5a1d50f52">Fast_InvSqrt</a></div><div class="ttdeci">T Fast_InvSqrt(T x)</div><div class="ttdoc">for numeric_limits</div><div class="ttdef"><b>Definition</b> inv_sqrt.cpp:28</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -262,8 +262,7 @@ template&lt;typename T = double&gt; </div>
<tr>
<td class="memname">T Standard_InvSqrt </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>number</em></td><td>)</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>number</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -303,7 +302,7 @@ template&lt;typename T = double&gt; </div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -322,12 +321,12 @@ template&lt;typename T = double&gt; </div>
<div class="line"><span class="lineno"> 71</span> <span class="comment">/* Tests with multiple values */</span></div>
<div class="line"><span class="lineno"> 72</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(Standard_InvSqrt&lt;float&gt;(100.0f) - 0.0998449f) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 73</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(Standard_InvSqrt&lt;double&gt;(36.0f) - 0.166667f) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 74</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(<a class="code hl_function" href="../../d6/db8/inv__sqrt_8cpp.html#aa2703e5cf3fecde8becd9066b9666b97">Standard_InvSqrt</a>(12.0f) - 0.288423f) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 74</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(<a class="code hl_function" href="#aa2703e5cf3fecde8becd9066b9666b97">Standard_InvSqrt</a>(12.0f) - 0.288423f) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 75</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(Standard_InvSqrt&lt;double&gt;(5.0f) - 0.447141f) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 76</span> </div>
<div class="line"><span class="lineno"> 77</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(Fast_InvSqrt&lt;float, 1&gt;(100.0f) - 0.0998449f) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 78</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(Fast_InvSqrt&lt;double, 1&gt;(36.0f) - 0.166667f) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 79</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(<a class="code hl_function" href="../../d6/db8/inv__sqrt_8cpp.html#ad219034bf5fba657f5035ec5a1d50f52">Fast_InvSqrt</a>(12.0f) - 0.288423) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 79</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(<a class="code hl_function" href="#ad219034bf5fba657f5035ec5a1d50f52">Fast_InvSqrt</a>(12.0f) - 0.288423) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 80</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a>(Fast_InvSqrt&lt;double&gt;(5.0f) - 0.447141) &lt; epsilon);</div>
<div class="line"><span class="lineno"> 81</span>}</div>
<div class="ttc" id="afabs_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/fabs.html">std::fabs</a></div><div class="ttdeci">T fabs(T... args)</div></div>
@@ -345,7 +344,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_296d53ceaeaa7e099814a6def439fe8a.html">math</a></li><li class="navelem"><a class="el" href="../../d6/db8/inv__sqrt_8cpp.html">inv_sqrt.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math::ncr_modulo_p::NCRModuloP Class Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html','../../'); initResizable(); });
$(function(){initNavTree('d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -106,7 +108,7 @@ $(document).ready(function(){initNavTree('d6/dc1/classmath_1_1ncr__modulo__p_1_1
<div class="contents">
<p>Class which contains all methods required for calculating nCr mod p.
<a href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#details">More...</a></p>
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for math::ncr_modulo_p::NCRModuloP:</div>
<div class="dyncontent">
@@ -115,19 +117,19 @@ Collaboration diagram for math::ncr_modulo_p::NCRModuloP:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af3d41271912f9fa50b774c96c51874b9" id="r_af3d41271912f9fa50b774c96c51874b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#af3d41271912f9fa50b774c96c51874b9">NCRModuloP</a> (const uint64_t &amp;size, const uint64_t &amp;mod)</td></tr>
<tr class="memitem:af3d41271912f9fa50b774c96c51874b9" id="r_af3d41271912f9fa50b774c96c51874b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af3d41271912f9fa50b774c96c51874b9">NCRModuloP</a> (const uint64_t &amp;size, const uint64_t &amp;mod)</td></tr>
<tr class="memdesc:af3d41271912f9fa50b774c96c51874b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">the p from (nCr % p) <br /></td></tr>
<tr class="separator:af3d41271912f9fa50b774c96c51874b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afde201f4687740454302c444f507a926" id="r_afde201f4687740454302c444f507a926"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#afde201f4687740454302c444f507a926">gcdExtended</a> (const uint64_t &amp;a, const uint64_t &amp;b, int64_t *x, int64_t *y)</td></tr>
<tr class="memitem:afde201f4687740454302c444f507a926" id="r_afde201f4687740454302c444f507a926"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afde201f4687740454302c444f507a926">gcdExtended</a> (const uint64_t &amp;a, const uint64_t &amp;b, int64_t *x, int64_t *y)</td></tr>
<tr class="separator:afde201f4687740454302c444f507a926"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0431ec5c876e1154d8e1e5f89e1ab34a" id="r_a0431ec5c876e1154d8e1e5f89e1ab34a"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a0431ec5c876e1154d8e1e5f89e1ab34a">modInverse</a> (const uint64_t &amp;a, const uint64_t &amp;m)</td></tr>
<tr class="memitem:a0431ec5c876e1154d8e1e5f89e1ab34a" id="r_a0431ec5c876e1154d8e1e5f89e1ab34a"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0431ec5c876e1154d8e1e5f89e1ab34a">modInverse</a> (const uint64_t &amp;a, const uint64_t &amp;m)</td></tr>
<tr class="separator:a0431ec5c876e1154d8e1e5f89e1ab34a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b95277f5f527beacc8d0f3bc91fcd08" id="r_a6b95277f5f527beacc8d0f3bc91fcd08"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a6b95277f5f527beacc8d0f3bc91fcd08">ncr</a> (const uint64_t &amp;n, const uint64_t &amp;r, const uint64_t &amp;<a class="el" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a57c168cd6eb85718eab97da658a698ad">p</a>)</td></tr>
<tr class="memitem:a6b95277f5f527beacc8d0f3bc91fcd08" id="r_a6b95277f5f527beacc8d0f3bc91fcd08"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6b95277f5f527beacc8d0f3bc91fcd08">ncr</a> (const uint64_t &amp;n, const uint64_t &amp;r, const uint64_t &amp;<a class="el" href="#a57c168cd6eb85718eab97da658a698ad">p</a>)</td></tr>
<tr class="separator:a6b95277f5f527beacc8d0f3bc91fcd08"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:aed5b4a9e4fd57fe23812293d4a0f30c1" id="r_aed5b4a9e4fd57fe23812293d4a0f30c1"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#aed5b4a9e4fd57fe23812293d4a0f30c1">fac</a> {}</td></tr>
<tr class="memitem:aed5b4a9e4fd57fe23812293d4a0f30c1" id="r_aed5b4a9e4fd57fe23812293d4a0f30c1"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aed5b4a9e4fd57fe23812293d4a0f30c1">fac</a> {}</td></tr>
<tr class="separator:aed5b4a9e4fd57fe23812293d4a0f30c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57c168cd6eb85718eab97da658a698ad" id="r_a57c168cd6eb85718eab97da658a698ad"><td class="memItemLeft" align="right" valign="top"><a id="a57c168cd6eb85718eab97da658a698ad" name="a57c168cd6eb85718eab97da658a698ad"></a>
uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>p</b> = 0</td></tr>
@@ -149,19 +151,12 @@ uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>p</b> = 0</td></t
<tr>
<td class="memname">math::ncr_modulo_p::NCRModuloP::NCRModuloP </td>
<td>(</td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>size</em>, </td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>size</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>mod</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>mod</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -174,14 +169,14 @@ uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>p</b> = 0</td></t
<p>the p from (nCr % p) </p>
<p>Constructor which precomputes the values of n! % mod from n=0 to size and stores them in vector 'fac' @params[in] the numbers 'size', 'mod' </p>
<div class="fragment"><div class="line"><span class="lineno"> 41</span> {</div>
<div class="line"><span class="lineno"> 42</span> <a class="code hl_variable" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a57c168cd6eb85718eab97da658a698ad">p</a> = mod;</div>
<div class="line"><span class="lineno"> 42</span> <a class="code hl_variable" href="#a57c168cd6eb85718eab97da658a698ad">p</a> = mod;</div>
<div class="line"><span class="lineno"> 43</span> fac = <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a>(size);</div>
<div class="line"><span class="lineno"> 44</span> fac[0] = 1;</div>
<div class="line"><span class="lineno"> 45</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i &lt;= size; i++) {</div>
<div class="line"><span class="lineno"> 46</span> fac[i] = (fac[i - 1] * i) % <a class="code hl_variable" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a57c168cd6eb85718eab97da658a698ad">p</a>;</div>
<div class="line"><span class="lineno"> 46</span> fac[i] = (fac[i - 1] * i) % <a class="code hl_variable" href="#a57c168cd6eb85718eab97da658a698ad">p</a>;</div>
<div class="line"><span class="lineno"> 47</span> }</div>
<div class="line"><span class="lineno"> 48</span> }</div>
<div class="ttc" id="aclassmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p_html_a57c168cd6eb85718eab97da658a698ad"><div class="ttname"><a href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a57c168cd6eb85718eab97da658a698ad">math::ncr_modulo_p::NCRModuloP::p</a></div><div class="ttdeci">uint64_t p</div><div class="ttdoc">stores precomputed factorial(i) % p value</div><div class="ttdef"><b>Definition</b> ncr_modulo_p.cpp:34</div></div>
<div class="ttc" id="aclassmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p_html_a57c168cd6eb85718eab97da658a698ad"><div class="ttname"><a href="#a57c168cd6eb85718eab97da658a698ad">math::ncr_modulo_p::NCRModuloP::p</a></div><div class="ttdeci">uint64_t p</div><div class="ttdoc">stores precomputed factorial(i) % p value</div><div class="ttdef"><b>Definition</b> ncr_modulo_p.cpp:34</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
</div><!-- fragment -->
</div>
@@ -199,31 +194,22 @@ uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>p</b> = 0</td></t
<tr>
<td class="memname">uint64_t math::ncr_modulo_p::NCRModuloP::gcdExtended </td>
<td>(</td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>a</em>, </td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>a</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>b</em>, </td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>b</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>x</em>, </td>
<td class="paramtype">int64_t *</td> <td class="paramname"><span class="paramname"><em>x</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int64_t *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">int64_t *</td> <td class="paramname"><span class="paramname"><em>y</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -241,13 +227,13 @@ uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>p</b> = 0</td></t
<div class="line"><span class="lineno"> 61</span> }</div>
<div class="line"><span class="lineno"> 62</span> </div>
<div class="line"><span class="lineno"> 63</span> int64_t x1 = 0, y1 = 0;</div>
<div class="line"><span class="lineno"> 64</span> uint64_t <a class="code hl_function" href="../../d4/da0/gcd__iterative__euclidean_8cpp.html#ae48807fa2b7000afae599e67f327545e">gcd</a> = <a class="code hl_function" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#afde201f4687740454302c444f507a926">gcdExtended</a>(b % a, a, &amp;x1, &amp;y1);</div>
<div class="line"><span class="lineno"> 64</span> uint64_t <a class="code hl_function" href="../../d4/da0/gcd__iterative__euclidean_8cpp.html#ae48807fa2b7000afae599e67f327545e">gcd</a> = <a class="code hl_function" href="#afde201f4687740454302c444f507a926">gcdExtended</a>(b % a, a, &amp;x1, &amp;y1);</div>
<div class="line"><span class="lineno"> 65</span> </div>
<div class="line"><span class="lineno"> 66</span> *x = y1 - (b / a) * x1;</div>
<div class="line"><span class="lineno"> 67</span> *y = x1;</div>
<div class="line"><span class="lineno"> 68</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d4/da0/gcd__iterative__euclidean_8cpp.html#ae48807fa2b7000afae599e67f327545e">gcd</a>;</div>
<div class="line"><span class="lineno"> 69</span> }</div>
<div class="ttc" id="aclassmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p_html_afde201f4687740454302c444f507a926"><div class="ttname"><a href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#afde201f4687740454302c444f507a926">math::ncr_modulo_p::NCRModuloP::gcdExtended</a></div><div class="ttdeci">uint64_t gcdExtended(const uint64_t &amp;a, const uint64_t &amp;b, int64_t *x, int64_t *y)</div><div class="ttdef"><b>Definition</b> ncr_modulo_p.cpp:56</div></div>
<div class="ttc" id="aclassmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p_html_afde201f4687740454302c444f507a926"><div class="ttname"><a href="#afde201f4687740454302c444f507a926">math::ncr_modulo_p::NCRModuloP::gcdExtended</a></div><div class="ttdeci">uint64_t gcdExtended(const uint64_t &amp;a, const uint64_t &amp;b, int64_t *x, int64_t *y)</div><div class="ttdef"><b>Definition</b> ncr_modulo_p.cpp:56</div></div>
<div class="ttc" id="agcd__iterative__euclidean_8cpp_html_ae48807fa2b7000afae599e67f327545e"><div class="ttname"><a href="../../d4/da0/gcd__iterative__euclidean_8cpp.html#ae48807fa2b7000afae599e67f327545e">gcd</a></div><div class="ttdeci">int gcd(int num1, int num2)</div><div class="ttdef"><b>Definition</b> gcd_iterative_euclidean.cpp:15</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -269,19 +255,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int64_t math::ncr_modulo_p::NCRModuloP::modInverse </td>
<td>(</td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>a</em>, </td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>a</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>m</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>m</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -294,7 +273,7 @@ Here is the call graph for this function:</div>
<p>@params[in] the numbers 'a' and 'm' from above equation </p><dl class="section return"><dt>Returns</dt><dd>the modular inverse of a </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 76</span> {</div>
<div class="line"><span class="lineno"> 77</span> int64_t x = 0, y = 0;</div>
<div class="line"><span class="lineno"> 78</span> uint64_t <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = <a class="code hl_function" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#afde201f4687740454302c444f507a926">gcdExtended</a>(a, m, &amp;x, &amp;y);</div>
<div class="line"><span class="lineno"> 78</span> uint64_t <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = <a class="code hl_function" href="#afde201f4687740454302c444f507a926">gcdExtended</a>(a, m, &amp;x, &amp;y);</div>
<div class="line"><span class="lineno"> 79</span> <span class="keywordflow">if</span> (g != 1) { <span class="comment">// modular inverse doesn&#39;t exist</span></div>
<div class="line"><span class="lineno"> 80</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><span class="lineno"> 81</span> } <span class="keywordflow">else</span> {</div>
@@ -323,25 +302,17 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int64_t math::ncr_modulo_p::NCRModuloP::ncr </td>
<td>(</td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>n</em>, </td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>n</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>r</em>, </td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>r</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint64_t &amp;&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const uint64_t &amp;</td> <td class="paramname"><span class="paramname"><em>p</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -358,23 +329,23 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 95</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 96</span> }</div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">if</span> (r == 1) {</div>
<div class="line"><span class="lineno"> 98</span> <span class="keywordflow">return</span> n % <a class="code hl_variable" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a57c168cd6eb85718eab97da658a698ad">p</a>;</div>
<div class="line"><span class="lineno"> 98</span> <span class="keywordflow">return</span> n % <a class="code hl_variable" href="#a57c168cd6eb85718eab97da658a698ad">p</a>;</div>
<div class="line"><span class="lineno"> 99</span> }</div>
<div class="line"><span class="lineno"> 100</span> <span class="keywordflow">if</span> (r == 0 || r == n) {</div>
<div class="line"><span class="lineno"> 101</span> <span class="keywordflow">return</span> 1;</div>
<div class="line"><span class="lineno"> 102</span> }</div>
<div class="line"><span class="lineno"> 103</span> <span class="comment">// fac is a global array with fac[r] = (r! % p)</span></div>
<div class="line"><span class="lineno"> 104</span> int64_t denominator = <a class="code hl_function" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a0431ec5c876e1154d8e1e5f89e1ab34a">modInverse</a>(fac[r], <a class="code hl_variable" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a57c168cd6eb85718eab97da658a698ad">p</a>);</div>
<div class="line"><span class="lineno"> 104</span> int64_t denominator = <a class="code hl_function" href="#a0431ec5c876e1154d8e1e5f89e1ab34a">modInverse</a>(fac[r], <a class="code hl_variable" href="#a57c168cd6eb85718eab97da658a698ad">p</a>);</div>
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">if</span> (denominator &lt; 0) { <span class="comment">// modular inverse doesn&#39;t exist</span></div>
<div class="line"><span class="lineno"> 106</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><span class="lineno"> 107</span> }</div>
<div class="line"><span class="lineno"> 108</span> denominator = (denominator * <a class="code hl_function" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a0431ec5c876e1154d8e1e5f89e1ab34a">modInverse</a>(fac[n - r], <a class="code hl_variable" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a57c168cd6eb85718eab97da658a698ad">p</a>)) % <a class="code hl_variable" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a57c168cd6eb85718eab97da658a698ad">p</a>;</div>
<div class="line"><span class="lineno"> 108</span> denominator = (denominator * <a class="code hl_function" href="#a0431ec5c876e1154d8e1e5f89e1ab34a">modInverse</a>(fac[n - r], <a class="code hl_variable" href="#a57c168cd6eb85718eab97da658a698ad">p</a>)) % <a class="code hl_variable" href="#a57c168cd6eb85718eab97da658a698ad">p</a>;</div>
<div class="line"><span class="lineno"> 109</span> <span class="keywordflow">if</span> (denominator &lt; 0) { <span class="comment">// modular inverse doesn&#39;t exist</span></div>
<div class="line"><span class="lineno"> 110</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><span class="lineno"> 111</span> }</div>
<div class="line"><span class="lineno"> 112</span> <span class="keywordflow">return</span> (fac[n] * denominator) % <a class="code hl_variable" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a57c168cd6eb85718eab97da658a698ad">p</a>;</div>
<div class="line"><span class="lineno"> 112</span> <span class="keywordflow">return</span> (fac[n] * denominator) % <a class="code hl_variable" href="#a57c168cd6eb85718eab97da658a698ad">p</a>;</div>
<div class="line"><span class="lineno"> 113</span> }</div>
<div class="ttc" id="aclassmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p_html_a0431ec5c876e1154d8e1e5f89e1ab34a"><div class="ttname"><a href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html#a0431ec5c876e1154d8e1e5f89e1ab34a">math::ncr_modulo_p::NCRModuloP::modInverse</a></div><div class="ttdeci">int64_t modInverse(const uint64_t &amp;a, const uint64_t &amp;m)</div><div class="ttdef"><b>Definition</b> ncr_modulo_p.cpp:76</div></div>
<div class="ttc" id="aclassmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p_html_a0431ec5c876e1154d8e1e5f89e1ab34a"><div class="ttname"><a href="#a0431ec5c876e1154d8e1e5f89e1ab34a">math::ncr_modulo_p::NCRModuloP::modInverse</a></div><div class="ttdeci">int64_t modInverse(const uint64_t &amp;a, const uint64_t &amp;m)</div><div class="ttdef"><b>Definition</b> ncr_modulo_p.cpp:76</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -416,7 +387,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d47/namespacemath.html">math</a></li><li class="navelem"><b>ncr_modulo_p</b></li><li class="navelem"><a class="el" href="../../d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html">NCRModuloP</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: CONTRIBUTION GUIDELINES</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/dcd/md__c_o_n_t_r_i_b_u_t_i_n_g.html','../../'); initResizable(); });
$(function(){initNavTree('d6/dcd/md__c_o_n_t_r_i_b_u_t_i_n_g.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -459,7 +461,7 @@ After enabling, it will execute &lt;tt&gt;clang-tidy&lt;/tt&gt; and &lt;tt&gt;cl
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: strings/rabin_karp.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/dce/rabin__karp_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/dce/rabin__karp_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -140,7 +142,7 @@ Functions</h2></td></tr>
<tr class="separator:aebe07cea289a13142503d98be7df11fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21c673d56cbf67b1d2ee4d869185b7d9" id="r_a21c673d56cbf67b1d2ee4d869185b7d9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d03/namespacestring__search.html#a21c673d56cbf67b1d2ee4d869185b7d9">string_search::rabin_karp</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;str, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;pat)</td></tr>
<tr class="separator:a21c673d56cbf67b1d2ee4d869185b7d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a840291bc02cba5474a4cb46a9b9566fe" id="r_a840291bc02cba5474a4cb46a9b9566fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dce/rabin__karp_8cpp.html#a840291bc02cba5474a4cb46a9b9566fe">main</a> (void)</td></tr>
<tr class="memitem:a840291bc02cba5474a4cb46a9b9566fe" id="r_a840291bc02cba5474a4cb46a9b9566fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a840291bc02cba5474a4cb46a9b9566fe">main</a> (void)</td></tr>
<tr class="separator:a840291bc02cba5474a4cb46a9b9566fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -155,21 +157,19 @@ Functions</h2></td></tr>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><span class="lineno"> 105</span> {</div>
<div class="line"><span class="lineno"> 106</span> assert(<a class="code hl_function" href="../../d9/d03/namespacestring__search.html#a21c673d56cbf67b1d2ee4d869185b7d9">rabin_karp</a>(<span class="stringliteral">&quot;helloWorld&quot;</span>, <span class="stringliteral">&quot;world&quot;</span>) == -1);</div>
<div class="line"><span class="lineno"> 107</span> assert(<a class="code hl_function" href="../../d9/d03/namespacestring__search.html#a21c673d56cbf67b1d2ee4d869185b7d9">rabin_karp</a>(<span class="stringliteral">&quot;helloWorld&quot;</span>, <span class="stringliteral">&quot;World&quot;</span>) == 5);</div>
<div class="line"><span class="lineno"> 108</span> assert(<a class="code hl_function" href="../../d9/d03/namespacestring__search.html#a21c673d56cbf67b1d2ee4d869185b7d9">rabin_karp</a>(<span class="stringliteral">&quot;this_is_c++&quot;</span>, <span class="stringliteral">&quot;c++&quot;</span>) == 8);</div>
<div class="line"><span class="lineno"> 109</span> assert(<a class="code hl_function" href="../../d9/d03/namespacestring__search.html#a21c673d56cbf67b1d2ee4d869185b7d9">rabin_karp</a>(<span class="stringliteral">&quot;happy_coding&quot;</span>, <span class="stringliteral">&quot;happy&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 106</span> assert(rabin_karp(<span class="stringliteral">&quot;helloWorld&quot;</span>, <span class="stringliteral">&quot;world&quot;</span>) == -1);</div>
<div class="line"><span class="lineno"> 107</span> assert(rabin_karp(<span class="stringliteral">&quot;helloWorld&quot;</span>, <span class="stringliteral">&quot;World&quot;</span>) == 5);</div>
<div class="line"><span class="lineno"> 108</span> assert(rabin_karp(<span class="stringliteral">&quot;this_is_c++&quot;</span>, <span class="stringliteral">&quot;c++&quot;</span>) == 8);</div>
<div class="line"><span class="lineno"> 109</span> assert(rabin_karp(<span class="stringliteral">&quot;happy_coding&quot;</span>, <span class="stringliteral">&quot;happy&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 110</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 111</span>}</div>
<div class="ttc" id="anamespacestring__search_html_a21c673d56cbf67b1d2ee4d869185b7d9"><div class="ttname"><a href="../../d9/d03/namespacestring__search.html#a21c673d56cbf67b1d2ee4d869185b7d9">string_search::rabin_karp</a></div><div class="ttdeci">int rabin_karp(const std::string &amp;str, const std::string &amp;pat)</div><div class="ttdef"><b>Definition</b> rabin_karp.cpp:83</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -179,7 +179,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_73a3cc5065b223eb41b02873c0e19f0e.html">strings</a></li><li class="navelem"><a class="el" href="../../d6/dce/rabin__karp_8cpp.html">rabin_karp.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: numerical_methods/ode_midpoint_euler.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/dd3/ode__midpoint__euler_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/dd3/ode__midpoint__euler_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -118,10 +120,10 @@ Include dependency graph for ode_midpoint_euler.cpp:</div>
</div><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:abaeae8f62a018d197f0187a1c80a90fe" id="r_abaeae8f62a018d197f0187a1c80a90fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dd3/ode__midpoint__euler_8cpp.html#abaeae8f62a018d197f0187a1c80a90fe">problem</a> (const double &amp;x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *dy)</td></tr>
<tr class="memitem:abaeae8f62a018d197f0187a1c80a90fe" id="r_abaeae8f62a018d197f0187a1c80a90fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abaeae8f62a018d197f0187a1c80a90fe">problem</a> (const double &amp;x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *dy)</td></tr>
<tr class="memdesc:abaeae8f62a018d197f0187a1c80a90fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Problem statement for a system with first-order differential equations. Updates the system differential variables. <br /></td></tr>
<tr class="separator:abaeae8f62a018d197f0187a1c80a90fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3adf7b092a87868917ee5fb4255192b" id="r_af3adf7b092a87868917ee5fb4255192b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dd3/ode__midpoint__euler_8cpp.html#af3adf7b092a87868917ee5fb4255192b">exact_solution</a> (const double &amp;x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y)</td></tr>
<tr class="memitem:af3adf7b092a87868917ee5fb4255192b" id="r_af3adf7b092a87868917ee5fb4255192b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af3adf7b092a87868917ee5fb4255192b">exact_solution</a> (const double &amp;x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y)</td></tr>
<tr class="memdesc:af3adf7b092a87868917ee5fb4255192b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exact solution of the problem. Used for solution comparison. <br /></td></tr>
<tr class="separator:af3adf7b092a87868917ee5fb4255192b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8c319db420c3d97a83e9dcca803b6812" id="r_ga8c319db420c3d97a83e9dcca803b6812"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d60/group__ode.html#ga8c319db420c3d97a83e9dcca803b6812">midpoint_euler_step</a> (const double dx, const double &amp;x, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *dy)</td></tr>
@@ -130,9 +132,9 @@ Functions</h2></td></tr>
<tr class="memitem:ga36ff0710861ca39d957046c0b09b2985" id="r_ga36ff0710861ca39d957046c0b09b2985"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d60/group__ode.html#ga36ff0710861ca39d957046c0b09b2985">midpoint_euler</a> (double dx, double x0, double x_max, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *y, bool save_to_file=false)</td></tr>
<tr class="memdesc:ga36ff0710861ca39d957046c0b09b2985"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute approximation using the midpoint-Euler method in the given limits. <br /></td></tr>
<tr class="separator:ga36ff0710861ca39d957046c0b09b2985"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa13517b8e5de1b75592052db7f7e237f" id="r_aa13517b8e5de1b75592052db7f7e237f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dd3/ode__midpoint__euler_8cpp.html#aa13517b8e5de1b75592052db7f7e237f">save_exact_solution</a> (const double &amp;X0, const double &amp;X_MAX, const double &amp;step_size, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; &amp;Y0)</td></tr>
<tr class="memitem:aa13517b8e5de1b75592052db7f7e237f" id="r_aa13517b8e5de1b75592052db7f7e237f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa13517b8e5de1b75592052db7f7e237f">save_exact_solution</a> (const double &amp;X0, const double &amp;X_MAX, const double &amp;step_size, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; &amp;Y0)</td></tr>
<tr class="separator:aa13517b8e5de1b75592052db7f7e237f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97" id="r_a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dd3/ode__midpoint__euler_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97" id="r_a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr class="separator:a0ddf1224851353fc92bfbff6f499fa97"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -153,7 +155,7 @@ v(x) &amp;=&amp; -\sin(x)\\
\end{eqnarray*}
</p>
<p> The computation results are stored to a text file <code>midpoint_euler.csv</code> and the exact soltuion results in <code>exact.csv</code> for comparison. <img src="https://raw.githubusercontent.com/TheAlgorithms/C-Plus-Plus/docs/images/numerical_methods/ode_midpoint_euler.svg" alt="Implementation solution" style="pointer-events: none;" class="inline"/></p>
<p>To implement <a href="https://en.wikipedia.org/wiki/Van_der_Pol_oscillator" target="_blank">Van der Pol oscillator</a>, change the <a class="el" href="../../d6/dd3/ode__midpoint__euler_8cpp.html#abaeae8f62a018d197f0187a1c80a90fe" title="Problem statement for a system with first-order differential equations. Updates the system differenti...">problem</a> function to: </p><div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">double</span> mu = 2.0;</div>
<p>To implement <a href="https://en.wikipedia.org/wiki/Van_der_Pol_oscillator" target="_blank">Van der Pol oscillator</a>, change the <a class="el" href="#abaeae8f62a018d197f0187a1c80a90fe" title="Problem statement for a system with first-order differential equations. Updates the system differenti...">problem</a> function to: </p><div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">double</span> mu = 2.0;</div>
<div class="line">dy[0] = y[1];</div>
<div class="line">dy[1] = mu * (1.f - y[0] * y[0]) * y[1] - y[0];</div>
</div><!-- fragment --> <dl class="section see"><dt>See also</dt><dd><a class="el" href="../../db/dd3/ode__forward__euler_8cpp.html" title="Solve a multivariable first order ordinary differential equation (ODEs) using forward Euler method">ode_forward_euler.cpp</a>, <a class="el" href="../../d3/d06/ode__semi__implicit__euler_8cpp.html" title="Solve a multivariable first order ordinary differential equation (ODEs) using semi implicit Euler met...">ode_semi_implicit_euler.cpp</a> </dd></dl>
@@ -167,19 +169,12 @@ v(x) &amp;=&amp; -\sin(x)\\
<tr>
<td class="memname">void exact_solution </td>
<td>(</td>
<td class="paramtype">const double &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>x</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>y</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -215,19 +210,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>argc</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>argv</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">char *</td> <td class="paramname"><span class="paramname"><em>argv</em>[]</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -251,7 +239,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 208</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;\tTime = &quot;</span> &lt;&lt; total_time &lt;&lt; <span class="stringliteral">&quot; ms\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 209</span> </div>
<div class="line"><span class="lineno"> 210</span> <span class="comment">/* compute exact solution for comparion */</span></div>
<div class="line"><span class="lineno"> 211</span> <a class="code hl_function" href="../../d6/dd3/ode__midpoint__euler_8cpp.html#aa13517b8e5de1b75592052db7f7e237f">save_exact_solution</a>(X0, X_MAX, step_size, Y0);</div>
<div class="line"><span class="lineno"> 211</span> <a class="code hl_function" href="#aa13517b8e5de1b75592052db7f7e237f">save_exact_solution</a>(X0, X_MAX, step_size, Y0);</div>
<div class="line"><span class="lineno"> 212</span> </div>
<div class="line"><span class="lineno"> 213</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 214</span>}</div>
@@ -259,7 +247,7 @@ Here is the call graph for this function:</div>
<div class="ttc" id="abasic_istream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a></div></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="agroup__ode_html_ga36ff0710861ca39d957046c0b09b2985"><div class="ttname"><a href="../../d6/d60/group__ode.html#ga36ff0710861ca39d957046c0b09b2985">midpoint_euler</a></div><div class="ttdeci">double midpoint_euler(double dx, double x0, double x_max, std::valarray&lt; double &gt; *y, bool save_to_file=false)</div><div class="ttdoc">Compute approximation using the midpoint-Euler method in the given limits.</div><div class="ttdef"><b>Definition</b> ode_midpoint_euler.cpp:107</div></div>
<div class="ttc" id="aode__midpoint__euler_8cpp_html_aa13517b8e5de1b75592052db7f7e237f"><div class="ttname"><a href="../../d6/dd3/ode__midpoint__euler_8cpp.html#aa13517b8e5de1b75592052db7f7e237f">save_exact_solution</a></div><div class="ttdeci">void save_exact_solution(const double &amp;X0, const double &amp;X_MAX, const double &amp;step_size, const std::valarray&lt; double &gt; &amp;Y0)</div><div class="ttdef"><b>Definition</b> ode_midpoint_euler.cpp:156</div></div>
<div class="ttc" id="aode__midpoint__euler_8cpp_html_aa13517b8e5de1b75592052db7f7e237f"><div class="ttname"><a href="#aa13517b8e5de1b75592052db7f7e237f">save_exact_solution</a></div><div class="ttdeci">void save_exact_solution(const double &amp;X0, const double &amp;X_MAX, const double &amp;step_size, const std::valarray&lt; double &gt; &amp;Y0)</div><div class="ttdef"><b>Definition</b> ode_midpoint_euler.cpp:156</div></div>
<div class="ttc" id="avalarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a></div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -278,25 +266,17 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void problem </td>
<td>(</td>
<td class="paramtype">const double &amp;&#160;</td>
<td class="paramname"><em>x</em>, </td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>x</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>y</em>, </td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>y</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *&#160;</td>
<td class="paramname"><em>dy</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; *</td> <td class="paramname"><span class="paramname"><em>dy</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -328,31 +308,22 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">void save_exact_solution </td>
<td>(</td>
<td class="paramtype">const double &amp;&#160;</td>
<td class="paramname"><em>X0</em>, </td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>X0</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double &amp;&#160;</td>
<td class="paramname"><em>X_MAX</em>, </td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>X_MAX</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double &amp;&#160;</td>
<td class="paramname"><em>step_size</em>, </td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>step_size</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>Y0</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y0</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
@@ -385,7 +356,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 174</span> }</div>
<div class="line"><span class="lineno"> 175</span> fp &lt;&lt; y[y.size() - 1] &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 176</span> </div>
<div class="line"><span class="lineno"> 177</span> <a class="code hl_function" href="../../d6/dd3/ode__midpoint__euler_8cpp.html#af3adf7b092a87868917ee5fb4255192b">exact_solution</a>(x, &amp;y);</div>
<div class="line"><span class="lineno"> 177</span> <a class="code hl_function" href="#af3adf7b092a87868917ee5fb4255192b">exact_solution</a>(x, &amp;y);</div>
<div class="line"><span class="lineno"> 178</span> </div>
<div class="line"><span class="lineno"> 179</span> x += step_size;</div>
<div class="line"><span class="lineno"> 180</span> } <span class="keywordflow">while</span> (x &lt;= X_MAX);</div>
@@ -399,7 +370,7 @@ Here is the call graph for this function:</div>
<div class="ttc" id="abasic_ofstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream.html">std::ofstream</a></div></div>
<div class="ttc" id="aclock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a></div><div class="ttdeci">T clock(T... args)</div></div>
<div class="ttc" id="aclock_t_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a></div></div>
<div class="ttc" id="aode__midpoint__euler_8cpp_html_af3adf7b092a87868917ee5fb4255192b"><div class="ttname"><a href="../../d6/dd3/ode__midpoint__euler_8cpp.html#af3adf7b092a87868917ee5fb4255192b">exact_solution</a></div><div class="ttdeci">void exact_solution(const double &amp;x, std::valarray&lt; double &gt; *y)</div><div class="ttdoc">Exact solution of the problem. Used for solution comparison.</div><div class="ttdef"><b>Definition</b> ode_midpoint_euler.cpp:66</div></div>
<div class="ttc" id="aode__midpoint__euler_8cpp_html_af3adf7b092a87868917ee5fb4255192b"><div class="ttname"><a href="#af3adf7b092a87868917ee5fb4255192b">exact_solution</a></div><div class="ttdeci">void exact_solution(const double &amp;x, std::valarray&lt; double &gt; *y)</div><div class="ttdoc">Exact solution of the problem. Used for solution comparison.</div><div class="ttdef"><b>Definition</b> ode_midpoint_euler.cpp:66</div></div>
<div class="ttc" id="aperror_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/c/perror.html">std::perror</a></div><div class="ttdeci">T perror(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -415,7 +386,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_9c6faab82c22511b50177aa2e38e2780.html">numerical_methods</a></li><li class="navelem"><a class="el" href="../../d6/dd3/ode__midpoint__euler_8cpp.html">ode_midpoint_euler.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: graph/is_graph_bipartite.cpp File Reference</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d6/dd8/is__graph__bipartite_8cpp.html','../../'); initResizable(); });
$(function(){initNavTree('d6/dd8/is__graph__bipartite_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -133,9 +135,9 @@ 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:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dd8/is__graph__bipartite_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="memitem:aa8dca7b867074164d5f45b0f3851269d" id="r_aa8dca7b867074164d5f45b0f3851269d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8dca7b867074164d5f45b0f3851269d">test</a> ()</td></tr>
<tr class="separator:aa8dca7b867074164d5f45b0f3851269d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/dd8/is__graph__bipartite_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4" id="r_ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -166,8 +168,7 @@ Example - Here is a graph G2 with 3 vertices and is not bipartite
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td class="paramtype">void</td> <td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -175,10 +176,10 @@ Example - Here is a graph G2 with 3 vertices and is not bipartite
<p>Main function </p>
<p>Testing</p>
<div class="fragment"><div class="line"><span class="lineno"> 168</span> {</div>
<div class="line"><span class="lineno"> 169</span> <a class="code hl_function" href="../../d6/dd8/is__graph__bipartite_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">/// Testing</span></div>
<div class="line"><span class="lineno"> 169</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">/// Testing</span></div>
<div class="line"><span class="lineno"> 170</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 171</span>}</div>
<div class="ttc" id="ais__graph__bipartite_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../d6/dd8/is__graph__bipartite_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdef"><b>Definition</b> is_graph_bipartite.cpp:136</div></div>
<div class="ttc" id="ais__graph__bipartite_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdef"><b>Definition</b> is_graph_bipartite.cpp:136</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -199,7 +200,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">static void test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td class="paramname"><span class="paramname"></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -259,7 +260,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_12552d7fa429bf94a2e32e5cf39f7e69.html">graph</a></li><li class="navelem"><a class="el" href="../../d6/dd8/is__graph__bipartite_8cpp.html">is_graph_bipartite.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Member List</title>
<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="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<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>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d9/dae/classdata__structures_1_1_bitset.html','../../'); initResizable(); });
$(function(){initNavTree('d9/dae/classdata__structures_1_1_bitset.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -114,7 +116,7 @@ $(document).ready(function(){initNavTree('d9/dae/classdata__structures_1_1_bitse
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>