Documentation for 341ed50da8

This commit is contained in:
github-actions
2021-09-03 19:56:17 +00:00
parent 52d0c55145
commit 08e8eb037e
3432 changed files with 71392 additions and 72953 deletions

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: search::sublist_search::Node Pages: 1 -->
<svg width="164pt" height="39pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: others/decimal_to_binary.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d06/decimal__to__binary_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,8 +92,7 @@ $(document).ready(function(){initNavTree('df/d06/decimal__to__binary_8cpp.html',
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">decimal_to_binary.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">decimal_to_binary.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
@@ -107,20 +106,51 @@ Include dependency graph for decimal_to_binary.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a9240f2e79074a2a248395258aebbfa11"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d06/decimal__to__binary_8cpp.html#a9240f2e79074a2a248395258aebbfa11">method1</a> (int number)</td></tr>
<tr class="separator:a9240f2e79074a2a248395258aebbfa11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10df57491019f0ac39b492740fb388f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d06/decimal__to__binary_8cpp.html#a10df57491019f0ac39b492740fb388f7">method2</a> (int number)</td></tr>
<tr class="separator:a10df57491019f0ac39b492740fb388f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top"><a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>main</b> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d06/decimal__to__binary_8cpp.html#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>
<div class="textblock"><p>Function to convert decimal number to binary representation. </p>
<div class="textblock"><p >Function to convert decimal number to binary representation. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a9240f2e79074a2a248395258aebbfa11"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordtype">int</span> number;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</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;Enter a number:&quot;</span>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; number;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_function" href="../../df/d06/decimal__to__binary_8cpp.html#a9240f2e79074a2a248395258aebbfa11">method1</a>(number);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_function" href="../../df/d06/decimal__to__binary_8cpp.html#a10df57491019f0ac39b492740fb388f7">method2</a>(number);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span>}</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="adecimal__to__binary_8cpp_html_a10df57491019f0ac39b492740fb388f7"><div class="ttname"><a href="../../df/d06/decimal__to__binary_8cpp.html#a10df57491019f0ac39b492740fb388f7">method2</a></div><div class="ttdeci">void method2(int number)</div><div class="ttdef"><b>Definition:</b> decimal_to_binary.cpp:27</div></div>
<div class="ttc" id="adecimal__to__binary_8cpp_html_a9240f2e79074a2a248395258aebbfa11"><div class="ttname"><a href="../../df/d06/decimal__to__binary_8cpp.html#a9240f2e79074a2a248395258aebbfa11">method1</a></div><div class="ttdeci">void method1(int number)</div><div class="ttdef"><b>Definition:</b> decimal_to_binary.cpp:11</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a9240f2e79074a2a248395258aebbfa11" name="a9240f2e79074a2a248395258aebbfa11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9240f2e79074a2a248395258aebbfa11">&#9670;&nbsp;</a></span>method1()</h2>
<div class="memitem">
@@ -135,19 +165,18 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>main</b> ()</td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>This method converts the bit representation and stores it as a decimal number. </p>
<div class="fragment"><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; {</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">int</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/remainder.html">remainder</a>, binary = 0, var = 1;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">do</span> {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/remainder.html">remainder</a> = number % 2;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; number = number / 2;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; binary = binary + (<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/remainder.html">remainder</a> * var);</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; var = var * 10;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; } <span class="keywordflow">while</span> (number &gt; 0);</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Method 1 : &quot;</span> &lt;&lt; binary &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;}</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>
<p >This method converts the bit representation and stores it as a decimal number. </p>
<div class="fragment"><div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> {</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="keywordtype">int</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/remainder.html">remainder</a>, binary = 0, var = 1;</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordflow">do</span> {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/remainder.html">remainder</a> = number % 2;</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> number = number / 2;</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> binary = binary + (<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/remainder.html">remainder</a> * var);</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> var = var * 10;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> } <span class="keywordflow">while</span> (number &gt; 0);</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</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;Method 1 : &quot;</span> &lt;&lt; binary &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"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span>}</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="aremainder_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/remainder.html">std::remainder</a></div><div class="ttdeci">T remainder(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -159,7 +188,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a10df57491019f0ac39b492740fb388f7"></a>
<a id="a10df57491019f0ac39b492740fb388f7" name="a10df57491019f0ac39b492740fb388f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10df57491019f0ac39b492740fb388f7">&#9670;&nbsp;</a></span>method2()</h2>
<div class="memitem">
@@ -174,25 +203,25 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>This method stores each bit value from LSB to MSB and then prints them back from MSB to LSB </p>
<div class="fragment"><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">int</span> num_bits = 0;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">char</span> bit_string[50];</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">do</span> {</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">bool</span> bit = number &amp; 0x01; <span class="comment">// get last bit</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span> (bit)</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; bit_string[num_bits++] = <span class="charliteral">&#39;1&#39;</span>;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; bit_string[num_bits++] = <span class="charliteral">&#39;0&#39;</span>;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; number &gt;&gt;= 1; <span class="comment">// right shift bit 1 bit</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; } <span class="keywordflow">while</span> (number &gt; 0);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Method 2 : &quot;</span>;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">while</span> (num_bits &gt;= 0)</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; bit_string[num_bits--]; <span class="comment">// print from MSB to LSB</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div>
<p >This method stores each bit value from LSB to MSB and then prints them back from MSB to LSB </p>
<div class="fragment"><div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> {</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">int</span> num_bits = 0;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordtype">char</span> bit_string[50];</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">do</span> {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">bool</span> bit = number &amp; 0x01; <span class="comment">// get last bit</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span> (bit)</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> bit_string[num_bits++] = <span class="charliteral">&#39;1&#39;</span>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> bit_string[num_bits++] = <span class="charliteral">&#39;0&#39;</span>;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> number &gt;&gt;= 1; <span class="comment">// right shift bit 1 bit</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> } <span class="keywordflow">while</span> (number &gt; 0);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><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;Method 2 : &quot;</span>;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">while</span> (num_bits &gt;= 0)</div>
<div class="line"><a id="l00042" name="l00042"></a><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; bit_string[num_bits--]; <span class="comment">// print from MSB to LSB</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</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"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -208,7 +237,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_9510827d0b234b3cc54b29892f217477.html">others</a></li><li class="navelem"><a class="el" href="../../df/d06/decimal__to__binary_8cpp.html">decimal_to_binary.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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,5 @@
var decimal__to__binary_8cpp =
[
[ "main", "df/d06/decimal__to__binary_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "method1", "df/d06/decimal__to__binary_8cpp.html#a9240f2e79074a2a248395258aebbfa11", null ],
[ "method2", "df/d06/decimal__to__binary_8cpp.html#a10df57491019f0ac39b492740fb388f7", null ]
];

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: method2 Pages: 1 -->
<svg width="153pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: method1 Pages: 1 -->
<svg width="153pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: math/fibonacci.cpp Pages: 1 -->
<svg width="130pt" height="84pt"

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: pancake_sort Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d10/namespacepancake__sort.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,22 +90,21 @@ $(document).ready(function(){initNavTree('df/d10/namespacepancake__sort.html','.
</div>
<div class="header">
<div class="headertitle">
<div class="title">pancake_sort Namespace Reference</div> </div>
<div class="headertitle"><div class="title">pancake_sort Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Functions for <a href="https://en.wikipedia.org/wiki/Pancake_sorting">Pancake sort</a> algorithm.
<p>Functions for <a href="https://en.wikipedia.org/wiki/Pancake_sorting" target="_blank">Pancake sort</a> algorithm.
<a href="../../df/d10/namespacepancake__sort.html#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/Pancake_sorting">Pancake sort</a> algorithm. </p>
<div class="textblock"><p >Functions for <a href="https://en.wikipedia.org/wiki/Pancake_sorting" target="_blank">Pancake sort</a> algorithm. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../df/d10/namespacepancake__sort.html">pancake_sort</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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<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"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('de/d9d/classdata__structures_1_1linked__list_1_1link.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,24 +90,23 @@ $(document).ready(function(){initNavTree('de/d9d/classdata__structures_1_1linked
</div>
<div class="header">
<div class="headertitle">
<div class="title">data_structures::linked_list::link Member List</div> </div>
<div class="headertitle"><div class="title">data_structures::linked_list::link Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html">data_structures::linked_list::link</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html#aba4672fbc40c38962d1510b843a577bb">link</a>(int value=0)</td><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html">data_structures::linked_list::link</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html#af94c06f3220e5406245680f58b8e7081">psucc</a></td><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html">data_structures::linked_list::link</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html#af94c06f3220e5406245680f58b8e7081">psucc</a></td><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html">data_structures::linked_list::link</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html#ac121ce37b6ea864b160ebcada0bce936">pvalue</a></td><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html">data_structures::linked_list::link</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html#a28781355a468a1b95278ffe6277f3b6c">succ</a>()</td><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html">data_structures::linked_list::link</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html#af6bbeb9bfde1683ba917071edeedd5c3">succ</a>()</td><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html">data_structures::linked_list::link</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html#acf96f3a9a1d3b15268c38e8822300c11">val</a>()</td><td class="entry"><a class="el" href="../../de/d9d/classdata__structures_1_1linked__list_1_1link.html">data_structures::linked_list::link</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- 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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: sorting/dnf_sort.cpp Pages: 1 -->
<svg width="269pt" height="84pt"

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers/elliptic_curve_key_exchange.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d2c/elliptic__curve__key__exchange_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -95,12 +95,11 @@ $(document).ready(function(){initNavTree('df/d2c/elliptic__curve__key__exchange_
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">elliptic_curve_key_exchange.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">elliptic_curve_key_exchange.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Implementation of <a href="https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange">Elliptic Curve Diffie Hellman Key Exchange</a>.
<p>Implementation of <a href="https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange" target="_blank">Elliptic Curve Diffie Hellman Key Exchange</a>.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -112,31 +111,31 @@ Include dependency graph for elliptic_curve_key_exchange.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">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><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d6/d4e/namespaceciphers"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></td></tr>
<tr class="memdesc:d6/d4e/namespaceciphers"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a href="https://en.wikipedia.org/wiki/Base64">Base64 Encoding and Decoding</a> <br /></td></tr>
<tr class="memitem:d6/d4e/namespaceciphers"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></td></tr>
<tr class="memdesc:d6/d4e/namespaceciphers"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a href="https://en.wikipedia.org/wiki/Base64" target="_blank">Base64 Encoding and Decoding</a> <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html">ciphers::elliptic_curve_key_exchange</a></td></tr>
<tr class="memitem:df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html">ciphers::elliptic_curve_key_exchange</a></td></tr>
<tr class="memdesc:df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace <a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html" title="namespace elliptic_curve_key_exchange">elliptic_curve_key_exchange</a> <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:af0a6e3521629c25c2b5d620f26429830"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">ciphers::elliptic_curve_key_exchange::Point</a></td></tr>
<tr class="memdesc:af0a6e3521629c25c2b5d620f26429830"><td class="mdescLeft">&#160;</td><td class="mdescRight">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="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">More...</a><br /></td></tr>
<tr class="separator:af0a6e3521629c25c2b5d620f26429830"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">ciphers::elliptic_curve_key_exchange::exp</a> (<a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> number, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b">power</a>, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;mod)</td></tr>
<tr class="memdesc:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calculates number raised to exponent power under modulo mod using <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp">Modular Exponentiation</a>. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">More...</a><br /></td></tr>
<tr class="memitem:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">ciphers::elliptic_curve_key_exchange::exp</a> (<a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> number, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a702a9fc90e79b05b863cc4efa26ae2ec">power</a>, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;mod)</td></tr>
<tr class="memdesc:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calculates number raised to exponent power under modulo mod using <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp" target="_blank">Modular Exponentiation</a>. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">More...</a><br /></td></tr>
<tr class="separator:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d8/dc8/struct_point.html">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">ciphers::elliptic_curve_key_exchange::addition</a> (<a class="el" href="../../d8/dc8/struct_point.html">Point</a> a, <a class="el" href="../../d8/dc8/struct_point.html">Point</a> b, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;curve_a_coeff, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> mod)</td></tr>
<tr class="memdesc:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Addition of points. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">More...</a><br /></td></tr>
@@ -158,10 +157,10 @@ Functions</h2></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>
<div class="textblock"><p>Implementation of <a href="https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange">Elliptic Curve Diffie Hellman Key Exchange</a>. </p>
<p>The ECDH (Elliptic Curve DiffieHellman Key Exchange) is anonymous key agreement scheme, which allows two parties, each having an elliptic-curve publicprivate key pair, to establish a shared secret over an insecure channel. ECDH is very similar to the classical DHKE (DiffieHellman Key Exchange) algorithm, but it uses ECC point multiplication instead of modular exponentiations. ECDH is based on the following property of EC points: (a * G) * b = (b * G) * a If we have two secret numbers a and b (two private keys, belonging to Alice and Bob) and an ECC elliptic curve with generator point G, we can exchange over an insecure channel the values (a * G) and (b * G) (the public keys of Alice and Bob) and then we can derive a shared secret: secret = (a * G) * b = (b * G) * a. Pretty simple. The above equation takes the following form: alicePubKey * bobPrivKey = bobPubKey * alicePrivKey = secret </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/AshishYUO">Ashish Daulatabad</a> </dd></dl>
<div class="textblock"><p >Implementation of <a href="https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange" target="_blank">Elliptic Curve Diffie Hellman Key Exchange</a>. </p>
<p >The ECDH (Elliptic Curve DiffieHellman Key Exchange) is anonymous key agreement scheme, which allows two parties, each having an elliptic-curve publicprivate key pair, to establish a shared secret over an insecure channel. ECDH is very similar to the classical DHKE (DiffieHellman Key Exchange) algorithm, but it uses ECC point multiplication instead of modular exponentiations. ECDH is based on the following property of EC points: (a * G) * b = (b * G) * a If we have two secret numbers a and b (two private keys, belonging to Alice and Bob) and an ECC elliptic curve with generator point G, we can exchange over an insecure channel the values (a * G) and (b * G) (the public keys of Alice and Bob) and then we can derive a shared secret: secret = (a * G) * b = (b * G) * a. Pretty simple. The above equation takes the following form: alicePubKey * bobPrivKey = bobPubKey * alicePrivKey = secret </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/AshishYUO" target="_blank">Ashish Daulatabad</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -179,12 +178,12 @@ 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"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4">uint128_t_tests</a>(); <span class="comment">// running predefined 128-bit unsigned integer tests</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae">uint256_t_tests</a>(); <span class="comment">// running predefined 256-bit unsigned integer tests</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// running self-test implementations</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> {</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <a class="code hl_function" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4">uint128_t_tests</a>(); <span class="comment">// running predefined 128-bit unsigned integer tests</span></div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <a class="code hl_function" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae">uint256_t_tests</a>(); <span class="comment">// running predefined 256-bit unsigned integer tests</span></div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> <a class="code hl_function" href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// running self-test implementations</span></div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span>}</div>
<div class="ttc" id="aelliptic__curve__key__exchange_8cpp_html_a37775d1724ffe404c088dabbc8da91ae"><div class="ttname"><a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a37775d1724ffe404c088dabbc8da91ae">uint256_t_tests</a></div><div class="ttdeci">static void uint256_t_tests()</div><div class="ttdoc">Function to test the uint256_t header.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:230</div></div>
<div class="ttc" id="aelliptic__curve__key__exchange_8cpp_html_a8800c8a84d77dadadb05ad5e83b77ef4"><div class="ttname"><a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#a8800c8a84d77dadadb05ad5e83b77ef4">uint128_t_tests</a></div><div class="ttdeci">static void uint128_t_tests()</div><div class="ttdoc">Function to test the uint128_t header.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:197</div></div>
<div class="ttc" id="aelliptic__curve__key__exchange_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../df/d2c/elliptic__curve__key__exchange_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Function to test the provided algorithm above.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:267</div></div>
@@ -197,7 +196,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -222,54 +221,54 @@ Here is the call graph for this function:</div>
<p>Function to test the provided algorithm above. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; {</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// demonstration of key exchange using curve secp112r1</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// Equation of the form y^2 = (x^3 + ax + b) % P (here p is mod)</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> a(<span class="stringliteral">&quot;4451685225093714772084598273548424&quot;</span>),</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; b(<span class="stringliteral">&quot;2061118396808653202902996166388514&quot;</span>),</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; mod(<span class="stringliteral">&quot;4451685225093714772084598273548427&quot;</span>);</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">// Generator value: is pre-defined for the given curve</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> ptr = {</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;188281465057972534892223778713752&quot;</span>),</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;3419875491033170827167861896082688&quot;</span>)};</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">// Shared key generation.</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// For alice</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;For alice:\n&quot;</span>;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// Alice&#39;s private key (can be generated randomly)</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> alice_private_key(<span class="stringliteral">&quot;164330438812053169644452143505618&quot;</span>);</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> alice_public_key =</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(ptr, a, alice_private_key, mod);</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\tPrivate key: &quot;</span> &lt;&lt; alice_private_key &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\tPublic Key: &quot;</span> &lt;&lt; alice_public_key &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// For Bob</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;For Bob:\n&quot;</span>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// Bob&#39;s private key (can be generated randomly)</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> bob_private_key(<span class="stringliteral">&quot;1959473333748537081510525763478373&quot;</span>);</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> bob_public_key =</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(ptr, a, bob_private_key, mod);</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\tPrivate key: &quot;</span> &lt;&lt; bob_private_key &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\tPublic Key: &quot;</span> &lt;&lt; bob_public_key &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// After public key exchange, create a shared key for communication.</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="comment">// create shared key:</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> alice_shared_key = <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; bob_public_key, a,</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; alice_private_key, mod),</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; bob_shared_key = <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; alice_public_key, a,</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; bob_private_key, mod);</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; </div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Shared keys:\n&quot;</span>;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; alice_shared_key &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; bob_shared_key &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; </div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">// Check whether shared keys are equal</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; assert(alice_shared_key == bob_shared_key);</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> {</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="comment">// demonstration of key exchange using curve secp112r1</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="comment">// Equation of the form y^2 = (x^3 + ax + b) % P (here p is mod)</span></div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> a(<span class="stringliteral">&quot;4451685225093714772084598273548424&quot;</span>),</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> b(<span class="stringliteral">&quot;2061118396808653202902996166388514&quot;</span>),</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> mod(<span class="stringliteral">&quot;4451685225093714772084598273548427&quot;</span>);</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> </div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="comment">// Generator value: is pre-defined for the given curve</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <a class="code hl_struct" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> ptr = {</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;188281465057972534892223778713752&quot;</span>),</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;3419875491033170827167861896082688&quot;</span>)};</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// Shared key generation.</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="comment">// For alice</span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</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;For alice:\n&quot;</span>;</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="comment">// Alice&#39;s private key (can be generated randomly)</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> alice_private_key(<span class="stringliteral">&quot;164330438812053169644452143505618&quot;</span>);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <a class="code hl_struct" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> alice_public_key =</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(ptr, a, alice_private_key, mod);</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</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;\tPrivate key: &quot;</span> &lt;&lt; alice_private_key &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</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;\tPublic Key: &quot;</span> &lt;&lt; alice_public_key &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"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> </div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <span class="comment">// For Bob</span></div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</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;For Bob:\n&quot;</span>;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="comment">// Bob&#39;s private key (can be generated randomly)</span></div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> bob_private_key(<span class="stringliteral">&quot;1959473333748537081510525763478373&quot;</span>);</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <a class="code hl_struct" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> bob_public_key =</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(ptr, a, bob_private_key, mod);</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</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;\tPrivate key: &quot;</span> &lt;&lt; bob_private_key &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</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;\tPublic Key: &quot;</span> &lt;&lt; bob_public_key &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"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> </div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="comment">// After public key exchange, create a shared key for communication.</span></div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="comment">// create shared key:</span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <a class="code hl_struct" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a> alice_shared_key = <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> bob_public_key, a,</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> alice_private_key, mod),</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> bob_shared_key = <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#a17f3d667241b88115a95282cdd719cb2">multiply</a>(</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> alice_public_key, a,</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> bob_private_key, mod);</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</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;Shared keys:\n&quot;</span>;</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; alice_shared_key &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"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; bob_shared_key &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"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> </div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="comment">// Check whether shared keys are equal</span></div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> assert(alice_shared_key == bob_shared_key);</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</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="aclassuint256__t_html"><div class="ttname"><a href="../../d1/d83/classuint256__t.html">uint256_t</a></div><div class="ttdoc">class for 256-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:33</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>
@@ -284,7 +283,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a8800c8a84d77dadadb05ad5e83b77ef4"></a>
<a id="a8800c8a84d77dadadb05ad5e83b77ef4" name="a8800c8a84d77dadadb05ad5e83b77ef4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8800c8a84d77dadadb05ad5e83b77ef4">&#9670;&nbsp;</a></span>uint128_t_tests()</h2>
<div class="memitem">
@@ -309,38 +308,38 @@ Here is the call graph for this function:</div>
<p>Function to test the <a class="el" href="../../db/d9a/classuint128__t.html" title="class for 128-bit unsigned integer">uint128_t</a> header. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// 1st test: Operations test</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a> a(<span class="stringliteral">&quot;122&quot;</span>), b(<span class="stringliteral">&quot;2312&quot;</span>);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; assert(a + b == 2434);</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; assert(b - a == 2190);</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; assert(a * b == 282064);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; assert(b / a == 18);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; assert(b % a == 116);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; assert((a &amp; b) == 8);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; assert((a | b) == 2426);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; assert((a ^ b) == 2418);</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; assert((a &lt;&lt; 64) == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;2250502776992565297152&quot;</span>));</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; assert((b &gt;&gt; 7) == 18);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// 2nd test: Operations test</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; a = <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424232142122&quot;</span>);</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; b = <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;23123212&quot;</span>);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; assert(a + b == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424255265334&quot;</span>));</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; assert(a - b == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424209018910&quot;</span>));</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; assert(a * b == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;284910839733861759501135864&quot;</span>));</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; assert(a / b == 532859423865LL);</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; assert(a % b == 3887742);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; assert((a &amp; b) == 18912520);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; assert((a | b) == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424236352814&quot;</span>));</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; assert((a ^ b) == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424217440294&quot;</span>));</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; assert((a &lt;&lt; 64) == <a class="code" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;227290107637132170748078080907806769152&quot;</span>));</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> {</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// 1st test: Operations test</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> a(<span class="stringliteral">&quot;122&quot;</span>), b(<span class="stringliteral">&quot;2312&quot;</span>);</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> assert(a + b == 2434);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> assert(b - a == 2190);</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> assert(a * b == 282064);</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> assert(b / a == 18);</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> assert(b % a == 116);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> assert((a &amp; b) == 8);</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> assert((a | b) == 2426);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> assert((a ^ b) == 2418);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> assert((a &lt;&lt; 64) == <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;2250502776992565297152&quot;</span>));</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> assert((b &gt;&gt; 7) == 18);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="comment">// 2nd test: Operations test</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> a = <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424232142122&quot;</span>);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> b = <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;23123212&quot;</span>);</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> assert(a + b == <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424255265334&quot;</span>));</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> assert(a - b == <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424209018910&quot;</span>));</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> assert(a * b == <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;284910839733861759501135864&quot;</span>));</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> assert(a / b == 532859423865LL);</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> assert(a % b == 3887742);</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> assert((a &amp; b) == 18912520);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> assert((a | b) == <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424236352814&quot;</span>));</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> assert((a ^ b) == <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;12321421424217440294&quot;</span>));</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> assert((a &lt;&lt; 64) == <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(<span class="stringliteral">&quot;227290107637132170748078080907806769152&quot;</span>));</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span>}</div>
<div class="ttc" id="aclassuint128__t_html"><div class="ttname"><a href="../../db/d9a/classuint128__t.html">uint128_t</a></div><div class="ttdoc">class for 128-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> uint128_t.hpp:59</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a37775d1724ffe404c088dabbc8da91ae"></a>
<a id="a37775d1724ffe404c088dabbc8da91ae" name="a37775d1724ffe404c088dabbc8da91ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37775d1724ffe404c088dabbc8da91ae">&#9670;&nbsp;</a></span>uint256_t_tests()</h2>
<div class="memitem">
@@ -365,37 +364,37 @@ Here is the call graph for this function:</div>
<p>Function to test the <a class="el" href="../../d1/d83/classuint256__t.html" title="class for 256-bit unsigned integer">uint256_t</a> header. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// 1st test: Operations test</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> a(<span class="stringliteral">&quot;122&quot;</span>), b(<span class="stringliteral">&quot;2312&quot;</span>);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; assert(a + b == 2434);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; assert(b - a == 2190);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; assert(a * b == 282064);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; assert(b / a == 18);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; assert(b % a == 116);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; assert((a &amp; b) == 8);</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; assert((a | b) == 2426);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; assert((a ^ b) == 2418);</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; assert((a &lt;&lt; 64) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;2250502776992565297152&quot;</span>));</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; assert((b &gt;&gt; 7) == 18);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">// 2nd test: Operations test</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; a = <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;12321423124513251424232142122&quot;</span>);</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; b = <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;23124312431243243215354315132413213212&quot;</span>);</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; assert(a + b == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;23124312443564666339867566556645355334&quot;</span>));</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">// Since a &lt; b, the value is greater</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; assert(a - b == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;115792089237316195423570985008687907853246860353&quot;</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="stringliteral">&quot;221642219366742944204948568846&quot;</span>));</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; assert(a * b == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;284924437928789743312147393953938013677909398222&quot;</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="stringliteral">&quot;169728183872115864&quot;</span>));</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; assert(b / a == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;1876756621&quot;</span>));</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; assert(b % a == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;2170491202688962563936723450&quot;</span>));</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; assert((a &amp; b) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;3553901085693256462344&quot;</span>));</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; assert((a | b) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;23124312443564662785966480863388892990&quot;</span>));</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; assert((a ^ b) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;23124312443564659232065395170132430646&quot;</span>));</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; assert((a &lt;&lt; 128) == <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;4192763024643754272961909047609369343091683&quot;</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="stringliteral">&quot;376561852756163540549632&quot;</span>));</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// 1st test: Operations test</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> a(<span class="stringliteral">&quot;122&quot;</span>), b(<span class="stringliteral">&quot;2312&quot;</span>);</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> assert(a + b == 2434);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> assert(b - a == 2190);</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> assert(a * b == 282064);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> assert(b / a == 18);</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> assert(b % a == 116);</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> assert((a &amp; b) == 8);</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> assert((a | b) == 2426);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> assert((a ^ b) == 2418);</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> assert((a &lt;&lt; 64) == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;2250502776992565297152&quot;</span>));</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> assert((b &gt;&gt; 7) == 18);</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="comment">// 2nd test: Operations test</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> a = <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;12321423124513251424232142122&quot;</span>);</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> b = <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;23124312431243243215354315132413213212&quot;</span>);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> assert(a + b == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;23124312443564666339867566556645355334&quot;</span>));</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// Since a &lt; b, the value is greater</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> assert(a - b == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;115792089237316195423570985008687907853246860353&quot;</span></div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="stringliteral">&quot;221642219366742944204948568846&quot;</span>));</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> assert(a * b == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;284924437928789743312147393953938013677909398222&quot;</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="stringliteral">&quot;169728183872115864&quot;</span>));</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> assert(b / a == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;1876756621&quot;</span>));</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> assert(b % a == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;2170491202688962563936723450&quot;</span>));</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> assert((a &amp; b) == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;3553901085693256462344&quot;</span>));</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> assert((a | b) == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;23124312443564662785966480863388892990&quot;</span>));</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> assert((a ^ b) == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;23124312443564659232065395170132430646&quot;</span>));</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> assert((a &lt;&lt; 128) == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<span class="stringliteral">&quot;4192763024643754272961909047609369343091683&quot;</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="stringliteral">&quot;376561852756163540549632&quot;</span>));</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span>}</div>
</div><!-- fragment -->
</div>
</div>
@@ -405,7 +404,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="../../df/d2c/elliptic__curve__key__exchange_8cpp.html">elliptic_curve_key_exchange.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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,6 @@
var elliptic__curve__key__exchange_8cpp =
[
[ "Point", "d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html", "d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point" ],
[ "ciphers::elliptic_curve_key_exchange::Point", "d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html", "d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point" ],
[ "Point", "df/d2c/elliptic__curve__key__exchange_8cpp.html#af0a6e3521629c25c2b5d620f26429830", null ],
[ "addition", "df/d2c/elliptic__curve__key__exchange_8cpp.html#acc5fe9c2032fb7582c38a20d1fa69bcf", null ],
[ "exp", "df/d2c/elliptic__curve__key__exchange_8cpp.html#ac00616a4e40d3cd5cfb4da87d9ff9af0", null ],

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test Pages: 1 -->
<!--zoomable 78 -->

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test Pages: 1 -->
<svg width="583pt" height="78pt"

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<!--zoomable 126 -->

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="708pt" height="126pt"

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: backtracking/minimax.cpp Pages: 1 -->
<svg width="259pt" height="84pt"

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: search/interpolation_search2.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d39/interpolation__search2_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,12 +92,11 @@ $(document).ready(function(){initNavTree('df/d39/interpolation__search2_8cpp.htm
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">interpolation_search2.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">interpolation_search2.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a href="https://en.wikipedia.org/wiki/Interpolation_search">Interpolation search</a> algorithm
<p><a href="https://en.wikipedia.org/wiki/Interpolation_search" target="_blank">Interpolation search</a> algorithm
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
@@ -107,7 +106,7 @@ Include dependency graph for interpolation_search2.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aa3ec659ec8394d186c761df81ad1f629"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d39/interpolation__search2_8cpp.html#aa3ec659ec8394d186c761df81ad1f629">InterpolationSearch</a> (int A[], int n, int x)</td></tr>
<tr class="separator:aa3ec659ec8394d186c761df81ad1f629"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -115,9 +114,9 @@ Functions</h2></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>
<div class="textblock"><p><a href="https://en.wikipedia.org/wiki/Interpolation_search">Interpolation search</a> algorithm </p>
<div class="textblock"><p ><a href="https://en.wikipedia.org/wiki/Interpolation_search" target="_blank">Interpolation search</a> algorithm </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="aa3ec659ec8394d186c761df81ad1f629"></a>
<a id="aa3ec659ec8394d186c761df81ad1f629" name="aa3ec659ec8394d186c761df81ad1f629"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3ec659ec8394d186c761df81ad1f629">&#9670;&nbsp;</a></span>InterpolationSearch()</h2>
<div class="memitem">
@@ -148,7 +147,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>function to search the value in an array using interpolation search </p><dl class="params"><dt>Parameters</dt><dd>
<p >function to search the value in an array using interpolation search </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>array to search in </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>value to search for </td></tr>
@@ -159,25 +158,25 @@ Functions</h2></td></tr>
<dl class="section return"><dt>Returns</dt><dd>index where the value is found </dd>
<dd>
-1 if not found </dd></dl>
<div class="fragment"><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; {</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">int</span> low = 0;</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">int</span> high = n - 1;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">while</span> (low &lt;= high) {</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">int</span> mid = low + (((high - 1) * (x - A[low])) / (A[high] - A[low]));</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">if</span> (x == A[mid])</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">return</span> mid; <span class="comment">// Found x, return (exit)</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (x &lt; A[mid])</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; high = mid - 1; <span class="comment">// X lies before mid</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; low = mid + 1; <span class="comment">// x lies after mid</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; }</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> {</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">int</span> low = 0;</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordtype">int</span> high = n - 1;</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordflow">while</span> (low &lt;= high) {</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">int</span> mid = low + (((high - 1) * (x - A[low])) / (A[high] - A[low]));</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">if</span> (x == A[mid])</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">return</span> mid; <span class="comment">// Found x, return (exit)</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (x &lt; A[mid])</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> high = mid - 1; <span class="comment">// X lies before mid</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> low = mid + 1; <span class="comment">// x lies after mid</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> }</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -192,19 +191,19 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>main function </p>
<p>&lt; passed array A inside the InterpolationSearch function</p>
<div class="fragment"><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">int</span> A[] = {2, 4, 5, 7, 13, 14, 15, 23};</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">int</span> x = 17;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> ///&lt; passed array A inside the InterpolationSearch function</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"></span> <span class="keywordtype">int</span> index = <a class="code" href="../../df/d39/interpolation__search2_8cpp.html#aa3ec659ec8394d186c761df81ad1f629">InterpolationSearch</a>(A, 8, x);</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span> (index &lt; 0)</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Number &quot;</span> &lt;&lt; x &lt;&lt; <span class="stringliteral">&quot; not found&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Number &quot;</span> &lt;&lt; x &lt;&lt; <span class="stringliteral">&quot; is at &quot;</span> &lt;&lt; index &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div>
<p >main function </p>
<p >&lt; passed array A inside the InterpolationSearch function</p>
<div class="fragment"><div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">int</span> A[] = {2, 4, 5, 7, 13, 14, 15, 23};</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">int</span> x = 17;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"></span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"> ///&lt; passed array A inside the InterpolationSearch function</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"></span> <span class="keywordtype">int</span> index = <a class="code hl_function" href="../../df/d39/interpolation__search2_8cpp.html#aa3ec659ec8394d186c761df81ad1f629">InterpolationSearch</a>(A, 8, x);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> (index &lt; 0)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</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;Number &quot;</span> &lt;&lt; x &lt;&lt; <span class="stringliteral">&quot; not found&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"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</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;Number &quot;</span> &lt;&lt; x &lt;&lt; <span class="stringliteral">&quot; is at &quot;</span> &lt;&lt; index &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"><a id="l00042" name="l00042"></a><span class="lineno"> 42</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="ainterpolation__search2_8cpp_html_aa3ec659ec8394d186c761df81ad1f629"><div class="ttname"><a href="../../df/d39/interpolation__search2_8cpp.html#aa3ec659ec8394d186c761df81ad1f629">InterpolationSearch</a></div><div class="ttdeci">int InterpolationSearch(int A[], int n, int x)</div><div class="ttdef"><b>Definition:</b> interpolation_search2.cpp:15</div></div>
@@ -223,7 +222,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_19b2bf9199a15c634a08b1ede1dd896a.html">search</a></li><li class="navelem"><a class="el" href="../../df/d39/interpolation__search2_8cpp.html">interpolation_search2.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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="185pt" height="66pt"

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: search/exponential_search.cpp Pages: 1 -->
<svg width="258pt" height="95pt"

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: data_structures/binary_search_tree2.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d42/binary__search__tree2_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('df/d42/binary__search__tree2_8cpp.html
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">binary_search_tree2.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">binary_search_tree2.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>A generic <a href="https://en.wikipedia.org/wiki/Binary_search_tree">binary search tree</a> implementation.
<p>A generic <a href="https://en.wikipedia.org/wiki/Binary_search_tree" target="_blank">binary search tree</a> implementation.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;functional&gt;</code><br />
@@ -112,7 +111,7 @@ Include dependency graph for binary_search_tree2.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Binary Search Tree class. <a href="../../d9/dde/classbinary__search__tree.html#details">More...</a><br /></td></tr>
@@ -121,10 +120,10 @@ Classes</h2></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A struct to represent a node in the Binary Search Tree. <a href="../../dd/db6/structbinary__search__tree_1_1bst__node.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a8c882f43e1e52948a7841a8bfb091350"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d42/binary__search__tree2_8cpp.html#a8c882f43e1e52948a7841a8bfb091350">test_insert</a> ()</td></tr>
<tr class="memdesc:a8c882f43e1e52948a7841a8bfb091350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for testing <a class="el" href="../../d8/dee/avltree_8cpp.html#aa7cd8a68075fae1c33df41233c1bed6a">insert()</a>. <a href="../../df/d42/binary__search__tree2_8cpp.html#a8c882f43e1e52948a7841a8bfb091350">More...</a><br /></td></tr>
<tr class="memdesc:a8c882f43e1e52948a7841a8bfb091350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for testing <a class="el" href="../../d8/dee/avltree_8cpp.html#a2473fe7416332495b2678ebe89652e4b">insert()</a>. <a href="../../df/d42/binary__search__tree2_8cpp.html#a8c882f43e1e52948a7841a8bfb091350">More...</a><br /></td></tr>
<tr class="separator:a8c882f43e1e52948a7841a8bfb091350"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1333c3ea06dcad896ee204bbd407c4e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d42/binary__search__tree2_8cpp.html#ab1333c3ea06dcad896ee204bbd407c4e">test_remove</a> ()</td></tr>
<tr class="memdesc:ab1333c3ea06dcad896ee204bbd407c4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for testing <a class="el" href="../../d0/d65/namespacedouble__hashing.html#a28083ecac6eb94b643281875c8665931">remove()</a>. <a href="../../df/d42/binary__search__tree2_8cpp.html#ab1333c3ea06dcad896ee204bbd407c4e">More...</a><br /></td></tr>
@@ -147,15 +146,50 @@ Functions</h2></td></tr>
<tr class="memitem:a94b76f781fcbe1ad0e3397ace6bb1965"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d42/binary__search__tree2_8cpp.html#a94b76f781fcbe1ad0e3397ace6bb1965">test_get_elements_postorder</a> ()</td></tr>
<tr class="memdesc:a94b76f781fcbe1ad0e3397ace6bb1965"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for testing get_elements_postorder(). <a href="../../df/d42/binary__search__tree2_8cpp.html#a94b76f781fcbe1ad0e3397ace6bb1965">More...</a><br /></td></tr>
<tr class="separator:a94b76f781fcbe1ad0e3397ace6bb1965"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top"><a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>main</b> ()</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d42/binary__search__tree2_8cpp.html#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>
<div class="textblock"><p>A generic <a href="https://en.wikipedia.org/wiki/Binary_search_tree">binary search tree</a> implementation. </p>
<div class="textblock"><p >A generic <a href="https://en.wikipedia.org/wiki/Binary_search_tree" target="_blank">binary search tree</a> implementation. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d3/d26/binary__search__tree_8cpp.html" title="A simple tree implementation using structured nodes.">binary_search_tree.cpp</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a1d42876440ac5346e2850a32497385c3"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> {</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <a class="code hl_function" href="../../df/d42/binary__search__tree2_8cpp.html#a8c882f43e1e52948a7841a8bfb091350">test_insert</a>();</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> <a class="code hl_function" href="../../df/d42/binary__search__tree2_8cpp.html#ab1333c3ea06dcad896ee204bbd407c4e">test_remove</a>();</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <a class="code hl_function" href="../../df/d42/binary__search__tree2_8cpp.html#a1d42876440ac5346e2850a32497385c3">test_contains</a>();</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <a class="code hl_function" href="../../df/d42/binary__search__tree2_8cpp.html#a9856b68e2cba50d2e26a1cbe374e0365">test_find_max</a>();</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <a class="code hl_function" href="../../df/d42/binary__search__tree2_8cpp.html#af2847a901160fd45b4044550e9921cb4">test_find_min</a>();</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <a class="code hl_function" href="../../df/d42/binary__search__tree2_8cpp.html#a06f35064850e891d6fda0093c0d9ee6e">test_get_elements_inorder</a>();</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <a class="code hl_function" href="../../df/d42/binary__search__tree2_8cpp.html#ab00b8d0f21aeb5fbddb6decf3bcb640a">test_get_elements_preorder</a>();</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <a class="code hl_function" href="../../df/d42/binary__search__tree2_8cpp.html#a94b76f781fcbe1ad0e3397ace6bb1965">test_get_elements_postorder</a>();</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span>}</div>
<div class="ttc" id="abinary__search__tree2_8cpp_html_a06f35064850e891d6fda0093c0d9ee6e"><div class="ttname"><a href="../../df/d42/binary__search__tree2_8cpp.html#a06f35064850e891d6fda0093c0d9ee6e">test_get_elements_inorder</a></div><div class="ttdeci">static void test_get_elements_inorder()</div><div class="ttdoc">Function for testing get_elements_inorder().</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:497</div></div>
<div class="ttc" id="abinary__search__tree2_8cpp_html_a1d42876440ac5346e2850a32497385c3"><div class="ttname"><a href="../../df/d42/binary__search__tree2_8cpp.html#a1d42876440ac5346e2850a32497385c3">test_contains</a></div><div class="ttdeci">static void test_contains()</div><div class="ttdoc">Function for testing contains().</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:428</div></div>
<div class="ttc" id="abinary__search__tree2_8cpp_html_a8c882f43e1e52948a7841a8bfb091350"><div class="ttname"><a href="../../df/d42/binary__search__tree2_8cpp.html#a8c882f43e1e52948a7841a8bfb091350">test_insert</a></div><div class="ttdeci">static void test_insert()</div><div class="ttdoc">Function for testing insert().</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:357</div></div>
<div class="ttc" id="abinary__search__tree2_8cpp_html_a94b76f781fcbe1ad0e3397ace6bb1965"><div class="ttname"><a href="../../df/d42/binary__search__tree2_8cpp.html#a94b76f781fcbe1ad0e3397ace6bb1965">test_get_elements_postorder</a></div><div class="ttdeci">static void test_get_elements_postorder()</div><div class="ttdoc">Function for testing get_elements_postorder().</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:539</div></div>
<div class="ttc" id="abinary__search__tree2_8cpp_html_a9856b68e2cba50d2e26a1cbe374e0365"><div class="ttname"><a href="../../df/d42/binary__search__tree2_8cpp.html#a9856b68e2cba50d2e26a1cbe374e0365">test_find_max</a></div><div class="ttdeci">static void test_find_max()</div><div class="ttdoc">Function for testing find_max().</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:474</div></div>
<div class="ttc" id="abinary__search__tree2_8cpp_html_ab00b8d0f21aeb5fbddb6decf3bcb640a"><div class="ttname"><a href="../../df/d42/binary__search__tree2_8cpp.html#ab00b8d0f21aeb5fbddb6decf3bcb640a">test_get_elements_preorder</a></div><div class="ttdeci">static void test_get_elements_preorder()</div><div class="ttdoc">Function for testing get_elements_preorder().</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:518</div></div>
<div class="ttc" id="abinary__search__tree2_8cpp_html_ab1333c3ea06dcad896ee204bbd407c4e"><div class="ttname"><a href="../../df/d42/binary__search__tree2_8cpp.html#ab1333c3ea06dcad896ee204bbd407c4e">test_remove</a></div><div class="ttdeci">static void test_remove()</div><div class="ttdoc">Function for testing remove().</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:391</div></div>
<div class="ttc" id="abinary__search__tree2_8cpp_html_af2847a901160fd45b4044550e9921cb4"><div class="ttname"><a href="../../df/d42/binary__search__tree2_8cpp.html#af2847a901160fd45b4044550e9921cb4">test_find_min</a></div><div class="ttdeci">static void test_find_min()</div><div class="ttdoc">Function for testing find_min().</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:451</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a1d42876440ac5346e2850a32497385c3" name="a1d42876440ac5346e2850a32497385c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d42876440ac5346e2850a32497385c3">&#9670;&nbsp;</a></span>test_contains()</h2>
<div class="memitem">
@@ -180,23 +214,23 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>main</b> ()</td></tr>
<p>Function for testing contains(). </p>
<dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Testing BST contains...&quot;</span>;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; </div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; </div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(5));</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(4));</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(3));</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(6));</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; assert(!tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(999));</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;ok&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> {</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</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;Testing BST contains...&quot;</span>;</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> </div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> <a class="code hl_class" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> </div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(5));</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(4));</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(3));</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(6));</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> assert(!tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(999));</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> </div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</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;ok&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"><a id="l00444" name="l00444"></a><span class="lineno"> 444</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="aclassbinary__search__tree_html"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html">binary_search_tree</a></div><div class="ttdoc">The Binary Search Tree class.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:19</div></div>
<div class="ttc" id="aclassbinary__search__tree_html_a9d1e7e10efa74d741bf48cf032df3778"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">binary_search_tree::insert</a></div><div class="ttdeci">bool insert(std::unique_ptr&lt; bst_node &gt; &amp;node, T new_value)</div><div class="ttdoc">Recursive function to insert a value into the BST.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:89</div></div>
@@ -205,13 +239,13 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>main</b> ()</td></tr>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a1d42876440ac5346e2850a32497385c3_cgraph.svg" width="295" height="170"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a1d42876440ac5346e2850a32497385c3_cgraph.svg" width="295" height="218"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a9856b68e2cba50d2e26a1cbe374e0365"></a>
<a id="a9856b68e2cba50d2e26a1cbe374e0365" name="a9856b68e2cba50d2e26a1cbe374e0365"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9856b68e2cba50d2e26a1cbe374e0365">&#9670;&nbsp;</a></span>test_find_max()</h2>
<div class="memitem">
@@ -236,35 +270,35 @@ Here is the call graph for this function:</div>
<p>Function for testing find_max(). </p>
<dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Testing BST find_max...&quot;</span>;</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; </div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordtype">int</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">max</a> = 0;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; assert(!tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; </div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; </div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; assert(max == 6);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;ok&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> {</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</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;Testing BST find_max...&quot;</span>;</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> </div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="keywordtype">int</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">max</a> = 0;</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <a class="code hl_class" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> assert(!tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> </div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> </div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> assert(max == 6);</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> </div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</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;ok&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"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span>}</div>
<div class="ttc" id="aclassbinary__search__tree_html_a75f897af6aa732a9901454401c869bcb"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">binary_search_tree::find_max</a></div><div class="ttdeci">bool find_max(std::unique_ptr&lt; bst_node &gt; &amp;node, T &amp;ret_value)</div><div class="ttdoc">Recursive function to find the maximum value in the BST.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:52</div></div>
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a9856b68e2cba50d2e26a1cbe374e0365_cgraph.svg" width="300" height="170"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a9856b68e2cba50d2e26a1cbe374e0365_cgraph.svg" width="300" height="218"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="af2847a901160fd45b4044550e9921cb4"></a>
<a id="af2847a901160fd45b4044550e9921cb4" name="af2847a901160fd45b4044550e9921cb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2847a901160fd45b4044550e9921cb4">&#9670;&nbsp;</a></span>test_find_min()</h2>
<div class="memitem">
@@ -289,35 +323,35 @@ Here is the call graph for this function:</div>
<p>Function for testing find_min(). </p>
<dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Testing BST find_min...&quot;</span>;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; </div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordtype">int</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a> = 0;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; assert(!tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; </div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; </div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; assert(min == 3);</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; </div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;ok&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> {</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</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;Testing BST find_min...&quot;</span>;</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> </div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> <span class="keywordtype">int</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a> = 0;</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <a class="code hl_class" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> assert(!tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> </div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> </div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> assert(min == 3);</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> </div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</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;ok&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"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span>}</div>
<div class="ttc" id="aclassbinary__search__tree_html_af9a2c7c187a7ca3142c77ce342ef3153"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">binary_search_tree::find_min</a></div><div class="ttdeci">bool find_min(std::unique_ptr&lt; bst_node &gt; &amp;node, T &amp;ret_value)</div><div class="ttdoc">Recursive function to find the minimum value in the BST.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:70</div></div>
<div class="ttc" id="amin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/min.html">std::min</a></div><div class="ttdeci">T min(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_af2847a901160fd45b4044550e9921cb4_cgraph.svg" width="296" height="170"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_af2847a901160fd45b4044550e9921cb4_cgraph.svg" width="296" height="218"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a06f35064850e891d6fda0093c0d9ee6e"></a>
<a id="a06f35064850e891d6fda0093c0d9ee6e" name="a06f35064850e891d6fda0093c0d9ee6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06f35064850e891d6fda0093c0d9ee6e">&#9670;&nbsp;</a></span>test_get_elements_inorder()</h2>
<div class="memitem">
@@ -342,33 +376,33 @@ Here is the call graph for this function:</div>
<p>Function for testing get_elements_inorder(). </p>
<dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; {</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Testing BST get_elements_inorder...&quot;</span>;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; </div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <a class="code" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> expected = {3, 4, 5, 6};</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> actual = tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a06a863442c165503ac189f7b47599ec8">get_elements_inorder</a>();</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; assert(actual == expected);</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; </div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;ok&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;}</div>
<div class="ttc" id="aclassbinary__search__tree_html_a06a863442c165503ac189f7b47599ec8"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#a06a863442c165503ac189f7b47599ec8">binary_search_tree::get_elements_inorder</a></div><div class="ttdeci">std::vector&lt; T &gt; get_elements_inorder()</div><div class="ttdoc">Get all values of the BST in in-order order.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:320</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt; int &gt;</a></div></div>
<div class="fragment"><div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> {</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</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;Testing BST get_elements_inorder...&quot;</span>;</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> </div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <a class="code hl_class" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> </div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> expected = {3, 4, 5, 6};</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> actual = tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a1f23830316204664514f396a4eb5275a">get_elements_inorder</a>();</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> assert(actual == expected);</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> </div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</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;ok&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"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span>}</div>
<div class="ttc" id="aclassbinary__search__tree_html_a1f23830316204664514f396a4eb5275a"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#a1f23830316204664514f396a4eb5275a">binary_search_tree::get_elements_inorder</a></div><div class="ttdeci">std::vector&lt; T &gt; get_elements_inorder()</div><div class="ttdoc">Get all values of the BST in in-order order.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:320</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 class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a06f35064850e891d6fda0093c0d9ee6e_cgraph.svg" width="582" height="170"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a06f35064850e891d6fda0093c0d9ee6e_cgraph.svg" width="582" height="194"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a94b76f781fcbe1ad0e3397ace6bb1965"></a>
<a id="a94b76f781fcbe1ad0e3397ace6bb1965" name="a94b76f781fcbe1ad0e3397ace6bb1965"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94b76f781fcbe1ad0e3397ace6bb1965">&#9670;&nbsp;</a></span>test_get_elements_postorder()</h2>
<div class="memitem">
@@ -393,32 +427,32 @@ Here is the call graph for this function:</div>
<p>Function for testing get_elements_postorder(). </p>
<dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; {</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Testing BST get_elements_postorder...&quot;</span>;</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; </div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; </div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> expected = {3, 4, 6, 5};</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> actual = tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a70030b0d7990c6fd450256d27b8f6c7b">get_elements_postorder</a>();</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; assert(actual == expected);</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; </div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;ok&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;}</div>
<div class="ttc" id="aclassbinary__search__tree_html_a70030b0d7990c6fd450256d27b8f6c7b"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#a70030b0d7990c6fd450256d27b8f6c7b">binary_search_tree::get_elements_postorder</a></div><div class="ttdeci">std::vector&lt; T &gt; get_elements_postorder()</div><div class="ttdoc">Get all values of the BST in post-order order.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:344</div></div>
<div class="fragment"><div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> {</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</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;Testing BST get_elements_postorder...&quot;</span>;</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> </div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <a class="code hl_class" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> </div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> expected = {3, 4, 6, 5};</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> actual = tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a5c011e1b0863d79c3a7c11a0426bdcff">get_elements_postorder</a>();</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> assert(actual == expected);</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> </div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</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;ok&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"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span>}</div>
<div class="ttc" id="aclassbinary__search__tree_html_a5c011e1b0863d79c3a7c11a0426bdcff"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#a5c011e1b0863d79c3a7c11a0426bdcff">binary_search_tree::get_elements_postorder</a></div><div class="ttdeci">std::vector&lt; T &gt; get_elements_postorder()</div><div class="ttdoc">Get all values of the BST in post-order order.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:344</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a94b76f781fcbe1ad0e3397ace6bb1965_cgraph.svg" width="616" height="170"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a94b76f781fcbe1ad0e3397ace6bb1965_cgraph.svg" width="616" height="194"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="ab00b8d0f21aeb5fbddb6decf3bcb640a"></a>
<a id="ab00b8d0f21aeb5fbddb6decf3bcb640a" name="ab00b8d0f21aeb5fbddb6decf3bcb640a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab00b8d0f21aeb5fbddb6decf3bcb640a">&#9670;&nbsp;</a></span>test_get_elements_preorder()</h2>
<div class="memitem">
@@ -443,32 +477,32 @@ Here is the call graph for this function:</div>
<p>Function for testing get_elements_preorder(). </p>
<dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; {</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Testing BST get_elements_preorder...&quot;</span>;</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; </div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; </div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> expected = {5, 4, 3, 6};</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> actual = tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a53d1bf8e5ef0a952d2817f3cd22546c7">get_elements_preorder</a>();</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; assert(actual == expected);</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; </div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;ok&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;}</div>
<div class="ttc" id="aclassbinary__search__tree_html_a53d1bf8e5ef0a952d2817f3cd22546c7"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#a53d1bf8e5ef0a952d2817f3cd22546c7">binary_search_tree::get_elements_preorder</a></div><div class="ttdeci">std::vector&lt; T &gt; get_elements_preorder()</div><div class="ttdoc">Get all values of the BST in pre-order order.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:332</div></div>
<div class="fragment"><div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> {</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</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;Testing BST get_elements_preorder...&quot;</span>;</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> </div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> <a class="code hl_class" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> </div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> expected = {5, 4, 3, 6};</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> actual = tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a5764c1cf848f84a5b77462036a6d8c13">get_elements_preorder</a>();</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> assert(actual == expected);</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> </div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</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;ok&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"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span>}</div>
<div class="ttc" id="aclassbinary__search__tree_html_a5764c1cf848f84a5b77462036a6d8c13"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#a5764c1cf848f84a5b77462036a6d8c13">binary_search_tree::get_elements_preorder</a></div><div class="ttdeci">std::vector&lt; T &gt; get_elements_preorder()</div><div class="ttdoc">Get all values of the BST in pre-order order.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:332</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_ab00b8d0f21aeb5fbddb6decf3bcb640a_cgraph.svg" width="599" height="170"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_ab00b8d0f21aeb5fbddb6decf3bcb640a_cgraph.svg" width="599" height="194"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a8c882f43e1e52948a7841a8bfb091350"></a>
<a id="a8c882f43e1e52948a7841a8bfb091350" name="a8c882f43e1e52948a7841a8bfb091350"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c882f43e1e52948a7841a8bfb091350">&#9670;&nbsp;</a></span>test_insert()</h2>
<div class="memitem">
@@ -491,47 +525,47 @@ Here is the call graph for this function:</div>
</table>
</div><div class="memdoc">
<p>Function for testing <a class="el" href="../../d8/dee/avltree_8cpp.html#aa7cd8a68075fae1c33df41233c1bed6a">insert()</a>. </p>
<p>Function for testing <a class="el" href="../../d8/dee/avltree_8cpp.html#a2473fe7416332495b2678ebe89652e4b">insert()</a>. </p>
<dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Testing BST insert...&quot;</span>;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; </div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">bool</span> res = tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordtype">int</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a> = -1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">max</a> = -1;</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; assert(res);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; assert(max == 5);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; assert(min == 5);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 1);</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; </div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; assert(max == 6);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; assert(min == 3);</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 4);</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; </div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordtype">bool</span> fail_res = tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; assert(!fail_res);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 4);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; </div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;ok&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> {</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</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;Testing BST insert...&quot;</span>;</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> </div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <a class="code hl_class" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <span class="keywordtype">bool</span> res = tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="keywordtype">int</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a> = -1, <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">max</a> = -1;</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> assert(res);</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> assert(max == 5);</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> assert(min == 5);</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 1);</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> assert(max == 6);</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> assert(min == 3);</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 4);</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> </div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> <span class="keywordtype">bool</span> fail_res = tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> assert(!fail_res);</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 4);</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</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;ok&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"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span>}</div>
<div class="ttc" id="aclassbinary__search__tree_html_a564fe43e7e8f7ecb6f10667a70fbc6f3"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">binary_search_tree::size</a></div><div class="ttdeci">std::size_t size()</div><div class="ttdoc">Get the number of values in the BST.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:313</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a8c882f43e1e52948a7841a8bfb091350_cgraph.svg" width="279" height="300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_a8c882f43e1e52948a7841a8bfb091350_cgraph.svg" width="279" height="372"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="ab1333c3ea06dcad896ee204bbd407c4e"></a>
<a id="ab1333c3ea06dcad896ee204bbd407c4e" name="ab1333c3ea06dcad896ee204bbd407c4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1333c3ea06dcad896ee204bbd407c4e">&#9670;&nbsp;</a></span>test_remove()</h2>
<div class="memitem">
@@ -556,42 +590,42 @@ Here is the call graph for this function:</div>
<p>Function for testing <a class="el" href="../../d0/d65/namespacedouble__hashing.html#a28083ecac6eb94b643281875c8665931">remove()</a>. </p>
<dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Testing BST remove...&quot;</span>;</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; </div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordtype">bool</span> res = tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(5);</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordtype">int</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a> = -1, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">max</a> = -1;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; assert(res);</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; assert(max == 6);</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; assert(min == 3);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 3);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(5) == <span class="keyword">false</span>);</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(4);</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(3);</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(6);</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 0);</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(6) == <span class="keyword">false</span>);</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; </div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordtype">bool</span> fail_res = tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(5);</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; assert(!fail_res);</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; assert(tree.<a class="code" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 0);</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; </div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;ok&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> {</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</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;Testing BST remove...&quot;</span>;</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> </div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <a class="code hl_class" href="../../d9/dde/classbinary__search__tree.html">binary_search_tree&lt;int&gt;</a> tree;</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(5);</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(4);</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(3);</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778">insert</a>(6);</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> <span class="keywordtype">bool</span> res = tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(5);</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <span class="keywordtype">int</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a> = -1, <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">max</a> = -1;</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> assert(res);</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb">find_max</a>(max));</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153">find_min</a>(min));</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> assert(max == 6);</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> assert(min == 3);</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 3);</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(5) == <span class="keyword">false</span>);</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> </div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(4);</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(3);</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(6);</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 0);</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2">contains</a>(6) == <span class="keyword">false</span>);</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <span class="keywordtype">bool</span> fail_res = tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">remove</a>(5);</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> assert(!fail_res);</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> assert(tree.<a class="code hl_function" href="../../d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3">size</a>() == 0);</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> </div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</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;ok&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"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span>}</div>
<div class="ttc" id="aclassbinary__search__tree_html_af4a865ce5244608819b169fc78a41153"><div class="ttname"><a href="../../d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153">binary_search_tree::remove</a></div><div class="ttdeci">bool remove(std::unique_ptr&lt; bst_node &gt; &amp;parent, std::unique_ptr&lt; bst_node &gt; &amp;node, T rm_value)</div><div class="ttdoc">Recursive function to remove a value from the BST.</div><div class="ttdef"><b>Definition:</b> binary_search_tree2.cpp:124</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_ab1333c3ea06dcad896ee204bbd407c4e_cgraph.svg" width="291" height="431"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d42/binary__search__tree2_8cpp_ab1333c3ea06dcad896ee204bbd407c4e_cgraph.svg" width="291" height="527"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
@@ -603,7 +637,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="../../df/d42/binary__search__tree2_8cpp.html">binary_search_tree2.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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,8 +1,7 @@
var binary__search__tree2_8cpp =
[
[ "binary_search_tree", "d9/dde/classbinary__search__tree.html", "d9/dde/classbinary__search__tree" ],
[ "bst_node", "dd/db6/structbinary__search__tree_1_1bst__node.html", "dd/db6/structbinary__search__tree_1_1bst__node" ],
[ "main", "df/d42/binary__search__tree2_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "binary_search_tree< T >", "d9/dde/classbinary__search__tree.html", "d9/dde/classbinary__search__tree" ],
[ "binary_search_tree< T >::bst_node", "dd/db6/structbinary__search__tree_1_1bst__node.html", "dd/db6/structbinary__search__tree_1_1bst__node" ],
[ "test_contains", "df/d42/binary__search__tree2_8cpp.html#a1d42876440ac5346e2850a32497385c3", null ],
[ "test_find_max", "df/d42/binary__search__tree2_8cpp.html#a9856b68e2cba50d2e26a1cbe374e0365", null ],
[ "test_find_min", "df/d42/binary__search__tree2_8cpp.html#af2847a901160fd45b4044550e9921cb4", null ],

View File

@@ -1,7 +1,7 @@
<map id="test_get_elements_inorder" name="test_get_elements_inorder">
<area shape="rect" id="node1" title="Function for testing get_elements_inorder()." alt="" coords="5,64,185,91"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="277,5,349,32"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a06a863442c165503ac189f7b47599ec8" title="Get all values of the BST in in&#45;order order." alt="" coords="233,57,392,98"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="245,122,381,163"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a1f23830316204664514f396a4eb5275a" title="Get all values of the BST in in&#45;order order." alt="" coords="233,57,392,98"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="245,146,381,187"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a2fcf37549bd002c174a45b0b4203c2bd" title="Recursive function to traverse the tree in in&#45;order order." alt="" coords="440,57,576,98"/>
</map>

View File

@@ -1 +1 @@
12b43ed99260294eddee7796ff41a0fa
5e5607f8fbb296358816e10f8aabd958

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test_get_elements_inorder Pages: 1 -->
<svg width="436pt" height="127pt"
viewBox="0.00 0.00 436.00 126.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 122.5)">
<svg width="436pt" height="145pt"
viewBox="0.00 0.00 436.00 144.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 140.5)">
<title>test_get_elements_inorder</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-122.5 432,-122.5 432,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-140.5 432,-140.5 432,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function for testing get_elements_inorder().">
<polygon fill="#bfbfbf" stroke="black" points="0,-55 0,-74 135,-74 135,-55 0,-55"/>
<text text-anchor="middle" x="67.5" y="-62" font-family="Helvetica,sans-Serif" font-size="10.00">test_get_elements_inorder</text>
<polygon fill="#bfbfbf" stroke="black" points="0,-73 0,-92 135,-92 135,-73 0,-73"/>
<text text-anchor="middle" x="67.5" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00">test_get_elements_inorder</text>
</a>
</g>
</g>
@@ -22,32 +22,32 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="203.5,-99 203.5,-118 257.5,-118 257.5,-99 203.5,-99"/>
<text text-anchor="middle" x="230.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
<polygon fill="white" stroke="black" points="203.5,-117 203.5,-136 257.5,-136 257.5,-117 203.5,-117"/>
<text text-anchor="middle" x="230.5" y="-124" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M103.43,-74.05C130.09,-81.33 166.67,-91.33 193.57,-98.68"/>
<polygon fill="midnightblue" stroke="midnightblue" points="192.79,-102.1 203.36,-101.36 194.64,-95.34 192.79,-102.1"/>
<path fill="none" stroke="midnightblue" d="M103.43,-92.05C130.09,-99.33 166.67,-109.33 193.57,-116.68"/>
<polygon fill="midnightblue" stroke="midnightblue" points="192.79,-120.1 203.36,-119.36 194.64,-113.34 192.79,-120.1"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a06a863442c165503ac189f7b47599ec8" target="_top" xlink:title="Get all values of the BST in in&#45;order order.">
<polygon fill="white" stroke="black" points="171,-49.5 171,-79.5 290,-79.5 290,-49.5 171,-49.5"/>
<text text-anchor="start" x="179" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="230.5" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_elements_inorder</text>
<g id="a_node3"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a1f23830316204664514f396a4eb5275a" target="_top" xlink:title="Get all values of the BST in in&#45;order order.">
<polygon fill="white" stroke="black" points="171,-67.5 171,-97.5 290,-97.5 290,-67.5 171,-67.5"/>
<text text-anchor="start" x="179" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="230.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_elements_inorder</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M135.38,-64.5C143.73,-64.5 152.29,-64.5 160.67,-64.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="160.78,-68 170.78,-64.5 160.78,-61 160.78,-68"/>
<path fill="none" stroke="midnightblue" d="M135.38,-82.5C143.73,-82.5 152.29,-82.5 160.67,-82.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="160.78,-86 170.78,-82.5 160.78,-79 160.78,-86"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
@@ -60,26 +60,38 @@
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M99.92,-54.94C119.95,-48.84 146.53,-40.75 170.4,-33.49"/>
<polygon fill="midnightblue" stroke="midnightblue" points="171.55,-36.8 180.09,-30.54 169.51,-30.1 171.55,-36.8"/>
<path fill="none" stroke="midnightblue" d="M91.57,-72.9C115.58,-62.91 153.8,-47 183.93,-34.46"/>
<polygon fill="midnightblue" stroke="midnightblue" points="185.52,-37.6 193.4,-30.52 182.83,-31.13 185.52,-37.6"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a2fcf37549bd002c174a45b0b4203c2bd" target="_top" xlink:title="Recursive function to traverse the tree in in&#45;order order.">
<polygon fill="white" stroke="black" points="326,-49.5 326,-79.5 428,-79.5 428,-49.5 326,-49.5"/>
<text text-anchor="start" x="334" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="377" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::traverse_inorder</text>
<polygon fill="white" stroke="black" points="326,-67.5 326,-97.5 428,-97.5 428,-67.5 326,-67.5"/>
<text text-anchor="start" x="334" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="377" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">::traverse_inorder</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M290.27,-64.5C298.61,-64.5 307.19,-64.5 315.55,-64.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="315.61,-68 325.61,-64.5 315.61,-61 315.61,-68"/>
<path fill="none" stroke="midnightblue" d="M290.27,-82.5C298.61,-82.5 307.19,-82.5 315.55,-82.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="315.61,-86 325.61,-82.5 315.61,-79 315.61,-86"/>
</g>
<!-- Node4&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M351.56,-97.66C345.42,-107.06 353.9,-116 377,-116 391.08,-116 399.72,-112.68 402.94,-107.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="406.42,-107.48 402.44,-97.66 399.43,-107.82 406.42,-107.48"/>
</g>
<!-- Node5&#45;&gt;Node5 -->
<g id="edge6" class="edge">
<title>Node5&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M205.06,-30.66C198.92,-40.06 207.4,-49 230.5,-49 244.58,-49 253.22,-45.68 256.44,-40.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="259.92,-40.48 255.94,-30.66 252.93,-40.82 259.92,-40.48"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -1,6 +1,6 @@
<map id="test_contains" name="test_contains">
<area shape="rect" id="node1" title="Function for testing contains()." alt="" coords="5,71,105,98"/>
<area shape="rect" id="node2" href="$d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2" title="Recursive function to check if a value is in the BST." alt="" coords="153,5,289,47"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="185,71,257,98"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="153,123,289,164"/>
<area shape="rect" id="node1" title="Function for testing contains()." alt="" coords="5,95,105,122"/>
<area shape="rect" id="node2" href="$d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2" title="Recursive function to check if a value is in the BST." alt="" coords="153,29,289,71"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="185,95,257,122"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="153,171,289,212"/>
</map>

View File

@@ -1 +1 @@
5a9c2d3a96cc0daa9ac0fd167fe3d1ea
819d37149ae01f88ff380bb10dfebe1b

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test_contains Pages: 1 -->
<svg width="221pt" height="127pt"
viewBox="0.00 0.00 221.00 127.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 123)">
<svg width="221pt" height="163pt"
viewBox="0.00 0.00 221.00 163.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 159)">
<title>test_contains</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-123 217,-123 217,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-159 217,-159 217,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function for testing contains().">
<polygon fill="#bfbfbf" stroke="black" points="0,-50 0,-69 75,-69 75,-50 0,-50"/>
<text text-anchor="middle" x="37.5" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">test_contains</text>
<polygon fill="#bfbfbf" stroke="black" points="0,-68 0,-87 75,-87 75,-68 0,-68"/>
<text text-anchor="middle" x="37.5" y="-75" font-family="Helvetica,sans-Serif" font-size="10.00">test_contains</text>
</a>
</g>
</g>
@@ -22,32 +22,32 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2" target="_top" xlink:title="Recursive function to check if a value is in the BST.">
<polygon fill="white" stroke="black" points="111,-88.5 111,-118.5 213,-118.5 213,-88.5 111,-88.5"/>
<text text-anchor="start" x="119" y="-106.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="162" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00">::contains</text>
<polygon fill="white" stroke="black" points="111,-106.5 111,-136.5 213,-136.5 213,-106.5 111,-106.5"/>
<text text-anchor="start" x="119" y="-124.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="162" y="-113.5" font-family="Helvetica,sans-Serif" font-size="10.00">::contains</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M65.08,-69.05C78.01,-73.69 94.01,-79.44 109.22,-84.9"/>
<polygon fill="midnightblue" stroke="midnightblue" points="108.46,-88.35 119.06,-88.43 110.83,-81.76 108.46,-88.35"/>
<path fill="none" stroke="midnightblue" d="M65.08,-87.05C78.01,-91.69 94.01,-97.44 109.22,-102.9"/>
<polygon fill="midnightblue" stroke="midnightblue" points="108.46,-106.35 119.06,-106.43 110.83,-99.76 108.46,-106.35"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="135,-50 135,-69 189,-69 189,-50 135,-50"/>
<text text-anchor="middle" x="162" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
<polygon fill="white" stroke="black" points="135,-68 135,-87 189,-87 189,-68 135,-68"/>
<text text-anchor="middle" x="162" y="-75" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M75.25,-59.5C90.83,-59.5 108.93,-59.5 124.48,-59.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="124.78,-63 134.78,-59.5 124.78,-56 124.78,-63"/>
<path fill="none" stroke="midnightblue" d="M75.25,-77.5C90.83,-77.5 108.93,-77.5 124.48,-77.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="124.78,-81 134.78,-77.5 124.78,-74 124.78,-81"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
@@ -60,10 +60,22 @@
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M65.08,-49.95C78.01,-45.31 94.01,-39.56 109.22,-34.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="110.83,-37.24 119.06,-30.57 108.46,-30.65 110.83,-37.24"/>
<path fill="none" stroke="midnightblue" d="M57.37,-67.95C74.52,-59.27 100.36,-46.19 121.95,-35.27"/>
<polygon fill="midnightblue" stroke="midnightblue" points="123.56,-38.37 130.9,-30.74 120.4,-32.13 123.56,-38.37"/>
</g>
<!-- Node2&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M140.39,-136.66C135.18,-146.06 142.38,-155 162,-155 173.95,-155 181.3,-151.68 184.03,-146.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="187.52,-146.51 183.61,-136.66 180.52,-146.79 187.52,-146.51"/>
</g>
<!-- Node4&#45;&gt;Node4 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M140.39,-30.66C135.18,-40.06 142.38,-49 162,-49 173.95,-49 181.3,-45.68 184.03,-40.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="187.52,-40.51 183.61,-30.66 180.52,-40.79 187.52,-40.51"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -1,8 +1,8 @@
<map id="test_insert" name="test_insert">
<area shape="rect" id="node1" title="Function for testing insert()." alt="" coords="5,129,89,156"/>
<area shape="rect" id="node1" title="Function for testing insert()." alt="" coords="5,177,89,204"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="169,5,241,32"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb" title="Recursive function to find the maximum value in the BST." alt="" coords="137,57,273,98"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153" title="Recursive function to find the minimum value in the BST." alt="" coords="137,122,273,163"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="137,187,273,229"/>
<area shape="rect" id="node6" href="$d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3" title="Get the number of values in the BST." alt="" coords="137,253,273,294"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb" title="Recursive function to find the maximum value in the BST." alt="" coords="137,81,273,122"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153" title="Recursive function to find the minimum value in the BST." alt="" coords="137,170,273,211"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="137,259,273,301"/>
<area shape="rect" id="node6" href="$d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3" title="Get the number of values in the BST." alt="" coords="137,325,273,366"/>
</map>

View File

@@ -1 +1 @@
278030b7bf01fbcab16b269172b660c9
8edc15d24a4aad7ecdb1cab4e9a5d843

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test_insert Pages: 1 -->
<svg width="209pt" height="225pt"
viewBox="0.00 0.00 209.00 224.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 220.5)">
<svg width="209pt" height="279pt"
viewBox="0.00 0.00 209.00 278.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 274.5)">
<title>test_insert</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-220.5 205,-220.5 205,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-274.5 205,-274.5 205,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function for testing insert().">
<polygon fill="#bfbfbf" stroke="black" points="0,-104 0,-123 63,-123 63,-104 0,-104"/>
<text text-anchor="middle" x="31.5" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00">test_insert</text>
<polygon fill="#bfbfbf" stroke="black" points="0,-122 0,-141 63,-141 63,-122 0,-122"/>
<text text-anchor="middle" x="31.5" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00">test_insert</text>
</a>
</g>
</g>
@@ -22,48 +22,48 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="123,-197 123,-216 177,-216 177,-197 123,-197"/>
<text text-anchor="middle" x="150" y="-204" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
<polygon fill="white" stroke="black" points="123,-251 123,-270 177,-270 177,-251 123,-251"/>
<text text-anchor="middle" x="150" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M39.1,-123.5C49.9,-139.16 72.79,-169.53 99,-187.5 103.39,-190.51 108.31,-193.12 113.32,-195.36"/>
<polygon fill="midnightblue" stroke="midnightblue" points="112.34,-198.74 122.92,-199.23 114.96,-192.25 112.34,-198.74"/>
<path fill="none" stroke="midnightblue" d="M35.85,-141.2C43.63,-162.37 64.89,-213.06 99,-241.5 103.28,-245.07 108.3,-248.01 113.48,-250.42"/>
<polygon fill="midnightblue" stroke="midnightblue" points="112.26,-253.7 122.84,-254.2 114.88,-247.21 112.26,-253.7"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb" target="_top" xlink:title="Recursive function to find the maximum value in the BST.">
<polygon fill="white" stroke="black" points="99,-147.5 99,-177.5 201,-177.5 201,-147.5 99,-147.5"/>
<text text-anchor="start" x="107" y="-165.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="150" y="-154.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_max</text>
<polygon fill="white" stroke="black" points="99,-183.5 99,-213.5 201,-213.5 201,-183.5 99,-183.5"/>
<text text-anchor="start" x="107" y="-201.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="150" y="-190.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M55.24,-123.06C68.97,-128.84 86.95,-136.4 103.49,-143.36"/>
<polygon fill="midnightblue" stroke="midnightblue" points="102.45,-146.72 113.02,-147.37 105.16,-140.26 102.45,-146.72"/>
<path fill="none" stroke="midnightblue" d="M46.2,-141.08C59.42,-150.17 80.17,-163.95 99,-174.5 101.64,-175.98 104.4,-177.46 107.19,-178.92"/>
<polygon fill="midnightblue" stroke="midnightblue" points="105.65,-182.06 116.15,-183.47 108.81,-175.82 105.65,-182.06"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153" target="_top" xlink:title="Recursive function to find the minimum value in the BST.">
<polygon fill="white" stroke="black" points="99,-98.5 99,-128.5 201,-128.5 201,-98.5 99,-98.5"/>
<text text-anchor="start" x="107" y="-116.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="150" y="-105.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_min</text>
<polygon fill="white" stroke="black" points="99,-116.5 99,-146.5 201,-146.5 201,-116.5 99,-116.5"/>
<text text-anchor="start" x="107" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="150" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_min</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M63.11,-113.5C71.04,-113.5 79.87,-113.5 88.76,-113.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="88.77,-117 98.77,-113.5 88.77,-110 88.77,-117"/>
<path fill="none" stroke="midnightblue" d="M63.11,-131.5C71.04,-131.5 79.87,-131.5 88.76,-131.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="88.77,-135 98.77,-131.5 88.77,-128 88.77,-135"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
@@ -76,10 +76,10 @@
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge6" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M55.24,-103.94C68.97,-98.16 86.95,-90.6 103.49,-83.64"/>
<polygon fill="midnightblue" stroke="midnightblue" points="105.16,-86.74 113.02,-79.63 102.45,-80.28 105.16,-86.74"/>
<path fill="none" stroke="midnightblue" d="M49.19,-121.9C66.04,-112.21 92.56,-96.96 114.03,-84.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="115.96,-87.54 122.88,-79.52 112.47,-81.47 115.96,-87.54"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
@@ -92,10 +92,28 @@
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<g id="edge8" class="edge">
<title>Node1&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M39.35,-103.94C50.5,-88.92 73.85,-59.54 99,-40.5 101.1,-38.91 103.31,-37.38 105.6,-35.91"/>
<polygon fill="midnightblue" stroke="midnightblue" points="107.82,-38.66 114.64,-30.56 104.26,-32.64 107.82,-38.66"/>
<path fill="none" stroke="midnightblue" d="M37.51,-121.83C47.25,-103.81 70.31,-64.75 99,-40.5 100.78,-39 102.66,-37.56 104.61,-36.18"/>
<polygon fill="midnightblue" stroke="midnightblue" points="106.93,-38.86 113.51,-30.56 103.19,-32.94 106.93,-38.86"/>
</g>
<!-- Node3&#45;&gt;Node3 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M129.44,-213.66C124.48,-223.06 131.33,-232 150,-232 161.38,-232 168.36,-228.68 170.97,-223.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="174.45,-223.51 170.56,-213.66 167.46,-223.79 174.45,-223.51"/>
</g>
<!-- Node4&#45;&gt;Node4 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M129.44,-146.66C124.48,-156.06 131.33,-165 150,-165 161.38,-165 168.36,-161.68 170.97,-156.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="174.45,-156.51 170.56,-146.66 167.46,-156.79 174.45,-156.51"/>
</g>
<!-- Node5&#45;&gt;Node5 -->
<g id="edge7" class="edge">
<title>Node5&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M129.44,-79.66C124.48,-89.06 131.33,-98 150,-98 161.38,-98 168.36,-94.68 170.97,-89.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="174.45,-89.51 170.56,-79.66 167.46,-89.79 174.45,-89.51"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -1,7 +1,7 @@
<map id="test_get_elements_postorder" name="test_get_elements_postorder">
<area shape="rect" id="node1" title="Function for testing get_elements_postorder()." alt="" coords="5,64,200,91"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="299,5,371,32"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a70030b0d7990c6fd450256d27b8f6c7b" title="Get all values of the BST in post&#45;order order." alt="" coords="248,57,421,98"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="267,122,403,163"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a5c011e1b0863d79c3a7c11a0426bdcff" title="Get all values of the BST in post&#45;order order." alt="" coords="248,57,421,98"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="267,146,403,187"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a87c0a35845d27e0f6fc1f4eaa0333362" title="Recursive function to traverse the tree in post&#45;order order." alt="" coords="469,57,611,98"/>
</map>

View File

@@ -1 +1 @@
e5a562ce4ee0805c753e5471af9843c8
af9d15dd4b46bc392c1839b38ff060a7

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test_get_elements_postorder Pages: 1 -->
<svg width="462pt" height="127pt"
viewBox="0.00 0.00 462.00 126.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 122.5)">
<svg width="462pt" height="145pt"
viewBox="0.00 0.00 462.00 144.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 140.5)">
<title>test_get_elements_postorder</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-122.5 458,-122.5 458,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-140.5 458,-140.5 458,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function for testing get_elements_postorder().">
<polygon fill="#bfbfbf" stroke="black" points="0,-55 0,-74 146,-74 146,-55 0,-55"/>
<text text-anchor="middle" x="73" y="-62" font-family="Helvetica,sans-Serif" font-size="10.00">test_get_elements_postorder</text>
<polygon fill="#bfbfbf" stroke="black" points="0,-73 0,-92 146,-92 146,-73 0,-73"/>
<text text-anchor="middle" x="73" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00">test_get_elements_postorder</text>
</a>
</g>
</g>
@@ -22,32 +22,32 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="220,-99 220,-118 274,-118 274,-99 220,-99"/>
<text text-anchor="middle" x="247" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
<polygon fill="white" stroke="black" points="220,-117 220,-136 274,-136 274,-117 220,-117"/>
<text text-anchor="middle" x="247" y="-124" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M111.32,-74.05C140.66,-81.55 181.28,-91.94 210.22,-99.35"/>
<polygon fill="midnightblue" stroke="midnightblue" points="209.37,-102.74 219.93,-101.83 211.11,-95.96 209.37,-102.74"/>
<path fill="none" stroke="midnightblue" d="M111.32,-92.05C140.66,-99.55 181.28,-109.94 210.22,-117.35"/>
<polygon fill="midnightblue" stroke="midnightblue" points="209.37,-120.74 219.93,-119.83 211.11,-113.96 209.37,-120.74"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a70030b0d7990c6fd450256d27b8f6c7b" target="_top" xlink:title="Get all values of the BST in post&#45;order order.">
<polygon fill="white" stroke="black" points="182,-49.5 182,-79.5 312,-79.5 312,-49.5 182,-49.5"/>
<text text-anchor="start" x="190" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="247" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_elements_postorder</text>
<g id="a_node3"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a5c011e1b0863d79c3a7c11a0426bdcff" target="_top" xlink:title="Get all values of the BST in post&#45;order order.">
<polygon fill="white" stroke="black" points="182,-67.5 182,-97.5 312,-97.5 312,-67.5 182,-67.5"/>
<text text-anchor="start" x="190" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="247" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_elements_postorder</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M146.44,-64.5C154.8,-64.5 163.33,-64.5 171.71,-64.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="171.83,-68 181.83,-64.5 171.83,-61 171.83,-68"/>
<path fill="none" stroke="midnightblue" d="M146.44,-82.5C154.8,-82.5 163.33,-82.5 171.71,-82.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="171.83,-86 181.83,-82.5 171.83,-79 171.83,-86"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
@@ -60,26 +60,38 @@
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M107.57,-54.94C129.85,-48.59 159.72,-40.08 186.01,-32.59"/>
<polygon fill="midnightblue" stroke="midnightblue" points="187.23,-35.88 195.89,-29.78 185.31,-29.15 187.23,-35.88"/>
<path fill="none" stroke="midnightblue" d="M98.64,-72.9C124.4,-62.87 165.49,-46.86 197.74,-34.3"/>
<polygon fill="midnightblue" stroke="midnightblue" points="199.39,-37.41 207.44,-30.52 196.85,-30.89 199.39,-37.41"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a87c0a35845d27e0f6fc1f4eaa0333362" target="_top" xlink:title="Recursive function to traverse the tree in post&#45;order order.">
<polygon fill="white" stroke="black" points="348,-49.5 348,-79.5 454,-79.5 454,-49.5 348,-49.5"/>
<text text-anchor="start" x="356" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="401" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::traverse_postorder</text>
<polygon fill="white" stroke="black" points="348,-67.5 348,-97.5 454,-97.5 454,-67.5 348,-67.5"/>
<text text-anchor="start" x="356" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="401" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">::traverse_postorder</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M312.02,-64.5C320.44,-64.5 329.07,-64.5 337.46,-64.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="337.56,-68 347.56,-64.5 337.56,-61 337.56,-68"/>
<path fill="none" stroke="midnightblue" d="M312.02,-82.5C320.44,-82.5 329.07,-82.5 337.46,-82.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="337.56,-86 347.56,-82.5 337.56,-79 337.56,-86"/>
</g>
<!-- Node4&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M374.16,-97.66C367.69,-107.06 376.64,-116 401,-116 415.85,-116 424.97,-112.68 428.36,-107.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="431.84,-107.47 427.84,-97.66 424.85,-107.82 431.84,-107.47"/>
</g>
<!-- Node5&#45;&gt;Node5 -->
<g id="edge6" class="edge">
<title>Node5&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M220.16,-30.66C213.69,-40.06 222.64,-49 247,-49 261.85,-49 270.97,-45.68 274.36,-40.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="277.84,-40.47 273.84,-30.66 270.85,-40.82 277.84,-40.47"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -1,6 +1,6 @@
<map id="test_find_max" name="test_find_max">
<area shape="rect" id="node1" title="Function for testing find_max()." alt="" coords="5,64,111,91"/>
<area shape="rect" id="node1" title="Function for testing find_max()." alt="" coords="5,88,111,115"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="191,5,263,32"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb" title="Recursive function to find the maximum value in the BST." alt="" coords="159,57,295,98"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="159,122,295,163"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb" title="Recursive function to find the maximum value in the BST." alt="" coords="159,81,295,122"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="159,170,295,211"/>
</map>

View File

@@ -1 +1 @@
798434dfc35cf5c4150f882fd5ef1a56
b7a98215c134bf189eb01a0907506cf4

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test_find_max Pages: 1 -->
<svg width="225pt" height="127pt"
viewBox="0.00 0.00 225.00 126.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 122.5)">
<svg width="225pt" height="163pt"
viewBox="0.00 0.00 225.00 162.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 158.5)">
<title>test_find_max</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-122.5 221,-122.5 221,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-158.5 221,-158.5 221,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function for testing find_max().">
<polygon fill="#bfbfbf" stroke="black" points="0,-55 0,-74 79,-74 79,-55 0,-55"/>
<text text-anchor="middle" x="39.5" y="-62" font-family="Helvetica,sans-Serif" font-size="10.00">test_find_max</text>
<polygon fill="#bfbfbf" stroke="black" points="0,-73 0,-92 79,-92 79,-73 0,-73"/>
<text text-anchor="middle" x="39.5" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00">test_find_max</text>
</a>
</g>
</g>
@@ -22,32 +22,32 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="139,-99 139,-118 193,-118 193,-99 139,-99"/>
<text text-anchor="middle" x="166" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
<polygon fill="white" stroke="black" points="139,-135 139,-154 193,-154 193,-135 139,-135"/>
<text text-anchor="middle" x="166" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M67.51,-74.05C85.62,-80.45 109.67,-88.94 129.34,-95.9"/>
<polygon fill="midnightblue" stroke="midnightblue" points="128.3,-99.24 138.89,-99.27 130.63,-92.64 128.3,-99.24"/>
<path fill="none" stroke="midnightblue" d="M55.52,-92.13C70.3,-101.37 93.69,-115.38 115,-125.5 119.65,-127.71 124.63,-129.85 129.59,-131.85"/>
<polygon fill="midnightblue" stroke="midnightblue" points="128.39,-135.14 138.98,-135.51 130.93,-128.62 128.39,-135.14"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb" target="_top" xlink:title="Recursive function to find the maximum value in the BST.">
<polygon fill="white" stroke="black" points="115,-49.5 115,-79.5 217,-79.5 217,-49.5 115,-49.5"/>
<text text-anchor="start" x="123" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="166" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_max</text>
<polygon fill="white" stroke="black" points="115,-67.5 115,-97.5 217,-97.5 217,-67.5 115,-67.5"/>
<text text-anchor="start" x="123" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="166" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M79.21,-64.5C87.32,-64.5 96.05,-64.5 104.73,-64.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="104.85,-68 114.85,-64.5 104.85,-61 104.85,-68"/>
<path fill="none" stroke="midnightblue" d="M79.21,-82.5C87.32,-82.5 96.05,-82.5 104.73,-82.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="104.85,-86 114.85,-82.5 104.85,-79 104.85,-86"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
@@ -60,10 +60,22 @@
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M64.8,-54.94C79.61,-49.11 99.05,-41.46 116.86,-34.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="118.53,-37.55 126.55,-30.63 115.96,-31.04 118.53,-37.55"/>
<path fill="none" stroke="midnightblue" d="M58.34,-72.9C76.5,-63.13 105.19,-47.69 128.24,-35.28"/>
<polygon fill="midnightblue" stroke="midnightblue" points="129.94,-38.34 137.09,-30.52 126.62,-32.18 129.94,-38.34"/>
</g>
<!-- Node3&#45;&gt;Node3 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M144.04,-97.66C138.75,-107.06 146.07,-116 166,-116 178.15,-116 185.61,-112.68 188.39,-107.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="191.87,-107.5 187.96,-97.66 184.88,-107.8 191.87,-107.5"/>
</g>
<!-- Node4&#45;&gt;Node4 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M144.04,-30.66C138.75,-40.06 146.07,-49 166,-49 178.15,-49 185.61,-45.68 188.39,-40.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="191.87,-40.5 187.96,-30.66 184.88,-40.8 191.87,-40.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -1,7 +1,7 @@
<map id="test_get_elements_preorder" name="test_get_elements_preorder">
<area shape="rect" id="node1" title="Function for testing get_elements_preorder()." alt="" coords="5,64,195,91"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="290,5,362,32"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a53d1bf8e5ef0a952d2817f3cd22546c7" title="Get all values of the BST in pre&#45;order order." alt="" coords="243,57,409,98"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="258,122,394,163"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#a5764c1cf848f84a5b77462036a6d8c13" title="Get all values of the BST in pre&#45;order order." alt="" coords="243,57,409,98"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="258,146,394,187"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#ab81edd415324d372632c42dc7dbcb9e1" title="Recursive function to traverse the tree in pre&#45;order order." alt="" coords="457,57,593,98"/>
</map>

View File

@@ -1 +1 @@
fec216d9fdaa44fbecc1fbbe5962cc24
53e93168197ff2cbc7112ac01d051b64

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test_get_elements_preorder Pages: 1 -->
<svg width="449pt" height="127pt"
viewBox="0.00 0.00 449.00 126.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 122.5)">
<svg width="449pt" height="145pt"
viewBox="0.00 0.00 449.00 144.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 140.5)">
<title>test_get_elements_preorder</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-122.5 445,-122.5 445,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-140.5 445,-140.5 445,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function for testing get_elements_preorder().">
<polygon fill="#bfbfbf" stroke="black" points="0,-55 0,-74 142,-74 142,-55 0,-55"/>
<text text-anchor="middle" x="71" y="-62" font-family="Helvetica,sans-Serif" font-size="10.00">test_get_elements_preorder</text>
<polygon fill="#bfbfbf" stroke="black" points="0,-73 0,-92 142,-92 142,-73 0,-73"/>
<text text-anchor="middle" x="71" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00">test_get_elements_preorder</text>
</a>
</g>
</g>
@@ -22,32 +22,32 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="213.5,-99 213.5,-118 267.5,-118 267.5,-99 213.5,-99"/>
<text text-anchor="middle" x="240.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
<polygon fill="white" stroke="black" points="213.5,-117 213.5,-136 267.5,-136 267.5,-117 213.5,-117"/>
<text text-anchor="middle" x="240.5" y="-124" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M108.35,-74.05C136.54,-81.45 175.42,-91.67 203.52,-99.05"/>
<polygon fill="midnightblue" stroke="midnightblue" points="202.78,-102.47 213.34,-101.63 204.56,-95.7 202.78,-102.47"/>
<path fill="none" stroke="midnightblue" d="M108.35,-92.05C136.54,-99.45 175.42,-109.67 203.52,-117.05"/>
<polygon fill="midnightblue" stroke="midnightblue" points="202.78,-120.47 213.34,-119.63 204.56,-113.7 202.78,-120.47"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a53d1bf8e5ef0a952d2817f3cd22546c7" target="_top" xlink:title="Get all values of the BST in pre&#45;order order.">
<polygon fill="white" stroke="black" points="178,-49.5 178,-79.5 303,-79.5 303,-49.5 178,-49.5"/>
<text text-anchor="start" x="186" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="240.5" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_elements_preorder</text>
<g id="a_node3"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a5764c1cf848f84a5b77462036a6d8c13" target="_top" xlink:title="Get all values of the BST in pre&#45;order order.">
<polygon fill="white" stroke="black" points="178,-67.5 178,-97.5 303,-97.5 303,-67.5 178,-67.5"/>
<text text-anchor="start" x="186" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="240.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_elements_preorder</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M142.06,-64.5C150.54,-64.5 159.21,-64.5 167.71,-64.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="167.97,-68 177.97,-64.5 167.97,-61 167.97,-68"/>
<path fill="none" stroke="midnightblue" d="M142.06,-82.5C150.54,-82.5 159.21,-82.5 167.71,-82.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="167.97,-86 177.97,-82.5 167.97,-79 167.97,-86"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
@@ -60,26 +60,38 @@
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M104.69,-54.94C125.96,-48.72 154.32,-40.42 179.55,-33.04"/>
<polygon fill="midnightblue" stroke="midnightblue" points="180.79,-36.32 189.4,-30.16 178.82,-29.6 180.79,-36.32"/>
<path fill="none" stroke="midnightblue" d="M96,-72.9C121.08,-62.87 161.09,-46.86 192.5,-34.3"/>
<polygon fill="midnightblue" stroke="midnightblue" points="193.96,-37.49 201.95,-30.52 191.36,-30.99 193.96,-37.49"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d9/dde/classbinary__search__tree.html#ab81edd415324d372632c42dc7dbcb9e1" target="_top" xlink:title="Recursive function to traverse the tree in pre&#45;order order.">
<polygon fill="white" stroke="black" points="339,-49.5 339,-79.5 441,-79.5 441,-49.5 339,-49.5"/>
<text text-anchor="start" x="347" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="390" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::traverse_preorder</text>
<polygon fill="white" stroke="black" points="339,-67.5 339,-97.5 441,-97.5 441,-67.5 339,-67.5"/>
<text text-anchor="start" x="347" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="390" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">::traverse_preorder</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M303.2,-64.5C311.62,-64.5 320.25,-64.5 328.65,-64.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="328.74,-68 338.74,-64.5 328.74,-61 328.74,-68"/>
<path fill="none" stroke="midnightblue" d="M303.2,-82.5C311.62,-82.5 320.25,-82.5 328.65,-82.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="328.74,-86 338.74,-82.5 328.74,-79 328.74,-86"/>
</g>
<!-- Node4&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M364.21,-97.66C357.99,-107.06 366.59,-116 390,-116 404.27,-116 413.03,-112.68 416.3,-107.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="419.78,-107.48 415.79,-97.66 412.79,-107.82 419.78,-107.48"/>
</g>
<!-- Node5&#45;&gt;Node5 -->
<g id="edge6" class="edge">
<title>Node5&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M214.71,-30.66C208.49,-40.06 217.09,-49 240.5,-49 254.77,-49 263.53,-45.68 266.8,-40.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="270.28,-40.48 266.29,-30.66 263.29,-40.82 270.28,-40.48"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -1,10 +1,10 @@
<map id="test_remove" name="test_remove">
<area shape="rect" id="node1" title="Function for testing remove()." alt="" coords="5,195,101,222"/>
<area shape="rect" id="node2" href="$d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2" title="Recursive function to check if a value is in the BST." alt="" coords="149,5,285,47"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="181,71,253,98"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb" title="Recursive function to find the maximum value in the BST." alt="" coords="149,123,285,164"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153" title="Recursive function to find the minimum value in the BST." alt="" coords="149,188,285,229"/>
<area shape="rect" id="node6" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="149,253,285,295"/>
<area shape="rect" id="node7" href="$d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153" title="Recursive function to remove a value from the BST." alt="" coords="149,319,285,360"/>
<area shape="rect" id="node8" href="$d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3" title="Get the number of values in the BST." alt="" coords="149,384,285,425"/>
<area shape="rect" id="node1" title="Function for testing remove()." alt="" coords="5,267,101,294"/>
<area shape="rect" id="node2" href="$d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2" title="Recursive function to check if a value is in the BST." alt="" coords="149,29,285,71"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="181,95,253,122"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb" title="Recursive function to find the maximum value in the BST." alt="" coords="149,171,285,212"/>
<area shape="rect" id="node5" href="$d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153" title="Recursive function to find the minimum value in the BST." alt="" coords="149,260,285,301"/>
<area shape="rect" id="node6" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="149,349,285,391"/>
<area shape="rect" id="node7" href="$d9/dde/classbinary__search__tree.html#af4a865ce5244608819b169fc78a41153" title="Recursive function to remove a value from the BST." alt="" coords="149,415,285,456"/>
<area shape="rect" id="node8" href="$d9/dde/classbinary__search__tree.html#a564fe43e7e8f7ecb6f10667a70fbc6f3" title="Get the number of values in the BST." alt="" coords="149,480,285,521"/>
</map>

View File

@@ -1 +1 @@
8f2af181076079705117a24318e556cd
2e7bc9b01c27c11af923b49abdd0e751

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test_remove Pages: 1 -->
<svg width="218pt" height="323pt"
viewBox="0.00 0.00 218.00 323.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 319)">
<svg width="218pt" height="395pt"
viewBox="0.00 0.00 218.00 395.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 391)">
<title>test_remove</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-319 214,-319 214,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-391 214,-391 214,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function for testing remove().">
<polygon fill="#bfbfbf" stroke="black" points="0,-153 0,-172 72,-172 72,-153 0,-153"/>
<text text-anchor="middle" x="36" y="-160" font-family="Helvetica,sans-Serif" font-size="10.00">test_remove</text>
<polygon fill="#bfbfbf" stroke="black" points="0,-171 0,-190 72,-190 72,-171 0,-171"/>
<text text-anchor="middle" x="36" y="-178" font-family="Helvetica,sans-Serif" font-size="10.00">test_remove</text>
</a>
</g>
</g>
@@ -22,64 +22,64 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/dde/classbinary__search__tree.html#aa4f84b2eec9b9201af1840868ddb5fb2" target="_top" xlink:title="Recursive function to check if a value is in the BST.">
<polygon fill="white" stroke="black" points="108,-284.5 108,-314.5 210,-314.5 210,-284.5 108,-284.5"/>
<text text-anchor="start" x="116" y="-302.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="159" y="-291.5" font-family="Helvetica,sans-Serif" font-size="10.00">::contains</text>
<polygon fill="white" stroke="black" points="108,-338.5 108,-368.5 210,-368.5 210,-338.5 108,-338.5"/>
<text text-anchor="start" x="116" y="-356.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="159" y="-345.5" font-family="Helvetica,sans-Serif" font-size="10.00">::contains</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M40.94,-172.12C49.96,-193.15 74.01,-243.79 108,-274.5 109.67,-276.01 111.44,-277.45 113.29,-278.82"/>
<polygon fill="midnightblue" stroke="midnightblue" points="111.49,-281.82 121.77,-284.39 115.34,-275.97 111.49,-281.82"/>
<path fill="none" stroke="midnightblue" d="M39.26,-190.07C45.74,-215.64 66.63,-286.45 108,-328.5 109.38,-329.9 110.85,-331.24 112.4,-332.51"/>
<polygon fill="midnightblue" stroke="midnightblue" points="110.42,-335.4 120.6,-338.35 114.48,-329.7 110.42,-335.4"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="132,-246 132,-265 186,-265 186,-246 132,-246"/>
<text text-anchor="middle" x="159" y="-253" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
<polygon fill="white" stroke="black" points="132,-300 132,-319 186,-319 186,-300 132,-300"/>
<text text-anchor="middle" x="159" y="-307" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M44.21,-172.48C55.95,-188.1 80.68,-218.42 108,-236.5 112.39,-239.4 117.28,-241.95 122.25,-244.16"/>
<polygon fill="midnightblue" stroke="midnightblue" points="121.18,-247.51 131.76,-248 123.79,-241.01 121.18,-247.51"/>
<path fill="none" stroke="midnightblue" d="M40.76,-190.2C49.44,-211.36 72.84,-262.04 108,-290.5 112.33,-294.01 117.38,-296.91 122.57,-299.31"/>
<polygon fill="midnightblue" stroke="midnightblue" points="121.36,-302.59 131.94,-303.08 123.97,-296.1 121.36,-302.59"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d9/dde/classbinary__search__tree.html#a75f897af6aa732a9901454401c869bcb" target="_top" xlink:title="Recursive function to find the maximum value in the BST.">
<polygon fill="white" stroke="black" points="108,-196.5 108,-226.5 210,-226.5 210,-196.5 108,-196.5"/>
<text text-anchor="start" x="116" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="159" y="-203.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_max</text>
<polygon fill="white" stroke="black" points="108,-232.5 108,-262.5 210,-262.5 210,-232.5 108,-232.5"/>
<text text-anchor="start" x="116" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="159" y="-239.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M60.62,-172.06C75.01,-177.89 93.9,-185.54 111.21,-192.55"/>
<polygon fill="midnightblue" stroke="midnightblue" points="110.05,-195.86 120.63,-196.37 112.68,-189.37 110.05,-195.86"/>
<path fill="none" stroke="midnightblue" d="M51.99,-190.16C66.19,-199.17 88.23,-212.8 108,-223.5 110.71,-224.97 113.52,-226.44 116.36,-227.9"/>
<polygon fill="midnightblue" stroke="midnightblue" points="114.98,-231.12 125.49,-232.46 118.11,-224.86 114.98,-231.12"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153" target="_top" xlink:title="Recursive function to find the minimum value in the BST.">
<polygon fill="white" stroke="black" points="108,-147.5 108,-177.5 210,-177.5 210,-147.5 108,-147.5"/>
<text text-anchor="start" x="116" y="-165.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="159" y="-154.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_min</text>
<polygon fill="white" stroke="black" points="108,-165.5 108,-195.5 210,-195.5 210,-165.5 108,-165.5"/>
<text text-anchor="start" x="116" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="159" y="-172.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_min</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge6" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M72.32,-162.5C80.25,-162.5 88.87,-162.5 97.49,-162.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="97.57,-166 107.57,-162.5 97.57,-159 97.57,-166"/>
<path fill="none" stroke="midnightblue" d="M72.32,-180.5C80.25,-180.5 88.87,-180.5 97.49,-180.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="97.57,-184 107.57,-180.5 97.57,-177 97.57,-184"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
@@ -92,10 +92,10 @@
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<g id="edge8" class="edge">
<title>Node1&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M60.62,-152.94C75.01,-147.11 93.9,-139.46 111.21,-132.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="112.68,-135.63 120.63,-128.63 110.05,-129.14 112.68,-135.63"/>
<path fill="none" stroke="midnightblue" d="M54.34,-170.9C71.91,-161.17 99.63,-145.82 121.98,-133.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="123.82,-136.43 130.87,-128.52 120.43,-130.3 123.82,-136.43"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
@@ -108,10 +108,10 @@
</g>
</g>
<!-- Node1&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<g id="edge10" class="edge">
<title>Node1&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M44.46,-152.98C56.55,-138.01 81.74,-108.7 108,-89.5 110.31,-87.81 112.76,-86.17 115.27,-84.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="117.11,-87.59 124.01,-79.55 113.6,-81.53 117.11,-87.59"/>
<path fill="none" stroke="midnightblue" d="M42.51,-170.85C53.18,-152.87 78.23,-113.87 108,-89.5 109.97,-87.89 112.06,-86.34 114.23,-84.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="116.2,-87.76 122.88,-79.54 112.53,-81.81 116.2,-87.76"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
@@ -124,10 +124,34 @@
</g>
</g>
<!-- Node1&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<g id="edge11" class="edge">
<title>Node1&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M40.45,-152.69C48.8,-130.19 72.08,-74.21 108,-40.5 109.49,-39.11 111.06,-37.77 112.71,-36.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="115.07,-39.13 121.39,-30.62 111.14,-33.33 115.07,-39.13"/>
<path fill="none" stroke="midnightblue" d="M39.61,-170.73C46.69,-145.97 68.38,-79.89 108,-40.5 109.42,-39.09 110.93,-37.74 112.52,-36.46"/>
<polygon fill="midnightblue" stroke="midnightblue" points="114.75,-39.17 120.93,-30.57 110.73,-33.44 114.75,-39.17"/>
</g>
<!-- Node2&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M137.74,-368.66C132.61,-378.06 139.7,-387 159,-387 170.76,-387 177.99,-383.68 180.68,-378.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="184.16,-378.51 180.26,-368.66 177.17,-378.79 184.16,-378.51"/>
</g>
<!-- Node4&#45;&gt;Node4 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M137.74,-262.66C132.61,-272.06 139.7,-281 159,-281 170.76,-281 177.99,-277.68 180.68,-272.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="184.16,-272.51 180.26,-262.66 177.17,-272.79 184.16,-272.51"/>
</g>
<!-- Node5&#45;&gt;Node5 -->
<g id="edge7" class="edge">
<title>Node5&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M137.74,-195.66C132.61,-205.06 139.7,-214 159,-214 170.76,-214 177.99,-210.68 180.68,-205.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="184.16,-205.51 180.26,-195.66 177.17,-205.79 184.16,-205.51"/>
</g>
<!-- Node6&#45;&gt;Node6 -->
<g id="edge9" class="edge">
<title>Node6&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M137.74,-128.66C132.61,-138.06 139.7,-147 159,-147 170.76,-147 177.99,-143.68 180.68,-138.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="184.16,-138.51 180.26,-128.66 177.17,-138.79 184.16,-138.51"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -1,6 +1,6 @@
<map id="test_find_min" name="test_find_min">
<area shape="rect" id="node1" title="Function for testing find_min()." alt="" coords="5,64,107,91"/>
<area shape="rect" id="node1" title="Function for testing find_min()." alt="" coords="5,88,107,115"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="187,5,259,32"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153" title="Recursive function to find the minimum value in the BST." alt="" coords="155,57,291,98"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="155,122,291,163"/>
<area shape="rect" id="node3" href="$d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153" title="Recursive function to find the minimum value in the BST." alt="" coords="155,81,291,122"/>
<area shape="rect" id="node4" href="$d9/dde/classbinary__search__tree.html#a9d1e7e10efa74d741bf48cf032df3778" title="Recursive function to insert a value into the BST." alt="" coords="155,170,291,211"/>
</map>

View File

@@ -1 +1 @@
7eae2975ebc863cccb392a7cd9b9e210
538aed02119d9bbd41dc78a396991224

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test_find_min Pages: 1 -->
<svg width="222pt" height="127pt"
viewBox="0.00 0.00 222.00 126.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 122.5)">
<svg width="222pt" height="163pt"
viewBox="0.00 0.00 222.00 162.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 158.5)">
<title>test_find_min</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-122.5 218,-122.5 218,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-158.5 218,-158.5 218,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function for testing find_min().">
<polygon fill="#bfbfbf" stroke="black" points="0,-55 0,-74 76,-74 76,-55 0,-55"/>
<text text-anchor="middle" x="38" y="-62" font-family="Helvetica,sans-Serif" font-size="10.00">test_find_min</text>
<polygon fill="#bfbfbf" stroke="black" points="0,-73 0,-92 76,-92 76,-73 0,-73"/>
<text text-anchor="middle" x="38" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00">test_find_min</text>
</a>
</g>
</g>
@@ -22,32 +22,32 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="136,-99 136,-118 190,-118 190,-99 136,-99"/>
<text text-anchor="middle" x="163" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
<polygon fill="white" stroke="black" points="136,-135 136,-154 190,-154 190,-135 136,-135"/>
<text text-anchor="middle" x="163" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M65.69,-74.05C83.38,-80.38 106.8,-88.75 126.11,-95.66"/>
<polygon fill="midnightblue" stroke="midnightblue" points="125.19,-99.05 135.79,-99.12 127.55,-92.46 125.19,-99.05"/>
<path fill="none" stroke="midnightblue" d="M53.69,-92.16C68.15,-101.42 91.05,-115.44 112,-125.5 116.64,-127.73 121.62,-129.88 126.57,-131.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="125.37,-135.18 135.96,-135.55 127.91,-128.66 125.37,-135.18"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d9/dde/classbinary__search__tree.html#af9a2c7c187a7ca3142c77ce342ef3153" target="_top" xlink:title="Recursive function to find the minimum value in the BST.">
<polygon fill="white" stroke="black" points="112,-49.5 112,-79.5 214,-79.5 214,-49.5 112,-49.5"/>
<text text-anchor="start" x="120" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="163" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_min</text>
<polygon fill="white" stroke="black" points="112,-67.5 112,-97.5 214,-97.5 214,-67.5 112,-67.5"/>
<text text-anchor="start" x="120" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">binary_search_tree</text>
<text text-anchor="middle" x="163" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">::find_min</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M76.24,-64.5C84.27,-64.5 92.95,-64.5 101.61,-64.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="101.72,-68 111.72,-64.5 101.72,-61 101.72,-68"/>
<path fill="none" stroke="midnightblue" d="M76.24,-82.5C84.27,-82.5 92.95,-82.5 101.61,-82.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="101.72,-86 111.72,-82.5 101.72,-79 101.72,-86"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
@@ -60,10 +60,22 @@
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M63.01,-54.94C77.64,-49.11 96.84,-41.46 114.44,-34.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="116.02,-37.59 124.01,-30.63 113.43,-31.08 116.02,-37.59"/>
<path fill="none" stroke="midnightblue" d="M56.62,-72.9C74.49,-63.17 102.66,-47.82 125.38,-35.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="127.32,-38.38 134.42,-30.52 123.97,-32.23 127.32,-38.38"/>
</g>
<!-- Node3&#45;&gt;Node3 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M141.39,-97.66C136.18,-107.06 143.38,-116 163,-116 174.95,-116 182.3,-112.68 185.03,-107.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="188.52,-107.51 184.61,-97.66 181.52,-107.79 188.52,-107.51"/>
</g>
<!-- Node4&#45;&gt;Node4 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M141.39,-30.66C136.18,-40.06 143.38,-49 163,-49 174.95,-49 182.3,-45.68 185.03,-40.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="188.52,-40.51 184.61,-30.66 181.52,-40.79 188.52,-40.51"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: n_queens_all_solutions Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d44/namespacen__queens__all__solutions.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,22 +90,21 @@ $(document).ready(function(){initNavTree('df/d44/namespacen__queens__all__soluti
</div>
<div class="header">
<div class="headertitle">
<div class="title">n_queens_all_solutions Namespace Reference</div> </div>
<div class="headertitle"><div class="title">n_queens_all_solutions Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Functions for <a href="https://en.wikipedia.org/wiki/Eight_queens_puzzle">Eight Queens</a> puzzle with all solutions.
<p>Functions for <a href="https://en.wikipedia.org/wiki/Eight_queens_puzzle" target="_blank">Eight Queens</a> puzzle with all solutions.
<a href="../../df/d44/namespacen__queens__all__solutions.html#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/Eight_queens_puzzle">Eight Queens</a> puzzle with all solutions. </p>
<div class="textblock"><p >Functions for <a href="https://en.wikipedia.org/wiki/Eight_queens_puzzle" target="_blank">Eight Queens</a> puzzle with all solutions. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../df/d44/namespacen__queens__all__solutions.html">n_queens_all_solutions</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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<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"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @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(); });
/* @license-end */
</script>
@@ -90,29 +90,28 @@ $(document).ready(function(){initNavTree('d6/dae/classothers_1_1lru__cache_1_1_l
</div>
<div class="header">
<div class="headertitle">
<div class="title">others::lru_cache::LRUCache Member List</div> </div>
<div class="headertitle"><div class="title">others::lru_cache::LRUCache Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a3ee3560a6b90e6f50f6e063d690ba8e8">cache</a></td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aad506b1c1a3cd5b93cc7e497626bfb53">display</a>()</td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aad506b1c1a3cd5b93cc7e497626bfb53">display</a>()</td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aa24a141455b9fbcbec22392c28d04933">getHits</a>() const</td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a78be932dac71c90f485a67d4fda877e2">getPageFault</a>() const</td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a78be932dac71c90f485a67d4fda877e2">getPageFault</a>() const</td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a5f33913e7ddfbb38062362e7bd859154">hits</a></td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a41c9b6f1693b8a316cc4a2d8c9149ba4">LRUCache</a>(uint64_t pf)</td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a41c9b6f1693b8a316cc4a2d8c9149ba4">LRUCache</a>(uint64_t pf)</td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a09cbe562b0c396329607f5d388d57c9c">pageFault</a></td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a1aafd0444b410e0fcb66287e9954c893">pageFrame</a></td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a1aafd0444b410e0fcb66287e9954c893">pageFrame</a></td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#aa4d6db56109af196ffc7e5f72bc9907c">pageMap</a></td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a7dbf04bf7e1472c48639694f0b110602">refer</a>(uint64_t page)</td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html#a7dbf04bf7e1472c48639694f0b110602">refer</a>(uint64_t page)</td><td class="entry"><a class="el" href="../../d6/dae/classothers_1_1lru__cache_1_1_l_r_u_cache.html">others::lru_cache::LRUCache</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- 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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: hashing/chaining.cpp Pages: 1 -->
<svg width="259pt" height="84pt"

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: greedy_algorithms/jumpgame.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d64/jumpgame_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,12 +92,11 @@ $(document).ready(function(){initNavTree('df/d64/jumpgame_8cpp.html','../../');
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">jumpgame.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">jumpgame.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Implementation of an algorithm to solve the <a href="../../(https://leetcode.com/problems/jump-game/)">jumping game</a> problem.
<p>Implementation of an algorithm to solve the <a href="../../(https://leetcode.com/problems/jump-game/)" target="_blank">jumping game</a> problem.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;vector&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -109,7 +108,7 @@ Include dependency graph for jumpgame.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af205390325e8c999bd68b93fa5252755"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d64/jumpgame_8cpp.html#af205390325e8c999bd68b93fa5252755">canJump</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:af205390325e8c999bd68b93fa5252755"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements the above algorithm. <a href="../../df/d64/jumpgame_8cpp.html#af205390325e8c999bd68b93fa5252755">More...</a><br /></td></tr>
@@ -122,10 +121,10 @@ Functions</h2></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>
<div class="textblock"><p>Implementation of an algorithm to solve the <a href="../../(https://leetcode.com/problems/jump-game/)">jumping game</a> problem. </p>
<p><b>Problem statement:</b> Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Determine if you are able to reach the last index. This solution takes in input as a vector and output as a boolean to check if you can reach the last position. We name the indices good and bad based on whether we can reach the destination if we start at that position. We initialize the last index as lastPos. Here, we start from the end of the array and check if we can ever reach the first index. We check if the sum of the index and the maximum jump count given is greater than or equal to the lastPos. If yes, then that is the last position you can reach starting from the back. After the end of the loop, if we reach the lastPos as 0, then the destination can be reached from the start position. </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/rakshaa2000">Rakshaa Viswanathan</a> </dd></dl>
<div class="textblock"><p >Implementation of an algorithm to solve the <a href="../../(https://leetcode.com/problems/jump-game/)" target="_blank">jumping game</a> problem. </p>
<p ><b>Problem statement:</b> Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Determine if you are able to reach the last index. This solution takes in input as a vector and output as a boolean to check if you can reach the last position. We name the indices good and bad based on whether we can reach the destination if we start at that position. We initialize the last index as lastPos. Here, we start from the end of the array and check if we can ever reach the first index. We check if the sum of the index and the maximum jump count given is greater than or equal to the lastPos. If yes, then that is the last position you can reach starting from the back. After the end of the loop, if we reach the lastPos as 0, then the destination can be reached from the start position. </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/rakshaa2000" target="_blank">Rakshaa Viswanathan</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="af205390325e8c999bd68b93fa5252755"></a>
<a id="af205390325e8c999bd68b93fa5252755" name="af205390325e8c999bd68b93fa5252755"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af205390325e8c999bd68b93fa5252755">&#9670;&nbsp;</a></span>canJump()</h2>
<div class="memitem">
@@ -149,15 +148,15 @@ Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool value whether final index can be reached or not </dd></dl>
<div class="fragment"><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">auto</span> lastPos = nums.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 1;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = nums.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 1; i &gt;= 0; i--) {</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span> (i + nums[i] &gt;= lastPos) {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; lastPos = i;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; }</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> lastPos == 0;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">auto</span> lastPos = nums.<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"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = nums.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>() - 1; i &gt;= 0; i--) {</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">if</span> (i + nums[i] &gt;= lastPos) {</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> lastPos = i;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> }</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> }</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> lastPos == 0;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>}</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><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -168,7 +167,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -186,10 +185,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"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="../../df/d64/jumpgame_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_function" href="../../df/d64/jumpgame_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>}</div>
<div class="ttc" id="ajumpgame_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../df/d64/jumpgame_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> jumpgame.cpp:41</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -200,7 +199,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -225,28 +224,28 @@ Here is the call graph for this function:</div>
<p>Function to test above algorithm. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Test 1</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> num1={4,3,1,0,5};</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; assert(<a class="code" href="../../df/d64/jumpgame_8cpp.html#af205390325e8c999bd68b93fa5252755">canJump</a>(num1)==<span class="keyword">true</span>);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;<span class="stringliteral">&quot;Input: &quot;</span>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> i: num1){</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;i&lt;&lt;<span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;<span class="stringliteral">&quot;Output: true&quot;</span>&lt;&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// Test 2</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> num2={3,2,1,0,4};</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; assert(<a class="code" href="../../df/d64/jumpgame_8cpp.html#af205390325e8c999bd68b93fa5252755">canJump</a>(num2)==<span class="keyword">false</span>);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;<span class="stringliteral">&quot;Input: &quot;</span>;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> i: num2){</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;i&lt;&lt;<span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;<span class="stringliteral">&quot;Output: false&quot;</span>&lt;&lt;<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// Test 1</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> num1={4,3,1,0,5};</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> assert(<a class="code hl_function" href="../../df/d64/jumpgame_8cpp.html#af205390325e8c999bd68b93fa5252755">canJump</a>(num1)==<span class="keyword">true</span>);</div>
<div class="line"><a id="l00045" name="l00045"></a><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;Input: &quot;</span>;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">for</span>(<span class="keyword">auto</span> i: num1){</div>
<div class="line"><a id="l00047" name="l00047"></a><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;i&lt;&lt;<span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</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;Output: true&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"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// Test 2</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> num2={3,2,1,0,4};</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> assert(<a class="code hl_function" href="../../df/d64/jumpgame_8cpp.html#af205390325e8c999bd68b93fa5252755">canJump</a>(num2)==<span class="keyword">false</span>);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</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;Input: &quot;</span>;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">for</span>(<span class="keyword">auto</span> i: num2){</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;i&lt;&lt;<span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</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;Output: false&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"><a id="l00058" name="l00058"></a><span class="lineno"> 58</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="ajumpgame_8cpp_html_af205390325e8c999bd68b93fa5252755"><div class="ttname"><a href="../../df/d64/jumpgame_8cpp.html#af205390325e8c999bd68b93fa5252755">canJump</a></div><div class="ttdeci">bool canJump(const std::vector&lt; int &gt; &amp;nums)</div><div class="ttdoc">This function implements the above algorithm.</div><div class="ttdef"><b>Definition:</b> jumpgame.cpp:26</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt; int &gt;</a></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 class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -262,7 +261,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_0eaa691bd54ab0922ca7f50599de6d22.html">greedy_algorithms</a></li><li class="navelem"><a class="el" href="../../df/d64/jumpgame_8cpp.html">jumpgame.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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test Pages: 1 -->
<svg width="256pt" height="66pt"

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="330pt" height="66pt"

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: canJump Pages: 1 -->
<svg width="187pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math/vector_cross_product.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d66/vector__cross__product_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('df/d66/vector__cross__product_8cpp.htm
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">vector_cross_product.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">vector_cross_product.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Calculates the <a href="https://en.wikipedia.org/wiki/Cross_product">Cross Product</a> and the magnitude of two mathematical 3D vectors.
<p>Calculates the <a href="https://en.wikipedia.org/wiki/Cross_product" target="_blank">Cross Product</a> and the magnitude of two mathematical 3D vectors.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;array&gt;</code><br />
@@ -111,20 +110,20 @@ Include dependency graph for vector_cross_product.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:dd/d47/namespacemath"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html">math</a></td></tr>
<tr class="memitem:dd/d47/namespacemath"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html">math</a></td></tr>
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft">&#160;</td><td class="mdescRight">for IO operations <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d4/d91/namespacevector__cross"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d91/namespacevector__cross.html">vector_cross</a></td></tr>
<tr class="memitem:d4/d91/namespacevector__cross"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d91/namespacevector__cross.html">vector_cross</a></td></tr>
<tr class="memdesc:d4/d91/namespacevector__cross"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for Vector Cross Product algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:abed307975124243d63fe2e118254defe"><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; double, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe">math::vector_cross::cross</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 3 &gt; &amp;A, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 3 &gt; &amp;B)</td></tr>
<tr class="memdesc:abed307975124243d63fe2e118254defe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to calculate the cross product of the passed arrays containing the direction ratios of the two mathematical vectors. <a href="../../df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe">More...</a><br /></td></tr>
<tr class="separator:abed307975124243d63fe2e118254defe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a225732399c5c076976eae5b180a9f8c9"><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; double, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9">math::vector_cross::cross</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 3 &gt; &amp;A, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 3 &gt; &amp;B)</td></tr>
<tr class="memdesc:a225732399c5c076976eae5b180a9f8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to calculate the cross product of the passed arrays containing the direction ratios of the two mathematical vectors. <a href="../../df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9">More...</a><br /></td></tr>
<tr class="separator:a225732399c5c076976eae5b180a9f8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b2a9757a87c18e1642d72410ecfaba8"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8">math::vector_cross::mag</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 3 &gt; &amp;vec)</td></tr>
<tr class="memdesc:a4b2a9757a87c18e1642d72410ecfaba8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the magnitude of the mathematical vector from it's direction ratios. <a href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8">More...</a><br /></td></tr>
<tr class="separator:a4b2a9757a87c18e1642d72410ecfaba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -136,29 +135,29 @@ Functions</h2></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>
<div class="textblock"><p>Calculates the <a href="https://en.wikipedia.org/wiki/Cross_product">Cross Product</a> and the magnitude of two mathematical 3D vectors. </p>
<p>Cross Product of two vectors gives a vector. Direction Ratios of a vector are the numeric parts of the given vector. They are the tree parts of the vector which determine the magnitude (value) of the vector. The method of finding a cross product is the same as finding the determinant of an order 3 matrix consisting of the first row with unit vectors of magnitude 1, the second row with the direction ratios of the first vector and the third row with the direction ratios of the second vector. The magnitude of a vector is it's value expressed as a number. Let the direction ratios of the first vector, P be: a, b, c Let the direction ratios of the second vector, Q be: x, y, z Therefore the calculation for the cross product can be arranged as:</p>
<div class="textblock"><p >Calculates the <a href="https://en.wikipedia.org/wiki/Cross_product" target="_blank">Cross Product</a> and the magnitude of two mathematical 3D vectors. </p>
<p >Cross Product of two vectors gives a vector. Direction Ratios of a vector are the numeric parts of the given vector. They are the tree parts of the vector which determine the magnitude (value) of the vector. The method of finding a cross product is the same as finding the determinant of an order 3 matrix consisting of the first row with unit vectors of magnitude 1, the second row with the direction ratios of the first vector and the third row with the direction ratios of the second vector. The magnitude of a vector is it's value expressed as a number. Let the direction ratios of the first vector, P be: a, b, c Let the direction ratios of the second vector, Q be: x, y, z Therefore the calculation for the cross product can be arranged as:</p>
<div class="fragment"><div class="line">P x Q:</div>
<div class="line"> 1 1 1</div>
<div class="line"> a b c</div>
<div class="line"> x y z</div>
</div><!-- fragment --><p>The direction ratios (DR) are calculated as follows: 1st DR, J: (b * z) - (c * y) 2nd DR, A: -((a * z) - (c * x)) 3rd DR, N: (a * y) - (b * x)</p>
<p>Therefore, the direction ratios of the cross product are: J, A, N The following C++ Program calculates the direction ratios of the cross products of two vector. The program uses a function, <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe" title="Function to calculate the cross product of the passed arrays containing the direction ratios of the t...">cross()</a> for doing so. The direction ratios for the first and the second vector has to be passed one by one seperated by a space character.</p>
<p>Magnitude of a vector is the square root of the sum of the squares of the direction ratios.</p>
</div><!-- fragment --><p >The direction ratios (DR) are calculated as follows: 1st DR, J: (b * z) - (c * y) 2nd DR, A: -((a * z) - (c * x)) 3rd DR, N: (a * y) - (b * x)</p>
<p >Therefore, the direction ratios of the cross product are: J, A, N The following C++ Program calculates the direction ratios of the cross products of two vector. The program uses a function, <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9" title="Function to calculate the cross product of the passed arrays containing the direction ratios of the t...">cross()</a> for doing so. The direction ratios for the first and the second vector has to be passed one by one seperated by a space character.</p>
<p >Magnitude of a vector is the square root of the sum of the squares of the direction ratios.</p>
<h3><a class="anchor" id="autotoc_md76"></a>
Example:</h3>
<p>An example of a running instance of the executable program: </p><pre class="fragment">Pass the first Vector: 1 2 3
<p >An example of a running instance of the executable program: </p><pre class="fragment">Pass the first Vector: 1 2 3
</pre><p> Pass the second Vector: 4 5 6 The cross product is: -3 6 -3 Magnitude: 7.34847</p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Shreyas-OwO">Shreyas Sable</a> </dd></dl>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Shreyas-OwO" target="_blank">Shreyas Sable</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="abed307975124243d63fe2e118254defe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abed307975124243d63fe2e118254defe">&#9670;&nbsp;</a></span>cross()</h2>
<a id="a225732399c5c076976eae5b180a9f8c9" name="a225732399c5c076976eae5b180a9f8c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a225732399c5c076976eae5b180a9f8c9">&#9670;&nbsp;</a></span>cross()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt;double, 3&gt; math::vector_cross::cross </td>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; double, 3 &gt; math::vector_cross::cross </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; double, 3 &gt; &amp;&#160;</td>
<td class="paramname"><em>A</em>, </td>
@@ -186,26 +185,26 @@ Example:</h3>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the direction ratios of the cross product. </dd></dl>
<p>Performs the cross product as shown in @algorithm.</p>
<div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> product;<span class="comment"></span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> /// Performs the cross product as shown in @algorithm.</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"></span> product[0] = (A[1] * B[2]) - (A[2] * B[1]);</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; product[1] = -((A[0] * B[2]) - (A[2] * B[0]));</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; product[2] = (A[0] * B[1]) - (A[1] * B[0]);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> product;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div>
<p >Performs the cross product as shown in @algorithm.</p>
<div class="fragment"><div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> product;<span class="comment"></span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> /// Performs the cross product as shown in @algorithm.</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"></span> product[0] = (A[1] * B[2]) - (A[2] * B[1]);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> product[1] = -((A[0] * B[2]) - (A[2] * B[0]));</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> product[2] = (A[0] * B[1]) - (A[1] * B[0]);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">return</span> product;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</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><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d66/vector__cross__product_8cpp_abed307975124243d63fe2e118254defe_cgraph.svg" width="146" height="76"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d66/vector__cross__product_8cpp_a225732399c5c076976eae5b180a9f8c9_cgraph.svg" width="146" height="76"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a4b2a9757a87c18e1642d72410ecfaba8"></a>
<a id="a4b2a9757a87c18e1642d72410ecfaba8" name="a4b2a9757a87c18e1642d72410ecfaba8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b2a9757a87c18e1642d72410ecfaba8">&#9670;&nbsp;</a></span>mag()</h2>
<div class="memitem">
@@ -229,10 +228,10 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>type: double description: the magnitude of the mathematical vector from the given direction ratios. </dd></dl>
<div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">double</span> magnitude = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">sqrt</a>((vec[0] * vec[0]) + (vec[1] * vec[1]) + (vec[2] * vec[2]));</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> magnitude;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> {</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">double</span> magnitude = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html">sqrt</a>((vec[0] * vec[0]) + (vec[1] * vec[1]) + (vec[2] * vec[2]));</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">return</span> magnitude;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</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>
@@ -243,7 +242,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -260,43 +259,43 @@ Here is the call graph for this function:</div>
</div><div class="memdoc">
<p>Main Function. </p>
<p>Asks the user to enter the direction ratios for each of the two mathematical vectors using <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> </p><dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<p>Tests the functions with sample input before asking for user input.</p>
<p>Gets the values for the first vector.</p>
<p>Gets the values for the second vector.</p>
<p>Displays the output out.</p>
<p>Displays the magnitude of the cross product.</p>
<div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> /// Tests the functions with sample input before asking for user input.</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"></span> <a class="code" href="../../df/d66/vector__cross__product_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> vec1;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> vec2;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> /// Gets the values for the first vector.</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nPass the first Vector: &quot;</span>;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; vec1[0] &gt;&gt; vec1[1] &gt;&gt; vec1[2];</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> /// Gets the values for the second vector.</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nPass the second Vector: &quot;</span>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; vec2[0] &gt;&gt; vec2[1] &gt;&gt; vec2[2];</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> /// Displays the output out.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> product = <a class="code" href="../../df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe">math::vector_cross::cross</a>(vec1, vec2);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nThe cross product is: &quot;</span> &lt;&lt; product[0] &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; product[1] &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; product[2] &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> /// Displays the magnitude of the cross product.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Magnitude: &quot;</span> &lt;&lt; <a class="code" href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8">math::vector_cross::mag</a>(product) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div>
<p >Asks the user to enter the direction ratios for each of the two mathematical vectors using <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> </p><dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<p >Tests the functions with sample input before asking for user input.</p>
<p >Gets the values for the first vector.</p>
<p >Gets the values for the second vector.</p>
<p >Displays the output out.</p>
<p >Displays the magnitude of the cross product.</p>
<div class="fragment"><div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"></span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> /// Tests the functions with sample input before asking for user input.</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"></span> <a class="code hl_function" href="../../df/d66/vector__cross__product_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>();</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> vec1;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> vec2;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment"></span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"> /// Gets the values for the first vector.</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"></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;\nPass the first Vector: &quot;</span>;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; vec1[0] &gt;&gt; vec1[1] &gt;&gt; vec1[2];</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"></span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"> /// Gets the values for the second vector.</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"></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;\nPass the second Vector: &quot;</span>;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; vec2[0] &gt;&gt; vec2[1] &gt;&gt; vec2[2];</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"></span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> /// Displays the output out.</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> product = <a class="code hl_function" href="../../df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9">math::vector_cross::cross</a>(vec1, vec2);</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</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;\nThe cross product is: &quot;</span> &lt;&lt; product[0] &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; product[1] &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; product[2] &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"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"></span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> /// Displays the magnitude of the cross product.</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"></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;Magnitude: &quot;</span> &lt;&lt; <a class="code hl_function" href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8">math::vector_cross::mag</a>(product) &lt;&lt; <span class="stringliteral">&quot;\n&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"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>}</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="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="avector__cross__product_8cpp_html_a225732399c5c076976eae5b180a9f8c9"><div class="ttname"><a href="../../df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9">math::vector_cross::cross</a></div><div class="ttdeci">std::array&lt; double, 3 &gt; cross(const std::array&lt; double, 3 &gt; &amp;A, const std::array&lt; double, 3 &gt; &amp;B)</div><div class="ttdoc">Function to calculate the cross product of the passed arrays containing the direction ratios of the t...</div><div class="ttdef"><b>Definition:</b> vector_cross_product.cpp:69</div></div>
<div class="ttc" id="avector__cross__product_8cpp_html_a4b2a9757a87c18e1642d72410ecfaba8"><div class="ttname"><a href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8">math::vector_cross::mag</a></div><div class="ttdeci">double mag(const std::array&lt; double, 3 &gt; &amp;vec)</div><div class="ttdoc">Calculates the magnitude of the mathematical vector from it's direction ratios.</div><div class="ttdef"><b>Definition:</b> vector_cross_product.cpp:83</div></div>
<div class="ttc" id="avector__cross__product_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../df/d66/vector__cross__product_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">namespace math</div><div class="ttdef"><b>Definition:</b> vector_cross_product.cpp:94</div></div>
<div class="ttc" id="avector__cross__product_8cpp_html_abed307975124243d63fe2e118254defe"><div class="ttname"><a href="../../df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe">math::vector_cross::cross</a></div><div class="ttdeci">std::array&lt; double, 3 &gt; cross(const std::array&lt; double, 3 &gt; &amp;A, const std::array&lt; double, 3 &gt; &amp;B)</div><div class="ttdoc">Function to calculate the cross product of the passed arrays containing the direction ratios of the t...</div><div class="ttdef"><b>Definition:</b> vector_cross_product.cpp:69</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -306,7 +305,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -330,19 +329,19 @@ Here is the call graph for this function:</div>
</div><div class="memdoc">
<p>namespace math </p>
<p>test function.</p>
<p>test the <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe" title="Function to calculate the cross product of the passed arrays containing the direction ratios of the t...">cross()</a> and the <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8" title="Calculates the magnitude of the mathematical vector from it&#39;s direction ratios.">mag()</a> functions. </p>
<p>Tests the <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe" title="Function to calculate the cross product of the passed arrays containing the direction ratios of the t...">cross()</a> function.</p>
<p>Tests the <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8" title="Calculates the magnitude of the mathematical vector from it&#39;s direction ratios.">mag()</a> function.</p>
<div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {<span class="comment"></span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> /// Tests the cross() function.</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"></span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> t_vec = <a class="code" href="../../df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe">math::vector_cross::cross</a>({1, 2, 3}, {4, 5, 6});</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; assert(t_vec[0] == -3 &amp;&amp; t_vec[1] == 6 &amp;&amp; t_vec[2] == -3);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> /// Tests the mag() function.</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"></span> <span class="keywordtype">double</span> t_mag = <a class="code" href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8">math::vector_cross::mag</a>({6, 8, 0});</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; assert(t_mag == 10);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div>
<p >test function.</p>
<p >test the <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9" title="Function to calculate the cross product of the passed arrays containing the direction ratios of the t...">cross()</a> and the <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8" title="Calculates the magnitude of the mathematical vector from it&#39;s direction ratios.">mag()</a> functions. </p>
<p >Tests the <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9" title="Function to calculate the cross product of the passed arrays containing the direction ratios of the t...">cross()</a> function.</p>
<p >Tests the <a class="el" href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8" title="Calculates the magnitude of the mathematical vector from it&#39;s direction ratios.">mag()</a> function.</p>
<div class="fragment"><div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> {<span class="comment"></span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> /// Tests the cross() function.</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;double, 3&gt;</a> t_vec = <a class="code hl_function" href="../../df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9">math::vector_cross::cross</a>({1, 2, 3}, {4, 5, 6});</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> assert(t_vec[0] == -3 &amp;&amp; t_vec[1] == 6 &amp;&amp; t_vec[2] == -3);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"></span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"> /// Tests the mag() function.</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"></span> <span class="keywordtype">double</span> t_mag = <a class="code hl_function" href="../../df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8">math::vector_cross::mag</a>({6, 8, 0});</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> assert(t_mag == 10);</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span>}</div>
</div><!-- fragment -->
</div>
</div>
@@ -352,7 +351,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="../../df/d66/vector__cross__product_8cpp.html">vector_cross_product.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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,6 @@
var vector__cross__product_8cpp =
[
[ "cross", "df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe", null ],
[ "cross", "df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9", null ],
[ "mag", "df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8", null ],
[ "main", "df/d66/vector__cross__product_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "test", "df/d66/vector__cross__product_8cpp.html#aa8dca7b867074164d5f45b0f3851269d", null ]

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: math::vector_cross::cross Pages: 1 -->
<svg width="109pt" height="57pt"

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: math::vector_cross::mag Pages: 1 -->
<svg width="134pt" height="46pt"

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="136pt" height="66pt"

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers::elliptic_curve_key_exchange Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,30 +94,29 @@ $(document).ready(function(){initNavTree('df/d6b/namespaceciphers_1_1elliptic__c
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">ciphers::elliptic_curve_key_exchange Namespace Reference</div> </div>
<div class="headertitle"><div class="title">ciphers::elliptic_curve_key_exchange Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>namespace <a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html" title="namespace elliptic_curve_key_exchange">elliptic_curve_key_exchange</a>
<a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">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><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:af0a6e3521629c25c2b5d620f26429830"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">Point</a></td></tr>
<tr class="memdesc:af0a6e3521629c25c2b5d620f26429830"><td class="mdescLeft">&#160;</td><td class="mdescRight">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="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#af0a6e3521629c25c2b5d620f26429830">More...</a><br /></td></tr>
<tr class="separator:af0a6e3521629c25c2b5d620f26429830"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a> (<a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> number, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a5769b745458157ef2679949155684f3b">power</a>, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;mod)</td></tr>
<tr class="memdesc:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calculates number raised to exponent power under modulo mod using <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp">Modular Exponentiation</a>. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">More...</a><br /></td></tr>
<tr class="memitem:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a> (<a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> number, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a702a9fc90e79b05b863cc4efa26ae2ec">power</a>, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;mod)</td></tr>
<tr class="memdesc:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calculates number raised to exponent power under modulo mod using <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp" target="_blank">Modular Exponentiation</a>. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">More...</a><br /></td></tr>
<tr class="separator:ac00616a4e40d3cd5cfb4da87d9ff9af0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">addition</a> (<a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> a, <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> b, const <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;curve_a_coeff, <a class="el" href="../../d1/d83/classuint256__t.html">uint256_t</a> mod)</td></tr>
<tr class="memdesc:acc5fe9c2032fb7582c38a20d1fa69bcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Addition of points. <a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">More...</a><br /></td></tr>
@@ -127,10 +126,10 @@ Functions</h2></td></tr>
<tr class="separator:a17f3d667241b88115a95282cdd719cb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>namespace <a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html" title="namespace elliptic_curve_key_exchange">elliptic_curve_key_exchange</a> </p>
<p>Demonstration of <a href="https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange">Elliptic Curve Diffie-Hellman</a> key exchange. </p>
<div class="textblock"><p >namespace <a class="el" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html" title="namespace elliptic_curve_key_exchange">elliptic_curve_key_exchange</a> </p>
<p >Demonstration of <a href="https://cryptobook.nakov.com/asymmetric-key-ciphers/ecdh-key-exchange" target="_blank">Elliptic Curve Diffie-Hellman</a> key exchange. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="af0a6e3521629c25c2b5d620f26429830"></a>
<a id="af0a6e3521629c25c2b5d620f26429830" name="af0a6e3521629c25c2b5d620f26429830"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af0a6e3521629c25c2b5d620f26429830">&#9670;&nbsp;</a></span>Point</h2>
<div class="memitem">
@@ -143,12 +142,12 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<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>. </p>
<p>Definition of <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> in the curve. </p>
<p >Definition of <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> in the curve. </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="acc5fe9c2032fb7582c38a20d1fa69bcf"></a>
<a id="acc5fe9c2032fb7582c38a20d1fa69bcf" name="acc5fe9c2032fb7582c38a20d1fa69bcf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc5fe9c2032fb7582c38a20d1fa69bcf">&#9670;&nbsp;</a></span>addition()</h2>
<div class="memitem">
@@ -187,7 +186,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>Addition of points. </p>
<p>Add given point to generate third point. More description can be found <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Point_addition">here</a>, and <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Point_doubling">here</a> </p><dl class="params"><dt>Parameters</dt><dd>
<p >Add given point to generate third point. More description can be found <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Point_addition" target="_blank">here</a>, and <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Point_doubling" target="_blank">here</a> </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td>First point </td></tr>
<tr><td class="paramname">b</td><td>Second point </td></tr>
@@ -197,52 +196,52 @@ Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the resultant point </dd></dl>
<p>Slope</p>
<p>value zero</p>
<p>slope when the line is tangent to curve. This operation is performed while doubling. Taking derivative of <code>y^2 = x^3 + ax + b</code> =&gt; <code>2y dy = (3 * x^2 + a)dx</code> =&gt; <code>(dy/dx) = (3x^2 + a)/(2y)</code></p>
<p>if y co-ordinate is zero, the slope is infinite, return inf. else calculate the slope (here % mod and store in lambda)</p>
<div class="fragment"><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> lambda(0); <span class="comment">/// Slope</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> zero(0); <span class="comment">/// value zero</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; lambda = zero = 0;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> inf = ~zero;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (a.x != b.x || a.y != b.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a>) {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// Slope being infinite.</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (b.x == a.x) {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> {inf, inf};</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> num = (b.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> - a.y + mod), den = (b.x - a.x + mod);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; lambda = (num * (<a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(den, mod - 2, mod))) % mod;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; } <span class="keywordflow">else</span> {<span class="comment"></span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> * slope when the line is tangent to curve. This operation is performed</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> * while doubling. Taking derivative of `y^2 = x^3 + ax + b`</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> * =&gt; `2y dy = (3 * x^2 + a)dx`</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> * =&gt; `(dy/dx) = (3x^2 + a)/(2y)`</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> */</span><span class="comment"></span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> * if y co-ordinate is zero, the slope is infinite, return inf.</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> * else calculate the slope (here % mod and store in lambda)</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (!a.y) {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> {inf, inf};</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> axsq = ((a.x * a.x)) % mod;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// Mulitply by 3 adjustment</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; axsq += (axsq &lt;&lt; 1);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; axsq %= mod;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// Mulitply by 2 adjustment</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> a_2 = (a.y &lt;&lt; 1);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; lambda =</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; (((axsq + curve_a_coeff) % mod) * <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(a_2, mod - 2, mod)) % mod;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="../../d8/dc8/struct_point.html">Point</a> c;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// new point: x = ((lambda^2) - x1 - x2)</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// y = (lambda * (x1 - x)) - y1</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; c.x = ((lambda * lambda) % mod + (mod &lt;&lt; 1) - a.x - b.x) % mod;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; c.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = (((lambda * (a.x + mod - c.x)) % mod) + mod - a.y) % mod;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> c;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div>
<p >Slope</p>
<p >value zero</p>
<p >slope when the line is tangent to curve. This operation is performed while doubling. Taking derivative of <code>y^2 = x^3 + ax + b</code> =&gt; <code>2y dy = (3 * x^2 + a)dx</code> =&gt; <code>(dy/dx) = (3x^2 + a)/(2y)</code></p>
<p >if y co-ordinate is zero, the slope is infinite, return inf. else calculate the slope (here % mod and store in lambda)</p>
<div class="fragment"><div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> lambda(0); <span class="comment">/// Slope</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> zero(0); <span class="comment">/// value zero</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> lambda = zero = 0;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> inf = ~zero;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">if</span> (a.x != b.x || a.y != b.y) {</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// Slope being infinite.</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">if</span> (b.x == a.x) {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">return</span> {inf, inf};</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> num = (b.y - a.y + mod), den = (b.x - a.x + mod);</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> lambda = (num * (<a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(den, mod - 2, mod))) % mod;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> } <span class="keywordflow">else</span> {<span class="comment"></span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> * slope when the line is tangent to curve. This operation is performed</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> * while doubling. Taking derivative of `y^2 = x^3 + ax + b`</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment"> * =&gt; `2y dy = (3 * x^2 + a)dx`</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> * =&gt; `(dy/dx) = (3x^2 + a)/(2y)`</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> */</span><span class="comment"></span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> * if y co-ordinate is zero, the slope is infinite, return inf.</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment"> * else calculate the slope (here % mod and store in lambda)</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"> */</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">if</span> (!a.y) {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">return</span> {inf, inf};</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> }</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> axsq = ((a.x * a.x)) % mod;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="comment">// Mulitply by 3 adjustment</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> axsq += (axsq &lt;&lt; 1);</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> axsq %= mod;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// Mulitply by 2 adjustment</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> a_2 = (a.y &lt;&lt; 1);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> lambda =</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> (((axsq + curve_a_coeff) % mod) * <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">exp</a>(a_2, mod - 2, mod)) % mod;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> }</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <a class="code hl_struct" href="../../d8/dc8/struct_point.html">Point</a> c;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// new point: x = ((lambda^2) - x1 - x2)</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// y = (lambda * (x1 - x)) - y1</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> c.x = ((lambda * lambda) % mod + (mod &lt;&lt; 1) - a.x - b.x) % mod;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> c.<a class="code hl_variable" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = (((lambda * (a.x + mod - c.x)) % mod) + mod - a.y) % mod;</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">return</span> c;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span>}</div>
<div class="ttc" id="aclassuint256__t_html"><div class="ttname"><a href="../../d1/d83/classuint256__t.html">uint256_t</a></div><div class="ttdoc">class for 256-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:33</div></div>
<div class="ttc" id="anamespaceciphers_1_1elliptic__curve__key__exchange_html_ac00616a4e40d3cd5cfb4da87d9ff9af0"><div class="ttname"><a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#ac00616a4e40d3cd5cfb4da87d9ff9af0">ciphers::elliptic_curve_key_exchange::exp</a></div><div class="ttdeci">uint256_t exp(uint256_t number, uint256_t power, const uint256_t &amp;mod)</div><div class="ttdoc">This function calculates number raised to exponent power under modulo mod using Modular Exponentiatio...</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:78</div></div>
<div class="ttc" id="astruct_point_html"><div class="ttname"><a href="../../d8/dc8/struct_point.html">Point</a></div><div class="ttdef"><b>Definition:</b> line_segment_intersection.cpp:12</div></div>
@@ -256,7 +255,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ac00616a4e40d3cd5cfb4da87d9ff9af0"></a>
<a id="ac00616a4e40d3cd5cfb4da87d9ff9af0" name="ac00616a4e40d3cd5cfb4da87d9ff9af0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac00616a4e40d3cd5cfb4da87d9ff9af0">&#9670;&nbsp;</a></span>exp()</h2>
<div class="memitem">
@@ -288,7 +287,7 @@ Here is the call graph for this function:</div>
</table>
</div><div class="memdoc">
<p>This function calculates number raised to exponent power under modulo mod using <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp">Modular Exponentiation</a>. </p>
<p>This function calculates number raised to exponent power under modulo mod using <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp" target="_blank">Modular Exponentiation</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">number</td><td>integer base </td></tr>
@@ -298,24 +297,23 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number raised to power modulo mod </dd></dl>
<div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (!power) {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(1);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>(1);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; number = number % mod;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">while</span> (power) {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span> ((power &amp; 1)) {</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = (<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> * number) % mod;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#a7cf5feaf168b88e74544da59ed830311">power</a> &gt;&gt;= 1;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (power) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; number = (number * number) % mod;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div>
<div class="ttc" id="afibonacci__sum_8cpp_html_a7cf5feaf168b88e74544da59ed830311"><div class="ttname"><a href="../../de/dc3/fibonacci__sum_8cpp.html#a7cf5feaf168b88e74544da59ed830311">math::fibonacci_sum::power</a></div><div class="ttdeci">math::fibonacci_sum::matrix power(math::fibonacci_sum::matrix T, uint64_t ex)</div><div class="ttdef"><b>Definition:</b> fibonacci_sum.cpp:57</div></div>
<div class="fragment"><div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">if</span> (!power) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(1);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>(1);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> number = number % mod;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">while</span> (power) {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">if</span> ((power &amp; 1)) {</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = (<a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> * number) % mod;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> }</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> power &gt;&gt;= 1;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">if</span> (power) {</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> number = (number * number) % mod;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> }</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> }</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>}</div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_ad8389ed58fd0ec66df248014775ad1fa"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a></div><div class="ttdeci">ll ans(ll n)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:91</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -326,7 +324,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a17f3d667241b88115a95282cdd719cb2"></a>
<a id="a17f3d667241b88115a95282cdd719cb2" name="a17f3d667241b88115a95282cdd719cb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17f3d667241b88115a95282cdd719cb2">&#9670;&nbsp;</a></span>multiply()</h2>
<div class="memitem">
@@ -365,7 +363,7 @@ Here is the call graph for this function:</div>
</div><div class="memdoc">
<p>multiply <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> and integer </p>
<p>Multiply <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> by a scalar factor (here it is a private key p). The multiplication is called as <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Double-and-add">double and add method</a> </p><dl class="params"><dt>Parameters</dt><dd>
<p >Multiply <a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> by a scalar factor (here it is a private key p). The multiplication is called as <a href="https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication#Double-and-add" target="_blank">double and add method</a> </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td><a class="el" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html" title="Definition of struct Point.">Point</a> to multiply </td></tr>
<tr><td class="paramname">curve_a_coeff</td><td>Coefficient of given curve (y^2 = x^3 + ax + b) % mod </td></tr>
@@ -375,31 +373,32 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the resultant point </dd></dl>
<div class="fragment"><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="../../d8/dc8/struct_point.html">Point</a> <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a> = a;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>.x %= mod;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>.y %= mod;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a> inf{};</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; inf = ~<a class="code" href="../../d1/d83/classuint256__t.html">uint256_t</a>(0);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="../../d8/dc8/struct_point.html">Point</a> Q = {inf, inf};</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">while</span> (p) {</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span> ((p &amp; 1)) {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (Q.x == inf &amp;&amp; Q.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> == inf) {</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; Q.x = <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>.x;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; Q.<a class="code" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>.y;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; Q = <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">addition</a>(Q, N, curve_a_coeff, mod);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; p &gt;&gt;= 1;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (p) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a> = <a class="code" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">addition</a>(N, N, curve_a_coeff, mod);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> Q;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> {</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_struct" href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">Point</a> N = a;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> N.x %= mod;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> N.y %= mod;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> inf{};</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> inf = <a class="code hl_class" href="../../d1/d83/classuint256__t.html">~uint256_t</a>(0);</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_struct" href="../../d8/dc8/struct_point.html">Point</a> Q = {inf, inf};</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">while</span> (p) {</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">if</span> ((p &amp; 1)) {</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">if</span> (Q.x == inf &amp;&amp; Q.<a class="code hl_variable" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> == inf) {</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> Q.x = N.x;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> Q.<a class="code hl_variable" href="../../d8/dc8/struct_point.html#a2e1b5fb2b2a83571f5c0bc0f66a73cf7">y</a> = N.y;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> Q = <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">addition</a>(Q, N, curve_a_coeff, mod);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> }</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> }</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> p &gt;&gt;= 1;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">if</span> (p) {</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a> = <a class="code hl_function" href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">addition</a>(N, N, curve_a_coeff, mod);</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> }</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> }</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">return</span> Q;</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span>}</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="anamespaceciphers_1_1elliptic__curve__key__exchange_html_acc5fe9c2032fb7582c38a20d1fa69bcf"><div class="ttname"><a href="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html#acc5fe9c2032fb7582c38a20d1fa69bcf">ciphers::elliptic_curve_key_exchange::addition</a></div><div class="ttdeci">Point addition(Point a, Point b, const uint256_t &amp;curve_a_coeff, uint256_t mod)</div><div class="ttdoc">Addition of points.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:110</div></div>
<div class="ttc" id="astructciphers_1_1elliptic__curve__key__exchange_1_1_point_html"><div class="ttname"><a href="../../d6/d45/structciphers_1_1elliptic__curve__key__exchange_1_1_point.html">ciphers::elliptic_curve_key_exchange::Point</a></div><div class="ttdoc">Definition of struct Point.</div><div class="ttdef"><b>Definition:</b> elliptic_curve_key_exchange.cpp:46</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -415,7 +414,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="../../df/d6b/namespaceciphers_1_1elliptic__curve__key__exchange.html">elliptic_curve_key_exchange</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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: ciphers::elliptic_curve_key_exchange::multiply Pages: 1 -->
<!--zoomable 39 -->

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: ciphers::elliptic_curve_key_exchange::multiply Pages: 1 -->
<svg width="514pt" height="39pt"

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: ciphers::elliptic_curve_key_exchange::exp Pages: 1 -->
<svg width="189pt" height="39pt"

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: ciphers::elliptic_curve_key_exchange::addition Pages: 1 -->
<svg width="352pt" height="39pt"

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math/modular_division.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d72/modular__division_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('df/d72/modular__division_8cpp.html','.
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">modular_division.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">modular_division.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>An algorithm to divide two numbers under modulo p <a href="https://www.geeksforgeeks.org/modular-division">Modular Division</a>
<p>An algorithm to divide two numbers under modulo p <a href="https://www.geeksforgeeks.org/modular-division" target="_blank">Modular Division</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -109,16 +108,16 @@ Include dependency graph for modular_division.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:dd/d47/namespacemath"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html">math</a></td></tr>
<tr class="memitem:dd/d47/namespacemath"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html">math</a></td></tr>
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft">&#160;</td><td class="mdescRight">for IO operations <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d1/d64/namespacemodular__division"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d64/namespacemodular__division.html">modular_division</a></td></tr>
<tr class="memdesc:d1/d64/namespacemodular__division"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://www.geeksforgeeks.org/modular-division">Modular Division</a> implementation. <br /></td></tr>
<tr class="memitem:d1/d64/namespacemodular__division"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d64/namespacemodular__division.html">modular_division</a></td></tr>
<tr class="memdesc:d1/d64/namespacemodular__division"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://www.geeksforgeeks.org/modular-division" target="_blank">Modular Division</a> implementation. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a66cdf93153cbd1408bd74ac68961d179"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d72/modular__division_8cpp.html#a66cdf93153cbd1408bd74ac68961d179">math::modular_division::power</a> (uint64_t a, uint64_t b, uint64_t c)</td></tr>
<tr class="memdesc:a66cdf93153cbd1408bd74ac68961d179"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calculates a raised to exponent b under modulo c using modular exponentiation. <a href="../../df/d72/modular__division_8cpp.html#a66cdf93153cbd1408bd74ac68961d179">More...</a><br /></td></tr>
@@ -133,11 +132,11 @@ Functions</h2></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>
<div class="textblock"><p>An algorithm to divide two numbers under modulo p <a href="https://www.geeksforgeeks.org/modular-division">Modular Division</a> </p>
<p>To calculate division of two numbers under modulo p Modulo operator is not distributive under division, therefore we first have to calculate the inverse of divisor using <a href="https://en.wikipedia.org/wiki/Fermat%27s_little_theorem">Fermat's little theorem</a> Now, we can multiply the dividend with the inverse of divisor and modulo is distributive over multiplication operation. Let, We have 3 numbers a, b, p To compute (a/b)p (a/b)p ≡ (a*(inverse(b)))p ≡ ((ap)*inverse(b)p)p NOTE: For the existence of inverse of 'b', 'b' and 'p' must be coprime For simplicity we take p as prime Time Complexity: O(log(b)) Example: ( 24 / 3 ) % 5 =&gt; 8 % 5 = 3 &mdash; (i) Now the inverse of 3 is 2 (24 * 2) % 5 = (24 % 5) * (2 % 5) = (4 * 2) % 5 = 3 &mdash; (ii) (i) and (ii) are equal hence the answer is correct. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d8/d53/modular__inverse__fermat__little__theorem_8cpp.html" title="C++ Program to find the modular inverse using Fermat&#39;s Little Theorem">modular_inverse_fermat_little_theorem.cpp</a>, <a class="el" href="../../d0/d6d/modular__exponentiation_8cpp.html" title="C++ Program for Modular Exponentiation Iteratively.">modular_exponentiation.cpp</a> </dd></dl>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/shubhamamsa">Shubham Yadav</a> </dd></dl>
<div class="textblock"><p >An algorithm to divide two numbers under modulo p <a href="https://www.geeksforgeeks.org/modular-division" target="_blank">Modular Division</a> </p>
<p >To calculate division of two numbers under modulo p Modulo operator is not distributive under division, therefore we first have to calculate the inverse of divisor using <a href="https://en.wikipedia.org/wiki/Fermat%27s_little_theorem" target="_blank">Fermat's little theorem</a> Now, we can multiply the dividend with the inverse of divisor and modulo is distributive over multiplication operation. Let, We have 3 numbers a, b, p To compute (a/b)p (a/b)p ≡ (a*(inverse(b)))p ≡ ((ap)*inverse(b)p)p NOTE: For the existence of inverse of 'b', 'b' and 'p' must be coprime For simplicity we take p as prime Time Complexity: O(log(b)) Example: ( 24 / 3 ) % 5 =&gt; 8 % 5 = 3 &mdash; (i) Now the inverse of 3 is 2 (24 * 2) % 5 = (24 % 5) * (2 % 5) = (4 * 2) % 5 = 3 &mdash; (ii) (i) and (ii) are equal hence the answer is correct. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d8/d53/modular__inverse__fermat__little__theorem_8cpp.html" title="C++ Program to find the modular inverse using Fermat&#39;s Little Theorem">modular_inverse_fermat_little_theorem.cpp</a>, <a class="el" href="../../d0/d6d/modular__exponentiation_8cpp.html" title="C++ Program for Modular Exponentiation Iteratively.">modular_exponentiation.cpp</a> </dd></dl>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/shubhamamsa" target="_blank">Shubham Yadav</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a0ddf1224851353fc92bfbff6f499fa97"></a>
<a id="a0ddf1224851353fc92bfbff6f499fa97" name="a0ddf1224851353fc92bfbff6f499fa97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ddf1224851353fc92bfbff6f499fa97">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -172,10 +171,10 @@ Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="../../df/d72/modular__division_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// execute the tests</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> {</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_function" href="../../df/d72/modular__division_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// execute the tests</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>}</div>
<div class="ttc" id="amodular__division_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../df/d72/modular__division_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdef"><b>Definition:</b> modular_division.cpp:88</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -186,7 +185,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a905e368ae121beb7e7ea35349ddcdac7"></a>
<a id="a905e368ae121beb7e7ea35349ddcdac7" name="a905e368ae121beb7e7ea35349ddcdac7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a905e368ae121beb7e7ea35349ddcdac7">&#9670;&nbsp;</a></span>mod_division()</h2>
<div class="memitem">
@@ -228,14 +227,14 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a/b modulo c </dd></dl>
<p>Calculate the inverse of b</p>
<p>Calculate the final result</p>
<div class="fragment"><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; uint64_t inverse = <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#a7cf5feaf168b88e74544da59ed830311">power</a>(b, p - 2, p) % p; <span class="comment">/// Calculate the inverse of b</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; uint64_t <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> =</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; ((a % p) * (inverse % p)) % p; <span class="comment">/// Calculate the final result</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div>
<p >Calculate the inverse of b</p>
<p >Calculate the final result</p>
<div class="fragment"><div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> uint64_t inverse = <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#a7cf5feaf168b88e74544da59ed830311">power</a>(b, p - 2, p) % p; <span class="comment">/// Calculate the inverse of b</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> uint64_t <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> =</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> ((a % p) * (inverse % p)) % p; <span class="comment">/// Calculate the final result</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>}</div>
<div class="ttc" id="afibonacci__sum_8cpp_html_a7cf5feaf168b88e74544da59ed830311"><div class="ttname"><a href="../../de/dc3/fibonacci__sum_8cpp.html#a7cf5feaf168b88e74544da59ed830311">math::fibonacci_sum::power</a></div><div class="ttdeci">math::fibonacci_sum::matrix power(math::fibonacci_sum::matrix T, uint64_t ex)</div><div class="ttdef"><b>Definition:</b> fibonacci_sum.cpp:57</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><!-- fragment --><div class="dynheader">
@@ -247,7 +246,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a66cdf93153cbd1408bd74ac68961d179"></a>
<a id="a66cdf93153cbd1408bd74ac68961d179" name="a66cdf93153cbd1408bd74ac68961d179"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66cdf93153cbd1408bd74ac68961d179">&#9670;&nbsp;</a></span>power()</h2>
<div class="memitem">
@@ -289,29 +288,29 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a raised to power b modulo c </dd></dl>
<p>Initialize the answer to be returned</p>
<p>Update a if it is more than or equal to c</p>
<p>In case a is divisible by c;</p>
<p>If b is odd, multiply a with answer</p>
<p>b must be even now</p>
<p>b = b/2</p>
<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; uint64_t <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = 1; <span class="comment">/// Initialize the answer to be returned</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; a = a % c; <span class="comment">/// Update a if it is more than or equal to c</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (a == 0) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">/// In case a is divisible by c;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">while</span> (b &gt; 0) {<span class="comment"></span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> /// If b is odd, multiply a with answer</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"></span> <span class="keywordflow">if</span> (b &amp; 1) {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = ((<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> % c) * (a % c)) % c;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> /// b must be even now</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span> b = b &gt;&gt; 1; <span class="comment">/// b = b/2</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; a = ((a % c) * (a % c)) % c;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div>
<p >Initialize the answer to be returned</p>
<p >Update a if it is more than or equal to c</p>
<p >In case a is divisible by c;</p>
<p >If b is odd, multiply a with answer</p>
<p >b must be even now</p>
<p >b = b/2</p>
<div class="fragment"><div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> uint64_t <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = 1; <span class="comment">/// Initialize the answer to be returned</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> a = a % c; <span class="comment">/// Update a if it is more than or equal to c</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">if</span> (a == 0) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span> 0; <span class="comment">/// In case a is divisible by c;</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">while</span> (b &gt; 0) {<span class="comment"></span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"> /// If b is odd, multiply a with answer</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"></span> <span class="keywordflow">if</span> (b &amp; 1) {</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = ((<a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> % c) * (a % c)) % c;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }<span class="comment"></span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> /// b must be even now</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"></span> b = b &gt;&gt; 1; <span class="comment">/// b = b/2</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> a = ((a % c) * (a % c)) % c;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>}</div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_ad8389ed58fd0ec66df248014775ad1fa"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a></div><div class="ttdeci">ll ans(ll n)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:91</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -322,7 +321,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -344,24 +343,24 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Function for testing power function. test cases and assert statement. </p><dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; uint64_t test_case_1 = <a class="code" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(8, 2, 2);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; assert(test_case_1 == 0);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed!&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint64_t test_case_2 = <a class="code" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(15, 3, 7);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; assert(test_case_2 == 5);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed!&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint64_t test_case_3 = <a class="code" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(10, 5, 2);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; assert(test_case_3 == 0);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed!&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; uint64_t test_case_4 = <a class="code" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(81, 3, 5);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; assert(test_case_4 == 2);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 4 Passed!&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; uint64_t test_case_5 = <a class="code" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(12848, 73, 29);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; assert(test_case_5 == 2);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 5 Passed!&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div>
<p >Function for testing power function. test cases and assert statement. </p><dl class="section return"><dt>Returns</dt><dd><code>void</code> </dd></dl>
<div class="fragment"><div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> {</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> uint64_t test_case_1 = <a class="code hl_function" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(8, 2, 2);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> assert(test_case_1 == 0);</div>
<div class="line"><a id="l00091" name="l00091"></a><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 1 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> uint64_t test_case_2 = <a class="code hl_function" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(15, 3, 7);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> assert(test_case_2 == 5);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> uint64_t test_case_3 = <a class="code hl_function" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(10, 5, 2);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> assert(test_case_3 == 0);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> uint64_t test_case_4 = <a class="code hl_function" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(81, 3, 5);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> assert(test_case_4 == 2);</div>
<div class="line"><a id="l00100" name="l00100"></a><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;Test 4 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> uint64_t test_case_5 = <a class="code hl_function" href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a>(12848, 73, 29);</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> assert(test_case_5 == 2);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 5 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</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="amodular__division_8cpp_html_a905e368ae121beb7e7ea35349ddcdac7"><div class="ttname"><a href="../../df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7">math::modular_division::mod_division</a></div><div class="ttdeci">uint64_t mod_division(uint64_t a, uint64_t b, uint64_t p)</div><div class="ttdoc">This function calculates modular division.</div><div class="ttdef"><b>Definition:</b> modular_division.cpp:74</div></div>
@@ -380,7 +379,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="../../df/d72/modular__division_8cpp.html">modular_division.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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="205pt" height="28pt"

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: math::modular_division::power Pages: 1 -->
<svg width="196pt" height="39pt"

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: math::modular_division::mod_division Pages: 1 -->
<svg width="304pt" height="57pt"

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test Pages: 1 -->
<svg width="131pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: subarray_sum Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d74/namespacesubarray__sum.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,22 +90,21 @@ $(document).ready(function(){initNavTree('df/d74/namespacesubarray__sum.html','.
</div>
<div class="header">
<div class="headertitle">
<div class="title">subarray_sum Namespace Reference</div> </div>
<div class="headertitle"><div class="title">subarray_sum Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Functions for the <a href="https://en.wikipedia.org/wiki/Subset_sum_problem">Subset sum</a> implementation.
<p>Functions for the <a href="https://en.wikipedia.org/wiki/Subset_sum_problem" target="_blank">Subset sum</a> implementation.
<a href="../../df/d74/namespacesubarray__sum.html#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Functions for the <a href="https://en.wikipedia.org/wiki/Subset_sum_problem">Subset sum</a> implementation. </p>
<div class="textblock"><p >Functions for the <a href="https://en.wikipedia.org/wiki/Subset_sum_problem" target="_blank">Subset sum</a> implementation. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../df/d74/namespacesubarray__sum.html">subarray_sum</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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: graph/connected_components.cpp Pages: 1 -->
<svg width="269pt" height="84pt"

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: graph/breadth_first_search.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d82/breadth__first__search_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,12 +94,11 @@ $(document).ready(function(){initNavTree('df/d82/breadth__first__search_8cpp.htm
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">breadth_first_search.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">breadth_first_search.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a href="https://en.wikipedia.org/wiki/Breadth-first_search">Breadth First Search Algorithm (Breadth First Search)</a>
<p><a href="https://en.wikipedia.org/wiki/Breadth-first_search" target="_blank">Breadth First Search Algorithm (Breadth First Search)</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;cassert&gt;</code><br />
@@ -116,18 +115,18 @@ Include dependency graph for breadth_first_search.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt; T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:df/dce/namespacegraph"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html">graph</a></td></tr>
<tr class="memitem:df/dce/namespacegraph"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dce/namespacegraph.html">graph</a></td></tr>
<tr class="memdesc:df/dce/namespacegraph"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../dc/d61/classgraph_1_1_graph.html">Graph</a> Algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<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"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a> ()</td></tr>
<tr class="separator:a483bb8ccf42aaf7375a83e91490eda1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -135,21 +134,21 @@ Functions</h2></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>
<div class="textblock"><p><a href="https://en.wikipedia.org/wiki/Breadth-first_search">Breadth First Search Algorithm (Breadth First Search)</a> </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/ayaankhan98">Ayaan Khan</a> </dd>
<div class="textblock"><p ><a href="https://en.wikipedia.org/wiki/Breadth-first_search" target="_blank">Breadth First Search Algorithm (Breadth First Search)</a> </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/ayaankhan98" target="_blank">Ayaan Khan</a> </dd>
<dd>
<a href="https://github.com/gpamangkp">Aman Kumar Pandey</a></dd></dl>
<a href="https://github.com/gpamangkp" target="_blank">Aman Kumar Pandey</a></dd></dl>
<p>Breadth First Search also quoted as BFS is a <a class="el" href="../../da/d9a/class_graph.html">Graph</a> Traversal Algorithm. Time Complexity O(|V| + |E|) where V are the number of vertices and E are the number of edges in the graph.</p>
<p>Applications of Breadth First Search are</p>
<p >Applications of Breadth First Search are</p>
<ol type="1">
<li>Finding shortest path between two vertices say u and v, with path length measured by number of edges (an advantage over depth first search algorithm)</li>
<li>Ford-Fulkerson Method for computing the maximum flow in a flow network.</li>
<li>Testing bipartiteness of a graph.</li>
<li>Cheney's Algorithm, Copying garbage collection.</li>
</ol>
<p>And there are many more...</p>
<p >And there are many more...</p>
<h4>working</h4>
<p>In the implementation below we first created a graph using the adjacency list representation of graph. Breadth First Search Works as follows it requires a vertex as a start vertex, Start vertex is that vertex from where you want to start traversing the graph. We maintain a bool array or a vector to keep track of the vertices which we have visited so that we do not traverse the visited vertices again and again and eventually fall into an infinite loop. Along with this boolen array we use a <a class="el" href="../../dc/db5/struct_queue.html">Queue</a>.</p>
<p >In the implementation below we first created a graph using the adjacency list representation of graph. Breadth First Search Works as follows it requires a vertex as a start vertex, Start vertex is that vertex from where you want to start traversing the graph. We maintain a bool array or a vector to keep track of the vertices which we have visited so that we do not traverse the visited vertices again and again and eventually fall into an infinite loop. Along with this boolen array we use a <a class="el" href="../../dc/db5/struct_queue.html">Queue</a>.</p>
<ol type="1">
<li>First we mark the start vertex as visited.</li>
<li>Push this visited vertex in the <a class="el" href="../../dc/db5/struct_queue.html">Queue</a>.</li>
@@ -160,7 +159,7 @@ Functions</h2></td></tr>
</li>
</ol>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -175,32 +174,32 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="../../df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>();</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">size_t</span> edges = 0;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the number of edges: &quot;</span>;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; edges;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; </div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt;int&gt;</a> g;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter space-separated pairs of vertices that form edges: &quot;</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">while</span> (edges--) {</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">int</span> u = 0, v = 0;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; u &gt;&gt; v;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(u, v);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#ab1a1a96cd4cddf0d4feb02855c4c16af">breadth_first_search</a>(0);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</div>
<p >Main function </p>
<div class="fragment"><div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> {</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <a class="code hl_function" href="../../df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>();</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordtype">size_t</span> edges = 0;</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</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;Enter the number of edges: &quot;</span>;</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; edges;</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <a class="code hl_class" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt;int&gt;</a> g;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</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;Enter space-separated pairs of vertices that form edges: &quot;</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</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"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">while</span> (edges--) {</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="keywordtype">int</span> u = 0, v = 0;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; u &gt;&gt; v;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> g.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(u, v);</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> }</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> g.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a3755ec9e6a842238c7f4aac10b661981">breadth_first_search</a>(0);</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span>}</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="abreadth__first__search_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="../../df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:139</div></div>
<div class="ttc" id="aclassgraph_1_1_graph_html"><div class="ttname"><a href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph</a></div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:64</div></div>
<div class="ttc" id="aclassgraph_1_1_graph_html_a3755ec9e6a842238c7f4aac10b661981"><div class="ttname"><a href="../../dc/d61/classgraph_1_1_graph.html#a3755ec9e6a842238c7f4aac10b661981">graph::Graph::breadth_first_search</a></div><div class="ttdeci">std::map&lt; T, bool &gt; breadth_first_search(T src)</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:96</div></div>
<div class="ttc" id="aclassgraph_1_1_graph_html_a877b2cba40d8d46dde6fb4209effed19"><div class="ttname"><a href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">graph::Graph::add_edge</a></div><div class="ttdeci">void add_edge(T u, T v, bool bidir=true)</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:74</div></div>
<div class="ttc" id="aclassgraph_1_1_graph_html_ab1a1a96cd4cddf0d4feb02855c4c16af"><div class="ttname"><a href="../../dc/d61/classgraph_1_1_graph.html#ab1a1a96cd4cddf0d4feb02855c4c16af">graph::Graph::breadth_first_search</a></div><div class="ttdeci">std::map&lt; T, bool &gt; breadth_first_search(T src)</div><div class="ttdef"><b>Definition:</b> breadth_first_search.cpp:96</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>
@@ -211,7 +210,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a483bb8ccf42aaf7375a83e91490eda1e"></a>
<a id="a483bb8ccf42aaf7375a83e91490eda1e" name="a483bb8ccf42aaf7375a83e91490eda1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">&#9670;&nbsp;</a></span>tests()</h2>
<div class="memitem">
@@ -233,55 +232,55 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Test function </p>
<p>Test 1 Begin</p>
<p>Test 2 Begin</p>
<p>Test 3 Begins</p>
<div class="fragment"><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {<span class="comment"></span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> /// Test 1 Begin</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"></span> <a class="code" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt;int&gt;</a> g;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;int, bool&gt;</a> correct_result;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(0, 1);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(1, 2);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(2, 3);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; correct_result[0] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; correct_result[1] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; correct_result[2] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; correct_result[3] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;int, bool&gt;</a> returned_result = g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#ab1a1a96cd4cddf0d4feb02855c4c16af">breadth_first_search</a>(2);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; assert(returned_result == correct_result);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> /// Test 2 Begin</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"></span> returned_result = g.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#ab1a1a96cd4cddf0d4feb02855c4c16af">breadth_first_search</a>(0);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; assert(returned_result == correct_result);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> /// Test 3 Begins</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"></span> <a class="code" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt;std::string&gt;</a> g2;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Gorakhpur&quot;</span>, <span class="stringliteral">&quot;Lucknow&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Gorakhpur&quot;</span>, <span class="stringliteral">&quot;Kanpur&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Lucknow&quot;</span>, <span class="stringliteral">&quot;Agra&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Kanpur&quot;</span>, <span class="stringliteral">&quot;Agra&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Lucknow&quot;</span>, <span class="stringliteral">&quot;Prayagraj&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Agra&quot;</span>, <span class="stringliteral">&quot;Noida&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;std::string, bool&gt;</a> correct_res;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;std::string, bool&gt;</a> returned_res =</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; g2.<a class="code" href="../../dc/d61/classgraph_1_1_graph.html#ab1a1a96cd4cddf0d4feb02855c4c16af">breadth_first_search</a>(<span class="stringliteral">&quot;Kanpur&quot;</span>);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; correct_res[<span class="stringliteral">&quot;Gorakhpur&quot;</span>] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; correct_res[<span class="stringliteral">&quot;Lucknow&quot;</span>] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; correct_res[<span class="stringliteral">&quot;Kanpur&quot;</span>] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; correct_res[<span class="stringliteral">&quot;Agra&quot;</span>] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; correct_res[<span class="stringliteral">&quot;Prayagraj&quot;</span>] = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; correct_res[<span class="stringliteral">&quot;Noida&quot;</span>] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; assert(correct_res == returned_res);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed...&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div>
<p >Test function </p>
<p >Test 1 Begin</p>
<p >Test 2 Begin</p>
<p >Test 3 Begins</p>
<div class="fragment"><div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> {<span class="comment"></span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment"> /// Test 1 Begin</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"></span> <a class="code hl_class" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt;int&gt;</a> g;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;int, bool&gt;</a> correct_result;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> g.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(0, 1);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> g.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(1, 2);</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> g.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(2, 3);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> correct_result[0] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> correct_result[1] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> correct_result[2] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> correct_result[3] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;int, bool&gt;</a> returned_result = g.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a3755ec9e6a842238c7f4aac10b661981">breadth_first_search</a>(2);</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> assert(returned_result == correct_result);</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="comment"></span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment"> /// Test 2 Begin</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment"></span> returned_result = g.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a3755ec9e6a842238c7f4aac10b661981">breadth_first_search</a>(0);</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> assert(returned_result == correct_result);</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment"></span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment"> /// Test 3 Begins</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"></span> <a class="code hl_class" href="../../dc/d61/classgraph_1_1_graph.html">graph::Graph&lt;std::string&gt;</a> g2;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> g2.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Gorakhpur&quot;</span>, <span class="stringliteral">&quot;Lucknow&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> g2.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Gorakhpur&quot;</span>, <span class="stringliteral">&quot;Kanpur&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> g2.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Lucknow&quot;</span>, <span class="stringliteral">&quot;Agra&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> g2.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Kanpur&quot;</span>, <span class="stringliteral">&quot;Agra&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> g2.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Lucknow&quot;</span>, <span class="stringliteral">&quot;Prayagraj&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> g2.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19">add_edge</a>(<span class="stringliteral">&quot;Agra&quot;</span>, <span class="stringliteral">&quot;Noida&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;std::string, bool&gt;</a> correct_res;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;std::string, bool&gt;</a> returned_res =</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> g2.<a class="code hl_function" href="../../dc/d61/classgraph_1_1_graph.html#a3755ec9e6a842238c7f4aac10b661981">breadth_first_search</a>(<span class="stringliteral">&quot;Kanpur&quot;</span>);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> correct_res[<span class="stringliteral">&quot;Gorakhpur&quot;</span>] = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> correct_res[<span class="stringliteral">&quot;Lucknow&quot;</span>] = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> correct_res[<span class="stringliteral">&quot;Kanpur&quot;</span>] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> correct_res[<span class="stringliteral">&quot;Agra&quot;</span>] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> correct_res[<span class="stringliteral">&quot;Prayagraj&quot;</span>] = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> correct_res[<span class="stringliteral">&quot;Noida&quot;</span>] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> assert(correct_res == returned_res);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed...&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>}</div>
<div class="ttc" id="amap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a></div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -298,7 +297,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="../../df/d82/breadth__first__search_8cpp.html">breadth_first_search.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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,6 @@
var breadth__first__search_8cpp =
[
[ "Graph", "dc/d61/classgraph_1_1_graph.html", "dc/d61/classgraph_1_1_graph" ],
[ "graph::Graph< T >", "dc/d61/classgraph_1_1_graph.html", "dc/d61/classgraph_1_1_graph" ],
[ "main", "df/d82/breadth__first__search_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "tests", "df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e", null ]
];

View File

@@ -1,7 +1,7 @@
<map id="tests" name="tests">
<area shape="rect" id="node1" title=" " alt="" coords="5,81,56,108"/>
<area shape="rect" id="node2" href="$dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19" title=" " alt="" coords="104,23,271,49"/>
<area shape="rect" id="node3" href="$dc/d61/classgraph_1_1_graph.html#ab1a1a96cd4cddf0d4feb02855c4c16af" title=" " alt="" coords="111,74,264,115"/>
<area shape="rect" id="node3" href="$dc/d61/classgraph_1_1_graph.html#a3755ec9e6a842238c7f4aac10b661981" title=" " alt="" coords="111,74,264,115"/>
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="151,140,223,167"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/queue/empty.html#" title=" " alt="" coords="319,5,447,32"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/queue/front.html#" title=" " alt="" coords="323,56,442,83"/>

View File

@@ -1 +1 @@
22f8628d289f42b4781a2c20497ed8e3
21678b9af0fb1d4eb3c47f52d5a92a57

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: tests Pages: 1 -->
<svg width="339pt" height="142pt"
@@ -36,7 +36,7 @@
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../dc/d61/classgraph_1_1_graph.html#ab1a1a96cd4cddf0d4feb02855c4c16af" target="_top" xlink:title=" ">
<g id="a_node3"><a xlink:href="../../dc/d61/classgraph_1_1_graph.html#a3755ec9e6a842238c7f4aac10b661981" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="79,-52 79,-82 194,-82 194,-52 79,-52"/>
<text text-anchor="start" x="87" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">graph::Graph::breadth</text>
<text text-anchor="middle" x="136.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">_first_search</text>

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -1,7 +1,7 @@
<map id="main" name="main">
<area shape="rect" id="node1" title=" " alt="" coords="5,89,56,116"/>
<area shape="rect" id="node2" href="$dc/d61/classgraph_1_1_graph.html#a877b2cba40d8d46dde6fb4209effed19" title=" " alt="" coords="203,19,369,45"/>
<area shape="rect" id="node3" href="$dc/d61/classgraph_1_1_graph.html#ab1a1a96cd4cddf0d4feb02855c4c16af" title=" " alt="" coords="209,74,363,115"/>
<area shape="rect" id="node3" href="$dc/d61/classgraph_1_1_graph.html#a3755ec9e6a842238c7f4aac10b661981" title=" " alt="" coords="209,74,363,115"/>
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="250,148,322,175"/>
<area shape="rect" id="node9" href="$df/d82/breadth__first__search_8cpp.html#a483bb8ccf42aaf7375a83e91490eda1e" title=" " alt="" coords="104,64,155,91"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/queue/empty.html#" title=" " alt="" coords="417,5,545,32"/>

View File

@@ -1 +1 @@
c98b7adcdce721482322a609d98ec504
bd041341195b2e0789cc74208a3fe618

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="413pt" height="142pt"
@@ -36,7 +36,7 @@
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../dc/d61/classgraph_1_1_graph.html#ab1a1a96cd4cddf0d4feb02855c4c16af" target="_top" xlink:title=" ">
<g id="a_node3"><a xlink:href="../../dc/d61/classgraph_1_1_graph.html#a3755ec9e6a842238c7f4aac10b661981" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="153,-52 153,-82 268,-82 268,-52 153,-52"/>
<text text-anchor="start" x="161" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">graph::Graph::breadth</text>
<text text-anchor="middle" x="210.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">_first_search</text>

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@@ -1,6 +0,0 @@
<map id="graph::HKGraph" name="graph::HKGraph">
<area shape="rect" id="node1" title="Represents Bipartite graph for Hopcroft Karp implementation." alt="" coords="127,228,246,255"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="5,95,141,136"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/list.html" title=" " alt="" coords="23,5,123,32"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="165,102,285,129"/>
</map>

View File

@@ -1 +0,0 @@
6f02041634dc236fe9f0252ed9d79c5f

View File

@@ -1,73 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: graph::HKGraph Pages: 1 -->
<svg width="218pt" height="195pt"
viewBox="0.00 0.00 218.00 195.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 191)">
<title>graph::HKGraph</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-191 214,-191 214,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Represents Bipartite graph for Hopcroft Karp implementation.">
<polygon fill="#bfbfbf" stroke="black" points="91.5,-0.5 91.5,-19.5 180.5,-19.5 180.5,-0.5 91.5,-0.5"/>
<text text-anchor="middle" x="136" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">graph::HKGraph</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="0,-89.5 0,-119.5 102,-119.5 102,-89.5 0,-89.5"/>
<text text-anchor="start" x="8" y="-107.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector&lt; std::list</text>
<text text-anchor="middle" x="51" y="-96.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; int &gt; &gt;</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node1 -->
<g id="edge1" class="edge">
<title>Node2&#45;&gt;Node1</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M70.7,-82.06C88.93,-62.23 115.1,-33.74 128.08,-19.62"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="68.1,-79.72 63.91,-89.45 73.25,-84.46 68.1,-79.72"/>
<text text-anchor="middle" x="119.5" y="-52" font-family="Helvetica,sans-Serif" font-size="10.00"> adj</text>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/list.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="13.5,-167.5 13.5,-186.5 88.5,-186.5 88.5,-167.5 13.5,-167.5"/>
<text text-anchor="middle" x="51" y="-174.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::list&lt; int &gt;</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node3&#45;&gt;Node2</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M51,-157.24C51,-145.41 51,-130.38 51,-119.58"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="47.5,-157.36 51,-167.36 54.5,-157.36 47.5,-157.36"/>
<text text-anchor="middle" x="73" y="-141" font-family="Helvetica,sans-Serif" font-size="10.00"> elements</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="120,-95 120,-114 210,-114 210,-95 120,-95"/>
<text text-anchor="middle" x="165" y="-102" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector&lt; int &gt;</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node1 -->
<g id="edge3" class="edge">
<title>Node4&#45;&gt;Node1</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M159.27,-85.22C153.03,-65.32 143.33,-34.37 138.67,-19.52"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="155.99,-86.47 162.32,-94.96 162.67,-84.37 155.99,-86.47"/>
<text text-anchor="middle" x="168" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00"> dist</text>
<text text-anchor="middle" x="168" y="-52" font-family="Helvetica,sans-Serif" font-size="10.00">pair_u</text>
<text text-anchor="middle" x="168" y="-41" font-family="Helvetica,sans-Serif" font-size="10.00">pair_v</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: strings/rabin_karp.cpp Pages: 1 -->
<svg width="258pt" height="84pt"

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: data_structures/sparse_table.cpp Pages: 1 -->
<svg width="187pt" height="95pt"

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: trie_operations Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d8e/namespacetrie__operations.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,22 +90,21 @@ $(document).ready(function(){initNavTree('df/d8e/namespacetrie__operations.html'
</div>
<div class="header">
<div class="headertitle">
<div class="title">trie_operations Namespace Reference</div> </div>
<div class="headertitle"><div class="title">trie_operations Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Functions for <a href="https://iq.opengenus.org/autocomplete-using-trie-data-structure/">Trie datastructure</a> implementation.
<p>Functions for <a href="https://iq.opengenus.org/autocomplete-using-trie-data-structure/" target="_blank">Trie datastructure</a> implementation.
<a href="../../df/d8e/namespacetrie__operations.html#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://iq.opengenus.org/autocomplete-using-trie-data-structure/">Trie datastructure</a> implementation. </p>
<div class="textblock"><p >Functions for <a href="https://iq.opengenus.org/autocomplete-using-trie-data-structure/" target="_blank">Trie datastructure</a> implementation. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../df/d8e/namespacetrie__operations.html">trie_operations</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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: backtracking/wildcard_matching.cpp Pages: 1 -->
<svg width="193pt" height="95pt"

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<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"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d1c/classhash__chain.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,28 +90,27 @@ $(document).ready(function(){initNavTree('dd/d1c/classhash__chain.html','../../'
</div>
<div class="header">
<div class="headertitle">
<div class="title">hash_chain Member List</div> </div>
<div class="headertitle"><div class="title">hash_chain Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#ae9ddce410015ed8dda6380130d82d6c2">_mod</a></td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a6b4b4de1a8c96f98a63a77f650a9dcff">add</a>(int x, int h)</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a6b4b4de1a8c96f98a63a77f650a9dcff">add</a>(int x, int h)</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a706964ad13587fc9a8b3fe8381d410ed">display</a>()</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a55aa5c6753cb8853152d469c375d946a">find</a>(int x, int h) const</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a55aa5c6753cb8853152d469c375d946a">find</a>(int x, int h) const</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a846a2f921f8fb7ea572e03901b671d64">hash</a>(int x) const</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a80c8b902a15b4fd062ed727ecf8f3595">hash_chain</a>(int mod)</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a80c8b902a15b4fd062ed727ecf8f3595">hash_chain</a>(int mod)</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a></td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a48236d44349c3ebce4774b706f4f8a0f">next</a></td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a21172d047bb9621385f2426ce25e71aa">Node</a> typedef</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a48236d44349c3ebce4774b706f4f8a0f">next</a></td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html#a28d3adffc0126beeef63bce0846fb8f5">Node</a> typedef</td><td class="entry"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- 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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: backtracking/subarray_sum.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d94/subarray__sum_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('df/d94/subarray__sum_8cpp.html','../..
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">subarray_sum.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">subarray_sum.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a href="https://en.wikipedia.org/wiki/Subset_sum_problem">Subset-sum</a> (only continuous subsets) problem
<p><a href="https://en.wikipedia.org/wiki/Subset_sum_problem" target="_blank">Subset-sum</a> (only continuous subsets) problem
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -111,16 +110,16 @@ Include dependency graph for subarray_sum.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:db/dc0/namespacebacktracking"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/dc0/namespacebacktracking.html">backtracking</a></td></tr>
<tr class="memitem:db/dc0/namespacebacktracking"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/dc0/namespacebacktracking.html">backtracking</a></td></tr>
<tr class="memdesc:db/dc0/namespacebacktracking"><td class="mdescLeft">&#160;</td><td class="mdescRight">Backtracking algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:df/d74/namespacesubarray__sum"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d74/namespacesubarray__sum.html">subarray_sum</a></td></tr>
<tr class="memdesc:df/d74/namespacesubarray__sum"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for the <a href="https://en.wikipedia.org/wiki/Subset_sum_problem">Subset sum</a> implementation. <br /></td></tr>
<tr class="memitem:df/d74/namespacesubarray__sum"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d74/namespacesubarray__sum.html">subarray_sum</a></td></tr>
<tr class="memdesc:df/d74/namespacesubarray__sum"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for the <a href="https://en.wikipedia.org/wiki/Subset_sum_problem" target="_blank">Subset sum</a> implementation. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af5687bbd9faf927fbd363c71e0baba5e"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d94/subarray__sum_8cpp.html#af5687bbd9faf927fbd363c71e0baba5e">backtracking::subarray_sum::subarray_sum</a> (int64_t sum, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int64_t &gt; &amp;in_arr)</td></tr>
<tr class="memdesc:af5687bbd9faf927fbd363c71e0baba5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function that implements the count of the subarrays. <a href="../../df/d94/subarray__sum_8cpp.html#af5687bbd9faf927fbd363c71e0baba5e">More...</a><br /></td></tr>
@@ -133,11 +132,11 @@ Functions</h2></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>
<div class="textblock"><p><a href="https://en.wikipedia.org/wiki/Subset_sum_problem">Subset-sum</a> (only continuous subsets) problem </p>
<p>We are given an array and a sum value. The algorithms find all the subarrays of that array with sum equal to the given sum and return such subarrays count. This approach will have \(O(n)\) time complexity and \(O(n)\) space complexity. NOTE: In this problem, we are only referring to the continuous subsets as subarrays everywhere. Subarrays can be created using deletion operation at the end of the front of an array only. The parent array is also counted in subarrays having 0 number of deletion operations.</p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Swastyy">Swastika Gupta</a> </dd></dl>
<div class="textblock"><p ><a href="https://en.wikipedia.org/wiki/Subset_sum_problem" target="_blank">Subset-sum</a> (only continuous subsets) problem </p>
<p >We are given an array and a sum value. The algorithms find all the subarrays of that array with sum equal to the given sum and return such subarrays count. This approach will have \(O(n)\) time complexity and \(O(n)\) space complexity. NOTE: In this problem, we are only referring to the continuous subsets as subarrays everywhere. Subarrays can be created using deletion operation at the end of the front of an array only. The parent array is also counted in subarrays having 0 number of deletion operations.</p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/Swastyy" target="_blank">Swastika Gupta</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -155,10 +154,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"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="../../df/d94/subarray__sum_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> {</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_function" href="../../df/d94/subarray__sum_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span>}</div>
<div class="ttc" id="asubarray__sum_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="../../df/d94/subarray__sum_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> subarray_sum.cpp:67</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -169,7 +168,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="af5687bbd9faf927fbd363c71e0baba5e"></a>
<a id="af5687bbd9faf927fbd363c71e0baba5e" name="af5687bbd9faf927fbd363c71e0baba5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5687bbd9faf927fbd363c71e0baba5e">&#9670;&nbsp;</a></span>subarray_sum()</h2>
<div class="memitem">
@@ -204,31 +203,31 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>count of the number of subsets with required sum </dd></dl>
<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; int64_t nelement = in_arr.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; int64_t count_of_subset = 0;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; int64_t current_sum = 0;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map&lt;int64_t, int64_t&gt;</a></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; sumarray; <span class="comment">// to store the subarrays count</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// frequency having some sum value</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">for</span> (int64_t i = 0; i &lt; nelement; i++) {</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; current_sum += in_arr[i];</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (current_sum == <a class="code" href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">sum</a>) {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; count_of_subset++;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// If in case current_sum is greater than the required sum</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span> (sumarray.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map/find.html">find</a>(current_sum - <a class="code" href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">sum</a>) != sumarray.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map/end.html">end</a>()) {</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; count_of_subset += (sumarray[current_sum - <a class="code" href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">sum</a>]);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; sumarray[current_sum]++;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> count_of_subset;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> {</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> int64_t nelement = in_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"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> int64_t count_of_subset = 0;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> int64_t current_sum = 0;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map&lt;int64_t, int64_t&gt;</a></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> sumarray; <span class="comment">// to store the subarrays count</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// frequency having some sum value</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">for</span> (int64_t i = 0; i &lt; nelement; i++) {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> current_sum += in_arr[i];</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">if</span> (current_sum == <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a>) {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> count_of_subset++;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// If in case current_sum is greater than the required sum</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">if</span> (sumarray.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map/find.html">find</a>(current_sum - <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a>) != sumarray.<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"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> count_of_subset += (sumarray[current_sum - <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a>]);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> sumarray[current_sum]++;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">return</span> count_of_subset;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span>}</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="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>
<div class="ttc" id="anamespacemachine__learning_html_a5305cc18d11943d3dc0d66e70d7e9c44"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">machine_learning::sum</a></div><div class="ttdeci">T sum(const std::vector&lt; std::valarray&lt; T &gt;&gt; &amp;A)</div><div class="ttdef"><b>Definition:</b> vector_ops.hpp:232</div></div>
<div class="ttc" id="anamespacemachine__learning_html_a6f1c98c016ad34ff3d9f39372161bd35"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">machine_learning::sum</a></div><div class="ttdeci">T sum(const std::vector&lt; std::valarray&lt; T &gt; &gt; &amp;A)</div><div class="ttdef"><b>Definition:</b> vector_ops.hpp:232</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="aunordered_map_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map</a></div></div>
</div><!-- fragment --><div class="dynheader">
@@ -240,7 +239,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="aa8dca7b867074164d5f45b0f3851269d"></a>
<a id="aa8dca7b867074164d5f45b0f3851269d" name="aa8dca7b867074164d5f45b0f3851269d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8dca7b867074164d5f45b0f3851269d">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -265,51 +264,51 @@ Here is the call graph for this function:</div>
<p>Self-test implementations. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// 1st test</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;1st test &quot;</span>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array1 = {-7, -3, -2, 5, 8}; <span class="comment">// input array</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; assert(</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; backtracking::subarray_sum::subarray_sum(0, array1) ==</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; 1); <span class="comment">// first argument in subarray_sum function is the required sum and</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// second is the input array, answer is the subarray {(-3,-2,5)}</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="codeRef" 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="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// 2nd test</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;2nd test &quot;</span>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array2 = {1, 2, 3, 3};</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; assert(backtracking::subarray_sum::subarray_sum(6, array2) ==</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; 2); <span class="comment">// here we are expecting 2 subsets which sum up to 6 i.e.</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// {(1,2,3),(3,3)}</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="codeRef" 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="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// 3rd test</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;3rd test &quot;</span>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array3 = {1, 1, 1, 1};</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; assert(backtracking::subarray_sum::subarray_sum(1, array3) ==</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; 4); <span class="comment">// here we are expecting 4 subsets which sum up to 1 i.e.</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// {(1),(1),(1),(1)}</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="codeRef" 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="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// 4rd test</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;4th test &quot;</span>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array4 = {3, 3, 3, 3};</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; assert(backtracking::subarray_sum::subarray_sum(6, array4) ==</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; 3); <span class="comment">// here we are expecting 3 subsets which sum up to 6 i.e.</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// {(3,3),(3,3),(3,3)}</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="codeRef" 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="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// 5th test</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;5th test &quot;</span>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array5 = {};</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; assert(backtracking::subarray_sum::subarray_sum(6, array5) ==</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; 0); <span class="comment">// here we are expecting 0 subsets which sum up to 6 i.e. we</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// cannot select anything from an empty array</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="codeRef" 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="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// 1st test</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</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;1st test &quot;</span>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array1 = {-7, -3, -2, 5, 8}; <span class="comment">// input array</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> assert(</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> backtracking::subarray_sum::subarray_sum(0, array1) ==</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> 1); <span class="comment">// first argument in subarray_sum function is the required sum and</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// second is the input array, answer is the subarray {(-3,-2,5)}</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</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"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// 2nd test</span></div>
<div class="line"><a id="l00078" name="l00078"></a><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;2nd test &quot;</span>;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array2 = {1, 2, 3, 3};</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> assert(backtracking::subarray_sum::subarray_sum(6, array2) ==</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> 2); <span class="comment">// here we are expecting 2 subsets which sum up to 6 i.e.</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// {(1,2,3),(3,3)}</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;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"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// 3rd test</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</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;3rd test &quot;</span>;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array3 = {1, 1, 1, 1};</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> assert(backtracking::subarray_sum::subarray_sum(1, array3) ==</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> 4); <span class="comment">// here we are expecting 4 subsets which sum up to 1 i.e.</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// {(1),(1),(1),(1)}</span></div>
<div class="line"><a id="l00091" name="l00091"></a><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&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"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="comment">// 4rd test</span></div>
<div class="line"><a id="l00094" name="l00094"></a><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;4th test &quot;</span>;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array4 = {3, 3, 3, 3};</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> assert(backtracking::subarray_sum::subarray_sum(6, array4) ==</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> 3); <span class="comment">// here we are expecting 3 subsets which sum up to 6 i.e.</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// {(3,3),(3,3),(3,3)}</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;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"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// 5th test</span></div>
<div class="line"><a id="l00102" name="l00102"></a><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;5th test &quot;</span>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int64_t&gt;</a> array5 = {};</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> assert(backtracking::subarray_sum::subarray_sum(6, array5) ==</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> 0); <span class="comment">// here we are expecting 0 subsets which sum up to 6 i.e. we</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// cannot select anything from an empty array</span></div>
<div class="line"><a id="l00107" name="l00107"></a><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;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"><a id="l00108" name="l00108"></a><span class="lineno"> 108</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="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt; int64_t &gt;</a></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 class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -325,7 +324,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_c11585dfcef32a26e29098facab6c144.html">backtracking</a></li><li class="navelem"><a class="el" href="../../df/d94/subarray__sum_8cpp.html">subarray_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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test Pages: 1 -->
<svg width="131pt" height="28pt"

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="205pt" height="28pt"

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -3,5 +3,5 @@
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/unordered_map/end.html#" title=" " alt="" coords="209,5,380,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/unordered_map/find.html#" title=" " alt="" coords="224,57,365,98"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="237,123,352,149"/>
<area shape="rect" id="node5" href="$d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44" title=" " alt="" coords="215,173,375,200"/>
<area shape="rect" id="node5" href="$d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35" title=" " alt="" coords="215,173,375,200"/>
</map>

View File

@@ -1 +1 @@
f96e853bb7500c3a56a1f0c0fd228adb
2edc3de380df685778180690684d4616

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: backtracking::subarray_sum::subarray_sum Pages: 1 -->
<svg width="289pt" height="154pt"
@@ -68,7 +68,7 @@
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44" target="_top" xlink:title=" ">
<g id="a_node5"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="157,-0.5 157,-19.5 277,-19.5 277,-0.5 157,-0.5"/>
<text text-anchor="middle" x="217" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::sum</text>
</a>

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: std::is_unsigned&lt; uint256_t &gt; Struct Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/d99/structstd_1_1is__unsigned_3_01uint256__t_01_4.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,8 +90,7 @@ $(document).ready(function(){initNavTree('df/d99/structstd_1_1is__unsigned_3_01u
</div>
<div class="header">
<div class="headertitle">
<div class="title">std::is_unsigned&lt; uint256_t &gt; Struct Reference</div> </div>
<div class="headertitle"><div class="title">std::is_unsigned&lt; uint256_t &gt; Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -115,7 +114,7 @@ Collaboration diagram for std::is_unsigned&lt; uint256_t &gt;:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d8/dcc/namespacestd.html">std</a></li><li class="navelem"><a class="el" href="../../df/d99/structstd_1_1is__unsigned_3_01uint256__t_01_4.html">is_unsigned&lt; uint256_t &gt;</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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -1,5 +0,0 @@
<map id="graph::is_graph_bipartite::Graph" name="graph::is_graph_bipartite::Graph">
<area shape="rect" id="node1" title="Class for representing graph as an adjacency list." alt="" coords="5,199,175,240"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="100,95,256,136"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector.html" title=" " alt="" coords="7,5,127,32"/>
</map>

View File

@@ -1 +0,0 @@
0f0ce0538db6a6c1291a75abdf23090d

View File

@@ -1,63 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: graph::is_graph_bipartite::Graph Pages: 1 -->
<svg width="196pt" height="184pt"
viewBox="0.00 0.00 196.00 184.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 180)">
<title>graph::is_graph_bipartite::Graph</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-180 192,-180 192,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Class for representing graph as an adjacency list.">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-30.5 127,-30.5 127,-0.5 0,-0.5"/>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">graph::is_graph_bipartite</text>
<text text-anchor="middle" x="63.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::Graph</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="71,-78.5 71,-108.5 188,-108.5 188,-78.5 71,-78.5"/>
<text text-anchor="start" x="79" y="-96.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector&lt; std::vector</text>
<text text-anchor="middle" x="129.5" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; int &gt; &gt;</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node1 -->
<g id="edge1" class="edge">
<title>Node2&#45;&gt;Node1</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M110.23,-70.31C99.13,-57.53 85.52,-41.86 75.86,-30.73"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="107.89,-72.95 117.09,-78.2 113.17,-68.36 107.89,-72.95"/>
<text text-anchor="middle" x="108" y="-52" font-family="Helvetica,sans-Serif" font-size="10.00"> adj</text>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector.html" xlink:title=" ">
<polygon fill="white" stroke="black" points="1.5,-156.5 1.5,-175.5 91.5,-175.5 91.5,-156.5 1.5,-156.5"/>
<text text-anchor="middle" x="46.5" y="-163.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector&lt; int &gt;</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node1 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node1</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M42.17,-146.38C38.71,-128.67 35.11,-101.32 39.5,-78 42.68,-61.1 50.37,-42.89 56.2,-30.71"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="38.77,-147.23 44.28,-156.28 45.62,-145.76 38.77,-147.23"/>
<text text-anchor="middle" x="50.5" y="-91" font-family="Helvetica,sans-Serif" font-size="10.00"> side</text>
</g>
<!-- Node3&#45;&gt;Node2 -->
<g id="edge2" class="edge">
<title>Node3&#45;&gt;Node2</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M64.41,-149.78C78.82,-137.55 98.89,-120.5 112.93,-108.58"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="62.03,-147.21 56.68,-156.36 66.56,-152.55 62.03,-147.21"/>
<text text-anchor="middle" x="111.5" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00"> elements</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: numerical_methods/successive_approximation.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('df/dc8/successive__approximation_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,12 +92,11 @@ $(document).ready(function(){initNavTree('df/dc8/successive__approximation_8cpp.
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">successive_approximation.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">successive_approximation.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Method of successive approximations using <a href="https://en.wikipedia.org/wiki/Fixed-point_iteration">fixed-point iteration</a> method.
<p>Method of successive approximations using <a href="https://en.wikipedia.org/wiki/Fixed-point_iteration" target="_blank">fixed-point iteration</a> method.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -108,7 +107,7 @@ Include dependency graph for successive_approximation.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a79c1d08919ff7780a5d7723172602389"><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dc8/successive__approximation_8cpp.html#a79c1d08919ff7780a5d7723172602389">eq</a> (float y)</td></tr>
<tr class="separator:a79c1d08919ff7780a5d7723172602389"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -118,9 +117,9 @@ Functions</h2></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>
<div class="textblock"><p>Method of successive approximations using <a href="https://en.wikipedia.org/wiki/Fixed-point_iteration">fixed-point iteration</a> method. </p>
<div class="textblock"><p >Method of successive approximations using <a href="https://en.wikipedia.org/wiki/Fixed-point_iteration" target="_blank">fixed-point iteration</a> method. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a79c1d08919ff7780a5d7723172602389"></a>
<a id="a79c1d08919ff7780a5d7723172602389" name="a79c1d08919ff7780a5d7723172602389"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79c1d08919ff7780a5d7723172602389">&#9670;&nbsp;</a></span>eq()</h2>
<div class="memitem">
@@ -143,15 +142,15 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>equation 1 </p><p class="formulaDsp">
<p >equation 1 </p><p class="formulaDsp">
\[f(y) = 3y - \cos y -2\]
</p>
<div class="fragment"><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{ <span class="keywordflow">return</span> (3 * y) - <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">cos</a>(y) - 2; }</div>
<div class="fragment"><div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span>{ <span class="keywordflow">return</span> (3 * y) - <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">cos</a>(y) - 2; }</div>
<div class="ttc" id="acos_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a></div><div class="ttdeci">T cos(T... args)</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ae89c36add7c55298c5195d0a83de1456"></a>
<a id="ae89c36add7c55298c5195d0a83de1456" name="ae89c36add7c55298c5195d0a83de1456"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae89c36add7c55298c5195d0a83de1456">&#9670;&nbsp;</a></span>eqd()</h2>
<div class="memitem">
@@ -174,14 +173,14 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>equation 2 </p><p class="formulaDsp">
<p >equation 2 </p><p class="formulaDsp">
\[f(y) = \frac{\cos y+2}{2}\]
</p>
<div class="fragment"><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{ <span class="keywordflow">return</span> 0.5 * (<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">cos</a>(y) + 2); }</div>
<div class="fragment"><div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span>{ <span class="keywordflow">return</span> 0.5 * (<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">cos</a>(y) + 2); }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -196,31 +195,31 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">float</span> y, x1, x2, x3, <a class="code" href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">sum</a>, s, a, f1, f2, gd;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">int</span> i, n;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 10; i++) {</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">sum</a> = <a class="code" href="../../df/dc8/successive__approximation_8cpp.html#a79c1d08919ff7780a5d7723172602389">eq</a>(y);</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;value of equation at &quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">sum</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; y++;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;enter the x1-&gt;&quot;</span>;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; x1;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;enter the no iteration to perform-&gt;\n&quot;</span>;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; n;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt;= n; i++) {</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; x2 = <a class="code" href="../../df/dc8/successive__approximation_8cpp.html#ae89c36add7c55298c5195d0a83de1456">eqd</a>(x1);</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nenter the x2-&gt;&quot;</span> &lt;&lt; x2;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; x1 = x2;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div>
<p >Main function </p>
<div class="fragment"><div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> {</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordtype">float</span> y, x1, x2, x3, <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a>, s, a, f1, f2, gd;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">int</span> i, n;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">for</span> (i = 0; i &lt; 10; i++) {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a> = <a class="code hl_function" href="../../df/dc8/successive__approximation_8cpp.html#a79c1d08919ff7780a5d7723172602389">eq</a>(y);</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;value of equation at &quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code hl_function" href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">sum</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> y++;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> }</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</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;enter the x1-&gt;&quot;</span>;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; x1;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</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;enter the no iteration to perform-&gt;\n&quot;</span>;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; n;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">for</span> (i = 0; i &lt;= n; i++) {</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> x2 = <a class="code hl_function" href="../../df/dc8/successive__approximation_8cpp.html#ae89c36add7c55298c5195d0a83de1456">eqd</a>(x1);</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</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;\nenter the x2-&gt;&quot;</span> &lt;&lt; x2;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> x1 = x2;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>}</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="anamespacemachine__learning_html_a5305cc18d11943d3dc0d66e70d7e9c44"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44">machine_learning::sum</a></div><div class="ttdeci">T sum(const std::vector&lt; std::valarray&lt; T &gt;&gt; &amp;A)</div><div class="ttdef"><b>Definition:</b> vector_ops.hpp:232</div></div>
<div class="ttc" id="anamespacemachine__learning_html_a6f1c98c016ad34ff3d9f39372161bd35"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35">machine_learning::sum</a></div><div class="ttdeci">T sum(const std::vector&lt; std::valarray&lt; T &gt; &gt; &amp;A)</div><div class="ttdef"><b>Definition:</b> vector_ops.hpp:232</div></div>
<div class="ttc" id="asuccessive__approximation_8cpp_html_a79c1d08919ff7780a5d7723172602389"><div class="ttname"><a href="../../df/dc8/successive__approximation_8cpp.html#a79c1d08919ff7780a5d7723172602389">eq</a></div><div class="ttdeci">static float eq(float y)</div><div class="ttdef"><b>Definition:</b> successive_approximation.cpp:12</div></div>
<div class="ttc" id="asuccessive__approximation_8cpp_html_ae89c36add7c55298c5195d0a83de1456"><div class="ttname"><a href="../../df/dc8/successive__approximation_8cpp.html#ae89c36add7c55298c5195d0a83de1456">eqd</a></div><div class="ttdeci">static float eqd(float y)</div><div class="ttdef"><b>Definition:</b> successive_approximation.cpp:17</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -238,7 +237,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="../../df/dc8/successive__approximation_8cpp.html">successive_approximation.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.1 </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.2 </li>
</ul>
</div>
</body>

View File

@@ -2,5 +2,5 @@
<area shape="rect" id="node1" title=" " alt="" coords="5,56,56,83"/>
<area shape="rect" id="node2" href="$df/dc8/successive__approximation_8cpp.html#a79c1d08919ff7780a5d7723172602389" title=" " alt="" coords="165,5,203,32"/>
<area shape="rect" id="node3" href="$df/dc8/successive__approximation_8cpp.html#ae89c36add7c55298c5195d0a83de1456" title=" " alt="" coords="162,56,206,83"/>
<area shape="rect" id="node4" href="$d8/d77/namespacemachine__learning.html#a5305cc18d11943d3dc0d66e70d7e9c44" title=" " alt="" coords="104,107,264,133"/>
<area shape="rect" id="node4" href="$d8/d77/namespacemachine__learning.html#a6f1c98c016ad34ff3d9f39372161bd35" title=" " alt="" coords="104,107,264,133"/>
</map>

View File

@@ -1 +1 @@
d9d71d2feeb03b6cc7cc557faa04bf1c
7a3eec5361d09ceaea2dec1970f875f8

Some files were not shown because too many files have changed in this diff Show More