Documentation for c6af943508

This commit is contained in:
realstealthninja
2024-11-04 12:10:37 +00:00
parent e97327bf4f
commit fb1d00ead7
518 changed files with 13882 additions and 10974 deletions

View File

@@ -114,17 +114,18 @@ $(function(){initNavTree('d5/d1e/next__higher__number__with__same__number__of__s
<p>[Next higher number with same number of set bits] (<a href="https://www.geeksforgeeks.org/next-higher-number-with-same-number-of-set-bits/">https://www.geeksforgeeks.org/next-higher-number-with-same-number-of-set-bits/</a>) implementation
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for next_higher_number_with_same_number_of_set_bits.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d9/deb/next__higher__number__with__same__number__of__set__bits_8cpp__incl.svg" width="195" height="140"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d9/deb/next__higher__number__with__same__number__of__set__bits_8cpp__incl.svg" width="255" height="140"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d81/namespacebit__manipulation.html">bit_manipulation</a></td></tr>
<tr class="memdesc:d7/d81/namespacebit__manipulation"><td class="mdescLeft">&#160;</td><td class="mdescRight">for IO operations <br /></td></tr>
<tr class="memdesc:d7/d81/namespacebit__manipulation"><td class="mdescLeft">&#160;</td><td class="mdescRight">for assert <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 id="func-members" name="func-members"></a>
@@ -161,11 +162,11 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 97</span> {</div>
<div class="line"><span class="lineno"> 98</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 99</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 100</span>}</div>
<div class="ttc" id="anext__higher__number__with__same__number__of__set__bits_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> next_higher_number_with_same_number_of_set_bits.cpp:73</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 98</span> {</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 100</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 101</span>}</div>
<div class="ttc" id="anext__higher__number__with__same__number__of__set__bits_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> next_higher_number_with_same_number_of_set_bits.cpp:74</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -199,29 +200,29 @@ 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"><span class="lineno"> 73</span> {</div>
<div class="line"><span class="lineno"> 74</span> <span class="comment">// x = 4 return 8</span></div>
<div class="line"><span class="lineno"> 75</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(4) == 8);</div>
<div class="line"><span class="lineno"> 76</span> <span class="comment">// x = 6 return 9</span></div>
<div class="line"><span class="lineno"> 77</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(6) == 9);</div>
<div class="line"><span class="lineno"> 78</span> <span class="comment">// x = 13 return 14</span></div>
<div class="line"><span class="lineno"> 79</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(13) == 14);</div>
<div class="line"><span class="lineno"> 80</span> <span class="comment">// x = 64 return 128</span></div>
<div class="line"><span class="lineno"> 81</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(64) == 128);</div>
<div class="line"><span class="lineno"> 82</span> <span class="comment">// x = 15 return 23</span></div>
<div class="line"><span class="lineno"> 83</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(15) == 23);</div>
<div class="line"><span class="lineno"> 84</span> <span class="comment">// x= 32 return 64</span></div>
<div class="line"><span class="lineno"> 85</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(32) == 64);</div>
<div class="line"><span class="lineno"> 86</span> <span class="comment">// x = 97 return 98</span></div>
<div class="line"><span class="lineno"> 87</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(97) == 98);</div>
<div class="line"><span class="lineno"> 88</span> <span class="comment">// x = 1024 return 2048</span></div>
<div class="line"><span class="lineno"> 89</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(1024) == 2048);</div>
<div class="line"><span class="lineno"> 90</span> </div>
<div class="line"><span class="lineno"> 91</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All test cases have successfully passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 92</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 74</span> {</div>
<div class="line"><span class="lineno"> 75</span> <span class="comment">// x = 4 return 8</span></div>
<div class="line"><span class="lineno"> 76</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(4) == 8);</div>
<div class="line"><span class="lineno"> 77</span> <span class="comment">// x = 6 return 9</span></div>
<div class="line"><span class="lineno"> 78</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(6) == 9);</div>
<div class="line"><span class="lineno"> 79</span> <span class="comment">// x = 13 return 14</span></div>
<div class="line"><span class="lineno"> 80</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(13) == 14);</div>
<div class="line"><span class="lineno"> 81</span> <span class="comment">// x = 64 return 128</span></div>
<div class="line"><span class="lineno"> 82</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(64) == 128);</div>
<div class="line"><span class="lineno"> 83</span> <span class="comment">// x = 15 return 23</span></div>
<div class="line"><span class="lineno"> 84</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(15) == 23);</div>
<div class="line"><span class="lineno"> 85</span> <span class="comment">// x= 32 return 64</span></div>
<div class="line"><span class="lineno"> 86</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(32) == 64);</div>
<div class="line"><span class="lineno"> 87</span> <span class="comment">// x = 97 return 98</span></div>
<div class="line"><span class="lineno"> 88</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(97) == 98);</div>
<div class="line"><span class="lineno"> 89</span> <span class="comment">// x = 1024 return 2048</span></div>
<div class="line"><span class="lineno"> 90</span> assert(<a class="code hl_function" href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a>(1024) == 2048);</div>
<div class="line"><span class="lineno"> 91</span> </div>
<div class="line"><span class="lineno"> 92</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All test cases have successfully passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 93</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="anamespacebit__manipulation_html_a4b76571a2a04fa99c30a96eca9997f0e"><div class="ttname"><a href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a></div><div class="ttdeci">uint64_t next_higher_number(uint64_t x)</div><div class="ttdoc">The main function implements checking the next number.</div><div class="ttdef"><b>Definition</b> next_higher_number_with_same_number_of_set_bits.cpp:32</div></div>
<div class="ttc" id="anamespacebit__manipulation_html_a4b76571a2a04fa99c30a96eca9997f0e"><div class="ttname"><a href="../../d7/d81/namespacebit__manipulation.html#a4b76571a2a04fa99c30a96eca9997f0e">bit_manipulation::next_higher_number</a></div><div class="ttdeci">uint64_t next_higher_number(uint64_t x)</div><div class="ttdoc">The main function implements checking the next number.</div><div class="ttdef"><b>Definition</b> next_higher_number_with_same_number_of_set_bits.cpp:33</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">

View File

@@ -173,7 +173,6 @@ constexpr float&#160;</td><td class="memItemRight" valign="bottom"><b>PROBABILIT
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>for IO operations </p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>For IO operations.</p>
<p><a class="el" href="../../d2/dc8/classdata__structures_1_1_stack.html" title="Class representation of a stack.">Stack</a> Data Structure Using the <a class="el" href="../../dc/db5/struct_queue.html">Queue</a> Data Structure.</p>
<p>For <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/error/out_of_range.html">std::out_of_range</a>.</p>
<p>Data-structure algorithms.</p>
@@ -184,19 +183,19 @@ constexpr float&#160;</td><td class="memItemRight" valign="bottom"><b>PROBABILIT
<p>Data Structures algorithms.</p>
<p>for assert for list of hash functions for bloom filter constructor for initializer_list for bloom filter constructor for testing on strings for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>Data Structures algorithms</p>
<p>for io operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a> for io operations</p>
<p>Algorithms with data structures</p>
<p>for assert for I/O operations</p>
<p>Data Structures algorithms</p>
<p>For IO operations For <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> For <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">std::min</a> and <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a> for assert</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a> for IO operations</p>
<p>Data Structures algorithms</p>
<p>For std::assert For <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> For <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a></p>
<p><a class="el" href="../../d5/d3c/namespacedata__structures.html" title="for IO operations">data_structures</a></p>
<p>Using 2 Queues inside the <a class="el" href="../../d2/dc8/classdata__structures_1_1_stack.html" title="Class representation of a stack.">Stack</a> class, we can easily implement <a class="el" href="../../d2/dc8/classdata__structures_1_1_stack.html" title="Class representation of a stack.">Stack</a> data structure with heavy computation in push function.</p>
<p>References used: <a href="https://www.studytonight.com/data-structures/stack-using-queue" target="_blank">StudyTonight</a> </p><dl class="section author"><dt>Author</dt><dd><a href="https://github.com/tushar2407" target="_blank">tushar2407</a> for assert for IO operations for queue data structure</dd></dl>
<p>Data structures algorithms</p>
<p>For array For assert</p>
<p>For array For IO operations</p>
<p>Data Structures</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a> for assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ofstream.html">std::ofstream</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/queue.html">std::queue</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a></p>
<p>for assert for IO operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/stack.html">std::stack</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map</a></p>

View File

@@ -1,11 +1,13 @@
<map id="sorting/selection_sort_recursive.cpp" name="sorting/selection_sort_recursive.cpp">
<area shape="rect" id="Node000001" title="Implementation of the Selection sort implementation using recursion." alt="" coords="108,5,254,46"/>
<area shape="rect" id="Node000001" title="Implementation of the Selection sort implementation using recursion." alt="" coords="150,5,295,46"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="5,94,80,120"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="148,49,78,88,75,84,145,44"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="179,49,85,90,83,85,176,44"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="104,94,168,120"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="172,48,153,82,148,79,168,45"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="192,94,264,120"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="195,45,215,79,211,82,190,48"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="287,94,344,120"/>
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="216,44,283,83,281,88,213,49"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="203,48,162,85,159,81,199,44"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="192,94,253,120"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="225,46,225,78,220,78,220,46"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="276,94,348,120"/>
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="246,44,289,82,285,86,243,48"/>
<area shape="rect" id="Node000006" title=" " alt="" coords="371,94,428,120"/>
<area shape="poly" id="edge5_Node000001_Node000006" title=" " alt="" coords="268,44,360,85,358,90,266,49"/>
</map>

View File

@@ -1 +1 @@
780116b32fefbfe4a2df7d89aecf2b53
5f08f017434840d662bf06cc2099d100

View File

@@ -4,8 +4,8 @@
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
-->
<!-- Title: sorting/selection_sort_recursive.cpp Pages: 1 -->
<svg width="262pt" height="94pt"
viewBox="0.00 0.00 262.38 93.75" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="325pt" height="94pt"
viewBox="0.00 0.00 325.38 93.75" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
@@ -23,9 +23,9 @@
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Implementation of the Selection sort implementation using recursion.">
<polygon fill="#999999" stroke="#666666" points="186.38,-85.75 77.38,-85.75 77.38,-55.25 186.38,-55.25 186.38,-85.75"/>
<text text-anchor="start" x="85.38" y="-72.25" font-family="Helvetica,sans-Serif" font-size="10.00">sorting/selection_sort</text>
<text text-anchor="middle" x="131.88" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">_recursive.cpp</text>
<polygon fill="#999999" stroke="#666666" points="217.38,-85.75 108.38,-85.75 108.38,-55.25 217.38,-55.25 217.38,-85.75"/>
<text text-anchor="start" x="116.38" y="-72.25" font-family="Helvetica,sans-Serif" font-size="10.00">sorting/selection_sort</text>
<text text-anchor="middle" x="162.88" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">_recursive.cpp</text>
</a>
</g>
</g>
@@ -42,8 +42,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M105.9,-54.8C89.91,-45.74 69.49,-34.19 53.56,-25.16"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="55.57,-22.28 45.14,-20.4 52.12,-28.37 55.57,-22.28"/>
<path fill="none" stroke="#63b8ff" d="M129.16,-54.8C107.61,-45.4 79.87,-33.3 58.88,-24.14"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="60.53,-21.05 49.97,-20.26 57.73,-27.46 60.53,-21.05"/>
</a>
</g>
</g>
@@ -60,8 +60,8 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M123.47,-54.95C119.04,-47.28 113.55,-37.77 108.8,-29.54"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="111.91,-27.92 103.87,-21.01 105.84,-31.42 111.91,-27.92"/>
<path fill="none" stroke="#63b8ff" d="M146.81,-54.95C137.58,-46.59 125.95,-36.05 116.34,-27.35"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="118.78,-24.84 109.02,-20.72 114.08,-30.02 118.78,-24.84"/>
</a>
</g>
</g>
@@ -69,8 +69,8 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="193.62,-19.25 140.12,-19.25 140.12,0 193.62,0 193.62,-19.25"/>
<text text-anchor="middle" x="166.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="185.5,-19.25 140.25,-19.25 140.25,0 185.5,0 185.5,-19.25"/>
<text text-anchor="middle" x="162.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cstdint</text>
</a>
</g>
</g>
@@ -78,8 +78,8 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M140.53,-54.95C145.09,-47.28 150.74,-37.77 155.63,-29.54"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="158.6,-31.39 160.71,-21 152.59,-27.81 158.6,-31.39"/>
<path fill="none" stroke="#63b8ff" d="M162.88,-54.95C162.88,-47.71 162.88,-38.84 162.88,-30.94"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="166.38,-31.21 162.88,-21.21 159.38,-31.21 166.38,-31.21"/>
</a>
</g>
</g>
@@ -87,8 +87,8 @@
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="254.38,-19.25 211.38,-19.25 211.38,0 254.38,0 254.38,-19.25"/>
<text text-anchor="middle" x="232.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
<polygon fill="#e0e0e0" stroke="#999999" points="256.62,-19.25 203.12,-19.25 203.12,0 256.62,0 256.62,-19.25"/>
<text text-anchor="middle" x="229.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
@@ -96,8 +96,26 @@
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M157.1,-54.8C172.48,-45.83 192.08,-34.41 207.49,-25.42"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="209.2,-28.48 216.08,-20.42 205.68,-22.43 209.2,-28.48"/>
<path fill="none" stroke="#63b8ff" d="M179.44,-54.95C189.05,-46.5 201.19,-35.83 211.15,-27.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="213.21,-29.93 218.41,-20.7 208.59,-24.67 213.21,-29.93"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="317.38,-19.25 274.38,-19.25 274.38,0 317.38,0 317.38,-19.25"/>
<text text-anchor="middle" x="295.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M196.09,-54.8C217.22,-45.44 244.4,-33.41 265.05,-24.27"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="266.37,-27.51 274.09,-20.27 263.53,-21.11 266.37,-27.51"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -4,17 +4,17 @@
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
-->
<!-- Title: sorting/selection_sort_recursive.cpp Pages: 1 -->
<svg width="262pt" height="94pt"
viewBox="0.00 0.00 262.38 93.75" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="325pt" height="94pt"
viewBox="0.00 0.00 325.38 93.75" 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 89.75)">
<title>sorting/selection_sort_recursive.cpp</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Implementation of the Selection sort implementation using recursion.">
<polygon fill="#999999" stroke="#666666" points="186.38,-85.75 77.38,-85.75 77.38,-55.25 186.38,-55.25 186.38,-85.75"/>
<text text-anchor="start" x="85.38" y="-72.25" font-family="Helvetica,sans-Serif" font-size="10.00">sorting/selection_sort</text>
<text text-anchor="middle" x="131.88" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">_recursive.cpp</text>
<polygon fill="#999999" stroke="#666666" points="217.38,-85.75 108.38,-85.75 108.38,-55.25 217.38,-55.25 217.38,-85.75"/>
<text text-anchor="start" x="116.38" y="-72.25" font-family="Helvetica,sans-Serif" font-size="10.00">sorting/selection_sort</text>
<text text-anchor="middle" x="162.88" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">_recursive.cpp</text>
</a>
</g>
</g>
@@ -31,8 +31,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M105.9,-54.8C89.91,-45.74 69.49,-34.19 53.56,-25.16"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="55.57,-22.28 45.14,-20.4 52.12,-28.37 55.57,-22.28"/>
<path fill="none" stroke="#63b8ff" d="M129.16,-54.8C107.61,-45.4 79.87,-33.3 58.88,-24.14"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="60.53,-21.05 49.97,-20.26 57.73,-27.46 60.53,-21.05"/>
</a>
</g>
</g>
@@ -49,8 +49,8 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M123.47,-54.95C119.04,-47.28 113.55,-37.77 108.8,-29.54"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="111.91,-27.92 103.87,-21.01 105.84,-31.42 111.91,-27.92"/>
<path fill="none" stroke="#63b8ff" d="M146.81,-54.95C137.58,-46.59 125.95,-36.05 116.34,-27.35"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="118.78,-24.84 109.02,-20.72 114.08,-30.02 118.78,-24.84"/>
</a>
</g>
</g>
@@ -58,8 +58,8 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="193.62,-19.25 140.12,-19.25 140.12,0 193.62,0 193.62,-19.25"/>
<text text-anchor="middle" x="166.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="185.5,-19.25 140.25,-19.25 140.25,0 185.5,0 185.5,-19.25"/>
<text text-anchor="middle" x="162.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cstdint</text>
</a>
</g>
</g>
@@ -67,8 +67,8 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M140.53,-54.95C145.09,-47.28 150.74,-37.77 155.63,-29.54"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="158.6,-31.39 160.71,-21 152.59,-27.81 158.6,-31.39"/>
<path fill="none" stroke="#63b8ff" d="M162.88,-54.95C162.88,-47.71 162.88,-38.84 162.88,-30.94"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="166.38,-31.21 162.88,-21.21 159.38,-31.21 166.38,-31.21"/>
</a>
</g>
</g>
@@ -76,8 +76,8 @@
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="254.38,-19.25 211.38,-19.25 211.38,0 254.38,0 254.38,-19.25"/>
<text text-anchor="middle" x="232.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
<polygon fill="#e0e0e0" stroke="#999999" points="256.62,-19.25 203.12,-19.25 203.12,0 256.62,0 256.62,-19.25"/>
<text text-anchor="middle" x="229.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
@@ -85,8 +85,26 @@
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M157.1,-54.8C172.48,-45.83 192.08,-34.41 207.49,-25.42"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="209.2,-28.48 216.08,-20.42 205.68,-22.43 209.2,-28.48"/>
<path fill="none" stroke="#63b8ff" d="M179.44,-54.95C189.05,-46.5 201.19,-35.83 211.15,-27.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="213.21,-29.93 218.41,-20.7 208.59,-24.67 213.21,-29.93"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="317.38,-19.25 274.38,-19.25 274.38,0 317.38,0 317.38,-19.25"/>
<text text-anchor="middle" x="295.88" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M196.09,-54.8C217.22,-45.44 244.4,-33.41 265.05,-24.27"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="266.37,-27.51 274.09,-20.27 263.53,-21.11 266.37,-27.51"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -115,12 +115,13 @@ $(function(){initNavTree('d5/d45/sublist__search_8cpp.html','../../'); initResiz
<p>Implementation of the <a href="https://www.geeksforgeeks.org/sublist-search-search-a-linked-list-in-another-list" target="_blank">Sublist Search Algorithm</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for sublist_search.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d92/sublist__search_8cpp__incl.svg" width="252" height="111"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d92/sublist__search_8cpp__incl.svg" width="336" height="111"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
@@ -135,7 +136,7 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/dca/namespacesearch.html">search</a></td></tr>
<tr class="memdesc:d9/dca/namespacesearch"><td class="mdescLeft">&#160;</td><td class="mdescRight">for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> <br /></td></tr>
<tr class="memdesc:d9/dca/namespacesearch"><td class="mdescLeft">&#160;</td><td class="mdescRight">for std::assert <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/def/namespacesublist__search.html">sublist_search</a></td></tr>
<tr class="memdesc:d9/def/namespacesublist__search"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for the <a href="https://www.geeksforgeeks.org/sublist-search-search-a-linked-list-in-another-list" target="_blank">Sublist Search</a> implementation. <br /></td></tr>
@@ -192,12 +193,12 @@ Working</h3>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><span class="lineno"> 100</span> {</div>
<div class="line"><span class="lineno"> 101</span> <span class="keywordflow">if</span> (root != NULL) {</div>
<div class="line"><span class="lineno"> 102</span> deleteList(root-&gt;next);</div>
<div class="line"><span class="lineno"> 103</span> <span class="keyword">delete</span> root;</div>
<div class="line"><span class="lineno"> 104</span> }</div>
<div class="line"><span class="lineno"> 105</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 101</span> {</div>
<div class="line"><span class="lineno"> 102</span> <span class="keywordflow">if</span> (root != NULL) {</div>
<div class="line"><span class="lineno"> 103</span> deleteList(root-&gt;next);</div>
<div class="line"><span class="lineno"> 104</span> <span class="keyword">delete</span> root;</div>
<div class="line"><span class="lineno"> 105</span> }</div>
<div class="line"><span class="lineno"> 106</span>}</div>
</div><!-- fragment -->
</div>
</div>
@@ -233,48 +234,48 @@ Working</h3>
<p>&lt; Sublist to be searched</p>
<p>&lt; Main list in which sublist is to be searched</p>
<p>&lt; boolean to check if the sublist exists or not</p>
<div class="fragment"><div class="line"><span class="lineno"> 359</span> {</div>
<div class="line"><span class="lineno"> 360</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 361</span> </div>
<div class="line"><span class="lineno"> 362</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> mainlistData = {</div>
<div class="line"><span class="lineno"> 363</span> 2, 5, 6, 7, 8}; <span class="comment">///&lt; Main list in which sublist is to be searched</span></div>
<div class="line"><span class="lineno"> 364</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sublistData = {6, 8}; <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 365</span> </div>
<div class="line"><span class="lineno"> 366</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *mainlistLL =</div>
<div class="line"><span class="lineno"> 367</span> <a class="code hl_function" href="#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(mainlistData);</div>
<div class="line"><span class="lineno"> 368</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *sublistLL =</div>
<div class="line"><span class="lineno"> 369</span> <a class="code hl_function" href="#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 370</span> sublistData); <span class="comment">///&lt; Main list in which sublist is to be</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 371</span><span class="comment"> ///&lt; searched</span></div>
<div class="line"><span class="lineno"> 372</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 373</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">exists</a> = <a class="code hl_function" href="#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a>(</div>
<div class="line"><span class="lineno"> 374</span> sublistLL,</div>
<div class="line"><span class="lineno"> 375</span> mainlistLL); <span class="comment">///&lt; boolean to check if the sublist exists or not</span></div>
<div class="line"><span class="lineno"> 376</span> </div>
<div class="line"><span class="lineno"> 377</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;Sublist: &quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 378</span> <a class="code hl_function" href="#ad1028bc215281d62e344af99da57fab2">search::sublist_search::printLinkedList</a>(sublistLL);</div>
<div class="line"><span class="lineno"> 379</span> </div>
<div class="line"><span class="lineno"> 380</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Main list: &quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 381</span> <a class="code hl_function" href="#ad1028bc215281d62e344af99da57fab2">search::sublist_search::printLinkedList</a>(mainlistLL);</div>
<div class="line"><span class="lineno"> 382</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 383</span> </div>
<div class="line"><span class="lineno"> 384</span> <span class="keywordflow">if</span> (exists) {</div>
<div class="line"><span class="lineno"> 385</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;[TRUE] - sublist found in main list\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 386</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 387</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;[FALSE] - sublist NOT found in main list\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 388</span> }</div>
<div class="line"><span class="lineno"> 389</span> </div>
<div class="line"><span class="lineno"> 390</span> deleteList(mainlistLL);</div>
<div class="line"><span class="lineno"> 391</span> deleteList(sublistLL);</div>
<div class="line"><span class="lineno"> 392</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 393</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 360</span> {</div>
<div class="line"><span class="lineno"> 361</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 362</span> </div>
<div class="line"><span class="lineno"> 363</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> mainlistData = {</div>
<div class="line"><span class="lineno"> 364</span> 2, 5, 6, 7, 8}; <span class="comment">///&lt; Main list in which sublist is to be searched</span></div>
<div class="line"><span class="lineno"> 365</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sublistData = {6, 8}; <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 366</span> </div>
<div class="line"><span class="lineno"> 367</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *mainlistLL =</div>
<div class="line"><span class="lineno"> 368</span> <a class="code hl_function" href="#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(mainlistData);</div>
<div class="line"><span class="lineno"> 369</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *sublistLL =</div>
<div class="line"><span class="lineno"> 370</span> <a class="code hl_function" href="#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 371</span> sublistData); <span class="comment">///&lt; Main list in which sublist is to be</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 372</span><span class="comment"> ///&lt; searched</span></div>
<div class="line"><span class="lineno"> 373</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 374</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">exists</a> = <a class="code hl_function" href="#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a>(</div>
<div class="line"><span class="lineno"> 375</span> sublistLL,</div>
<div class="line"><span class="lineno"> 376</span> mainlistLL); <span class="comment">///&lt; boolean to check if the sublist exists or not</span></div>
<div class="line"><span class="lineno"> 377</span> </div>
<div class="line"><span class="lineno"> 378</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;Sublist: &quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 379</span> <a class="code hl_function" href="#ad1028bc215281d62e344af99da57fab2">search::sublist_search::printLinkedList</a>(sublistLL);</div>
<div class="line"><span class="lineno"> 380</span> </div>
<div class="line"><span class="lineno"> 381</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;Main list: &quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 382</span> <a class="code hl_function" href="#ad1028bc215281d62e344af99da57fab2">search::sublist_search::printLinkedList</a>(mainlistLL);</div>
<div class="line"><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; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 384</span> </div>
<div class="line"><span class="lineno"> 385</span> <span class="keywordflow">if</span> (exists) {</div>
<div class="line"><span class="lineno"> 386</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;[TRUE] - sublist found in main list\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 387</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 388</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;[FALSE] - sublist NOT found in main list\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 389</span> }</div>
<div class="line"><span class="lineno"> 390</span> </div>
<div class="line"><span class="lineno"> 391</span> deleteList(mainlistLL);</div>
<div class="line"><span class="lineno"> 392</span> deleteList(sublistLL);</div>
<div class="line"><span class="lineno"> 393</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 394</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="astructsearch_1_1sublist__search_1_1_node_html"><div class="ttname"><a href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a></div><div class="ttdoc">A Node structure representing a single link Node in a linked list.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:47</div></div>
<div class="ttc" id="asublist__search_8cpp_html_a4faee403e2758aaab682ed6622ae218c"><div class="ttname"><a href="#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a></div><div class="ttdeci">bool sublistSearch(Node *sublist, Node *mainList)</div><div class="ttdoc">Main searching function.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:114</div></div>
<div class="ttc" id="asublist__search_8cpp_html_a70ca8d0267008e09cfa50b4e2ddfbe53"><div class="ttname"><a href="#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a></div><div class="ttdeci">Node * makeLinkedList(const std::vector&lt; uint64_t &gt; &amp;data)</div><div class="ttdoc">Give a vector of data, it adds each element of vector in the linked list and return the address of he...</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:73</div></div>
<div class="ttc" id="asublist__search_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:348</div></div>
<div class="ttc" id="asublist__search_8cpp_html_ad1028bc215281d62e344af99da57fab2"><div class="ttname"><a href="#ad1028bc215281d62e344af99da57fab2">search::sublist_search::printLinkedList</a></div><div class="ttdeci">void printLinkedList(Node *start)</div><div class="ttdoc">A simple function to print the linked list.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:57</div></div>
<div class="ttc" id="astructsearch_1_1sublist__search_1_1_node_html"><div class="ttname"><a href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a></div><div class="ttdoc">A Node structure representing a single link Node in a linked list.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:48</div></div>
<div class="ttc" id="asublist__search_8cpp_html_a4faee403e2758aaab682ed6622ae218c"><div class="ttname"><a href="#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a></div><div class="ttdeci">bool sublistSearch(Node *sublist, Node *mainList)</div><div class="ttdoc">Main searching function.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:115</div></div>
<div class="ttc" id="asublist__search_8cpp_html_a70ca8d0267008e09cfa50b4e2ddfbe53"><div class="ttname"><a href="#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a></div><div class="ttdeci">Node * makeLinkedList(const std::vector&lt; uint64_t &gt; &amp;data)</div><div class="ttdoc">Give a vector of data, it adds each element of vector in the linked list and return the address of he...</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:74</div></div>
<div class="ttc" id="asublist__search_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:349</div></div>
<div class="ttc" id="asublist__search_8cpp_html_ad1028bc215281d62e344af99da57fab2"><div class="ttname"><a href="#ad1028bc215281d62e344af99da57fab2">search::sublist_search::printLinkedList</a></div><div class="ttdeci">void printLinkedList(Node *start)</div><div class="ttdoc">A simple function to print the linked list.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:58</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 class="ttc" id="aword__break_8cpp_html_a1cc9dd6e6190d10a010fdcdfe7a21a81"><div class="ttname"><a href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">dynamic_programming::word_break::exists</a></div><div class="ttdeci">bool exists(const std::string &amp;str, const std::unordered_set&lt; std::string &gt; &amp;strSet)</div><div class="ttdoc">Function that checks if the string passed in param is present in the the unordered_set passed.</div><div class="ttdef"><b>Definition</b> word_break.cpp:60</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -309,25 +310,25 @@ Here is the call graph for this function:</div>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Node* A head pointer to the linked list. </dd></dl>
<p>This is used in test cases for rapidly creating linked list with 100+ elements, instead of hard-coding 100 elements in test cases.</p>
<div class="fragment"><div class="line"><span class="lineno"> 73</span> {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 74</span><span class="comment"> /// This is used in test cases for rapidly creating linked list with 100+</span></div>
<div class="line"><span class="lineno"> 75</span><span class="comment"> /// elements, instead of hard-coding 100 elements in test cases.</span></div>
<div class="line"><span class="lineno"> 76</span><span class="comment"></span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *head = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 77</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *tail = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 78</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i : <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>) {</div>
<div class="line"><span class="lineno"> 79</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *<a class="code hl_class" href="../../d5/da1/structnode.html">node</a> = <span class="keyword">new</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a>;</div>
<div class="line"><span class="lineno"> 80</span> <a class="code hl_class" href="../../d5/da1/structnode.html">node</a>-&gt;data = i;</div>
<div class="line"><span class="lineno"> 81</span> <a class="code hl_class" href="../../d5/da1/structnode.html">node</a>-&gt;next = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 82</span> <span class="keywordflow">if</span> (head == <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 83</span> head = <a class="code hl_typedef" href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a>;</div>
<div class="line"><span class="lineno"> 84</span> tail = <a class="code hl_typedef" href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a>;</div>
<div class="line"><span class="lineno"> 85</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 86</span> tail-&gt;next = <a class="code hl_typedef" href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a>;</div>
<div class="line"><span class="lineno"> 87</span> tail = tail-&gt;next;</div>
<div class="line"><span class="lineno"> 88</span> }</div>
<div class="line"><span class="lineno"> 89</span> }</div>
<div class="line"><span class="lineno"> 90</span> <span class="keywordflow">return</span> head;</div>
<div class="line"><span class="lineno"> 91</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 74</span> {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 75</span><span class="comment"> /// This is used in test cases for rapidly creating linked list with 100+</span></div>
<div class="line"><span class="lineno"> 76</span><span class="comment"> /// elements, instead of hard-coding 100 elements in test cases.</span></div>
<div class="line"><span class="lineno"> 77</span><span class="comment"></span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *head = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *tail = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 79</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i : <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>) {</div>
<div class="line"><span class="lineno"> 80</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *<a class="code hl_class" href="../../d5/da1/structnode.html">node</a> = <span class="keyword">new</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a>;</div>
<div class="line"><span class="lineno"> 81</span> <a class="code hl_class" href="../../d5/da1/structnode.html">node</a>-&gt;data = i;</div>
<div class="line"><span class="lineno"> 82</span> <a class="code hl_class" href="../../d5/da1/structnode.html">node</a>-&gt;next = <span class="keyword">nullptr</span>;</div>
<div class="line"><span class="lineno"> 83</span> <span class="keywordflow">if</span> (head == <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 84</span> head = <a class="code hl_typedef" href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a>;</div>
<div class="line"><span class="lineno"> 85</span> tail = <a class="code hl_typedef" href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a>;</div>
<div class="line"><span class="lineno"> 86</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 87</span> tail-&gt;next = <a class="code hl_typedef" href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a>;</div>
<div class="line"><span class="lineno"> 88</span> tail = tail-&gt;next;</div>
<div class="line"><span class="lineno"> 89</span> }</div>
<div class="line"><span class="lineno"> 90</span> }</div>
<div class="line"><span class="lineno"> 91</span> <span class="keywordflow">return</span> head;</div>
<div class="line"><span class="lineno"> 92</span>}</div>
<div class="ttc" id="aavltree_8cpp_html_a74f0cf18a0e5b832d9994e2f2d022287"><div class="ttname"><a href="../../d8/dee/avltree_8cpp.html#a74f0cf18a0e5b832d9994e2f2d022287">node</a></div><div class="ttdeci">struct node { int data; int height; struct node *left; struct node *right;} node</div><div class="ttdoc">for std::queue</div><div class="ttdef"><b>Definition</b> avltree.cpp:13</div></div>
<div class="ttc" id="ahash__search_8cpp_html_a6e1a77282bc65ad359d753d25df23243"><div class="ttname"><a href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a></div><div class="ttdeci">int data[MAX]</div><div class="ttdoc">test data</div><div class="ttdef"><b>Definition</b> hash_search.cpp:24</div></div>
<div class="ttc" id="astruct_node_html"><div class="ttname"><a href="../../db/d8b/struct_node.html">Node</a></div><div class="ttdef"><b>Definition</b> linkedlist_implentation_usingarray.cpp:14</div></div>
@@ -363,13 +364,13 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 57</span> {</div>
<div class="line"><span class="lineno"> 58</span> <span class="keywordflow">while</span> (start != <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 59</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;-&gt;&quot;</span> &lt;&lt; start-&gt;data;</div>
<div class="line"><span class="lineno"> 60</span> start = start-&gt;next;</div>
<div class="line"><span class="lineno"> 61</span> }</div>
<div class="line"><span class="lineno"> 62</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 63</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 58</span> {</div>
<div class="line"><span class="lineno"> 59</span> <span class="keywordflow">while</span> (start != <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 60</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;-&gt;&quot;</span> &lt;&lt; start-&gt;data;</div>
<div class="line"><span class="lineno"> 61</span> start = start-&gt;next;</div>
<div class="line"><span class="lineno"> 62</span> }</div>
<div class="line"><span class="lineno"> 63</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 64</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -415,52 +416,52 @@ false if the sublist is NOT found </dd></dl>
<p>set the target pointer again to stating point of target list.</p>
<p>set the main pointer to the next element of the main list and repeat the algo.</p>
<p>If the main list is exhausted, means sublist does not found, return false</p>
<div class="fragment"><div class="line"><span class="lineno"> 114</span> {</div>
<div class="line"><span class="lineno"> 115</span> <span class="keywordflow">if</span> (sublist == <span class="keyword">nullptr</span> || mainList == <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 116</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 117</span> }</div>
<div class="line"><span class="lineno"> 118</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 119</span><span class="comment"> /// Initialize target pointer to the head node of sublist.</span></div>
<div class="line"><span class="lineno"> 120</span><span class="comment"></span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *target_ptr = sublist;</div>
<div class="line"><span class="lineno"> 121</span> </div>
<div class="line"><span class="lineno"> 122</span> <span class="keywordflow">while</span> (mainList != <span class="keyword">nullptr</span>) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 123</span><span class="comment"> /// Initialize main pointer to the current node of main list.</span></div>
<div class="line"><span class="lineno"> 124</span><span class="comment"></span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *main_ptr = mainList;</div>
<div class="line"><span class="lineno"> 125</span> </div>
<div class="line"><span class="lineno"> 126</span> <span class="keywordflow">while</span> (target_ptr != <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 127</span> <span class="keywordflow">if</span> (main_ptr == <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 128</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 129</span> </div>
<div class="line"><span class="lineno"> 130</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (main_ptr-&gt;data == target_ptr-&gt;data) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 131</span><span class="comment"> /// If the data of target node and main node is equal then move</span></div>
<div class="line"><span class="lineno"> 132</span><span class="comment"> /// to the next node of both lists.</span></div>
<div class="line"><span class="lineno"> 133</span><span class="comment"></span> target_ptr = target_ptr-&gt;next;</div>
<div class="line"><span class="lineno"> 134</span> main_ptr = main_ptr-&gt;next;</div>
<div class="line"><span class="lineno"> 135</span> </div>
<div class="line"><span class="lineno"> 136</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 137</span> <span class="keywordflow">break</span>;</div>
<div class="line"><span class="lineno"> 138</span> }</div>
<div class="line"><span class="lineno"> 139</span> }</div>
<div class="line"><span class="lineno"> 140</span> </div>
<div class="line"><span class="lineno"> 141</span> <span class="keywordflow">if</span> (target_ptr == <span class="keyword">nullptr</span>) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 142</span><span class="comment"> /// Is target pointer becomes null that means the target list is</span></div>
<div class="line"><span class="lineno"> 143</span><span class="comment"> /// been traversed without returning false. Which means the sublist</span></div>
<div class="line"><span class="lineno"> 144</span><span class="comment"> /// has been found and return ture.</span></div>
<div class="line"><span class="lineno"> 145</span><span class="comment"></span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 146</span> }</div>
<div class="line"><span class="lineno"> 147</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 148</span><span class="comment"> /// set the target pointer again to stating point of target list.</span></div>
<div class="line"><span class="lineno"> 149</span><span class="comment"></span> target_ptr = sublist;</div>
<div class="line"><span class="lineno"> 150</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 151</span><span class="comment"> /// set the main pointer to the next element of the main list and repeat</span></div>
<div class="line"><span class="lineno"> 152</span><span class="comment"> /// the algo.</span></div>
<div class="line"><span class="lineno"> 153</span><span class="comment"></span> mainList = mainList-&gt;next;</div>
<div class="line"><span class="lineno"> 154</span> }</div>
<div class="line"><span class="lineno"> 155</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 156</span><span class="comment"> /// If the main list is exhausted, means sublist does not found, return</span></div>
<div class="line"><span class="lineno"> 157</span><span class="comment"> /// false</span></div>
<div class="line"><span class="lineno"> 158</span><span class="comment"></span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 159</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 115</span> {</div>
<div class="line"><span class="lineno"> 116</span> <span class="keywordflow">if</span> (sublist == <span class="keyword">nullptr</span> || mainList == <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 117</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 118</span> }</div>
<div class="line"><span class="lineno"> 119</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 120</span><span class="comment"> /// Initialize target pointer to the head node of sublist.</span></div>
<div class="line"><span class="lineno"> 121</span><span class="comment"></span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *target_ptr = sublist;</div>
<div class="line"><span class="lineno"> 122</span> </div>
<div class="line"><span class="lineno"> 123</span> <span class="keywordflow">while</span> (mainList != <span class="keyword">nullptr</span>) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 124</span><span class="comment"> /// Initialize main pointer to the current node of main list.</span></div>
<div class="line"><span class="lineno"> 125</span><span class="comment"></span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *main_ptr = mainList;</div>
<div class="line"><span class="lineno"> 126</span> </div>
<div class="line"><span class="lineno"> 127</span> <span class="keywordflow">while</span> (target_ptr != <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 128</span> <span class="keywordflow">if</span> (main_ptr == <span class="keyword">nullptr</span>) {</div>
<div class="line"><span class="lineno"> 129</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 130</span> </div>
<div class="line"><span class="lineno"> 131</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (main_ptr-&gt;data == target_ptr-&gt;data) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 132</span><span class="comment"> /// If the data of target node and main node is equal then move</span></div>
<div class="line"><span class="lineno"> 133</span><span class="comment"> /// to the next node of both lists.</span></div>
<div class="line"><span class="lineno"> 134</span><span class="comment"></span> target_ptr = target_ptr-&gt;next;</div>
<div class="line"><span class="lineno"> 135</span> main_ptr = main_ptr-&gt;next;</div>
<div class="line"><span class="lineno"> 136</span> </div>
<div class="line"><span class="lineno"> 137</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 138</span> <span class="keywordflow">break</span>;</div>
<div class="line"><span class="lineno"> 139</span> }</div>
<div class="line"><span class="lineno"> 140</span> }</div>
<div class="line"><span class="lineno"> 141</span> </div>
<div class="line"><span class="lineno"> 142</span> <span class="keywordflow">if</span> (target_ptr == <span class="keyword">nullptr</span>) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 143</span><span class="comment"> /// Is target pointer becomes null that means the target list is</span></div>
<div class="line"><span class="lineno"> 144</span><span class="comment"> /// been traversed without returning false. Which means the sublist</span></div>
<div class="line"><span class="lineno"> 145</span><span class="comment"> /// has been found and return ture.</span></div>
<div class="line"><span class="lineno"> 146</span><span class="comment"></span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 147</span> }</div>
<div class="line"><span class="lineno"> 148</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 149</span><span class="comment"> /// set the target pointer again to stating point of target list.</span></div>
<div class="line"><span class="lineno"> 150</span><span class="comment"></span> target_ptr = sublist;</div>
<div class="line"><span class="lineno"> 151</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 152</span><span class="comment"> /// set the main pointer to the next element of the main list and repeat</span></div>
<div class="line"><span class="lineno"> 153</span><span class="comment"> /// the algo.</span></div>
<div class="line"><span class="lineno"> 154</span><span class="comment"></span> mainList = mainList-&gt;next;</div>
<div class="line"><span class="lineno"> 155</span> }</div>
<div class="line"><span class="lineno"> 156</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 157</span><span class="comment"> /// If the main list is exhausted, means sublist does not found, return</span></div>
<div class="line"><span class="lineno"> 158</span><span class="comment"> /// false</span></div>
<div class="line"><span class="lineno"> 159</span><span class="comment"></span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><span class="lineno"> 160</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -494,10 +495,10 @@ 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"><span class="lineno"> 348</span> {</div>
<div class="line"><span class="lineno"> 349</span> <a class="code hl_class" href="../../d5/d58/class_test_cases.html">TestCases</a> tc;</div>
<div class="line"><span class="lineno"> 350</span> tc.<a class="code hl_function" href="../../d5/d58/class_test_cases.html#aeabea90c02f9159e4a784bbf736e1e23">runTests</a>();</div>
<div class="line"><span class="lineno"> 351</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 349</span> {</div>
<div class="line"><span class="lineno"> 350</span> <a class="code hl_class" href="../../d5/d58/class_test_cases.html">TestCases</a> tc;</div>
<div class="line"><span class="lineno"> 351</span> tc.<a class="code hl_function" href="../../d5/d58/class_test_cases.html#aeabea90c02f9159e4a784bbf736e1e23">runTests</a>();</div>
<div class="line"><span class="lineno"> 352</span>}</div>
<div class="ttc" id="aclass_test_cases_html"><div class="ttname"><a href="../../d5/d58/class_test_cases.html">TestCases</a></div><div class="ttdoc">class encapsulating the necessary test cases</div><div class="ttdef"><b>Definition</b> inorder_successor_of_bst.cpp:225</div></div>
<div class="ttc" id="aclass_test_cases_html_aeabea90c02f9159e4a784bbf736e1e23"><div class="ttname"><a href="../../d5/d58/class_test_cases.html#aeabea90c02f9159e4a784bbf736e1e23">TestCases::runTests</a></div><div class="ttdeci">void runTests()</div><div class="ttdoc">Executes test cases.</div><div class="ttdef"><b>Definition</b> inorder_successor_of_bst.cpp:243</div></div>
</div><!-- fragment --><div class="dynheader">

View File

@@ -195,22 +195,22 @@ template&lt;typename T &gt; </div>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="../../dd/db0/_2_users_2runner_2work_2_c-_plus-_plus_2_c-_plus-_plus_2sorting_2wiggle_sort_8cpp-example.html#a4">/Users/runner/work/C-Plus-Plus/C-Plus-Plus/sorting/wiggle_sort.cpp</a>.</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 85</span> {</div>
<div class="line"><span class="lineno"> 86</span> uint32_t size = arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><span class="lineno"> 87</span> </div>
<div class="line"><span class="lineno"> 88</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Sorted elements are as follows: &quot;</span>;</div>
<div class="line"><span class="lineno"> 89</span> </div>
<div class="line"><span class="lineno"> 90</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
<div class="line"><span class="lineno"> 91</span> </div>
<div class="line"><span class="lineno"> 92</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; size; i++) {</div>
<div class="line"><span class="lineno"> 93</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; arr[i];</div>
<div class="line"><span class="lineno"> 94</span> <span class="keywordflow">if</span> (i != size - 1) {</div>
<div class="line"><span class="lineno"> 95</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
<div class="line"><span class="lineno"> 96</span> }</div>
<div class="line"><span class="lineno"> 97</span> }</div>
<div class="line"><span class="lineno"> 98</span> </div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;]&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 100</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 86</span> {</div>
<div class="line"><span class="lineno"> 87</span> uint32_t size = arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><span class="lineno"> 88</span> </div>
<div class="line"><span class="lineno"> 89</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Sorted elements are as follows: &quot;</span>;</div>
<div class="line"><span class="lineno"> 90</span> </div>
<div class="line"><span class="lineno"> 91</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
<div class="line"><span class="lineno"> 92</span> </div>
<div class="line"><span class="lineno"> 93</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; size; i++) {</div>
<div class="line"><span class="lineno"> 94</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; arr[i];</div>
<div class="line"><span class="lineno"> 95</span> <span class="keywordflow">if</span> (i != size - 1) {</div>
<div class="line"><span class="lineno"> 96</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
<div class="line"><span class="lineno"> 97</span> }</div>
<div class="line"><span class="lineno"> 98</span> }</div>
<div class="line"><span class="lineno"> 99</span> </div>
<div class="line"><span class="lineno"> 100</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;]&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 101</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="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>
@@ -525,26 +525,26 @@ Here is the call graph for this function:</div>
</table>
</div><div class="memdoc">
<p>Test function </p><dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 106</span> {</div>
<div class="line"><span class="lineno"> 107</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a>(<span class="keyword">nullptr</span>)); <span class="comment">// initialize random number generator</span></div>
<div class="line"><span class="lineno"> 108</span> </div>
<div class="line"><span class="lineno"> 109</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;float&gt;</a> data1(100);</div>
<div class="line"><span class="lineno"> 110</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;d : data1) { <span class="comment">// generate random numbers between -5.0 and 4.99</span></div>
<div class="line"><span class="lineno"> 111</span> d = float(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a>() % 1000 - 500) / 100.f;</div>
<div class="line"><span class="lineno"> 112</span> }</div>
<div class="line"><span class="lineno"> 113</span> </div>
<div class="line"><span class="lineno"> 114</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;float&gt;</a> sorted = sorting::wiggle_sort::wiggleSort&lt;float&gt;(data1);</div>
<div class="line"><span class="lineno"> 115</span> </div>
<div class="line"><span class="lineno"> 116</span> <a class="code hl_function" href="#ga135e4c638e3bcf548bd122b5f49a3e72">displayElements</a>(sorted);</div>
<div class="line"><span class="lineno"> 117</span> </div>
<div class="line"><span class="lineno"> 118</span> <span class="keywordflow">for</span> (uint32_t j = 0; j &lt; data1.size(); j += 2) {</div>
<div class="line"><span class="lineno"> 119</span> assert(data1[j] &lt;= data1[j + 1] &amp;&amp;</div>
<div class="line"><span class="lineno"> 120</span> data1[j + 1] &gt;= data1[j + 2]); <span class="comment">// check the validation condition</span></div>
<div class="line"><span class="lineno"> 121</span> }</div>
<div class="line"><span class="lineno"> 122</span> </div>
<div class="line"><span class="lineno"> 123</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 passed\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 124</span>}</div>
<div class="ttc" id="agroup__sorting_html_ga135e4c638e3bcf548bd122b5f49a3e72"><div class="ttname"><a href="#ga135e4c638e3bcf548bd122b5f49a3e72">displayElements</a></div><div class="ttdeci">static void displayElements(const std::vector&lt; T &gt; &amp;arr)</div><div class="ttdoc">Utility function used for printing the elements. Prints elements of the array after they're sorted us...</div><div class="ttdef"><b>Definition</b> wiggle_sort.cpp:85</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 107</span> {</div>
<div class="line"><span class="lineno"> 108</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a>(<span class="keyword">nullptr</span>)); <span class="comment">// initialize random number generator</span></div>
<div class="line"><span class="lineno"> 109</span> </div>
<div class="line"><span class="lineno"> 110</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;float&gt;</a> data1(100);</div>
<div class="line"><span class="lineno"> 111</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;d : data1) { <span class="comment">// generate random numbers between -5.0 and 4.99</span></div>
<div class="line"><span class="lineno"> 112</span> d = float(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a>() % 1000 - 500) / 100.f;</div>
<div class="line"><span class="lineno"> 113</span> }</div>
<div class="line"><span class="lineno"> 114</span> </div>
<div class="line"><span class="lineno"> 115</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;float&gt;</a> sorted = sorting::wiggle_sort::wiggleSort&lt;float&gt;(data1);</div>
<div class="line"><span class="lineno"> 116</span> </div>
<div class="line"><span class="lineno"> 117</span> <a class="code hl_function" href="#ga135e4c638e3bcf548bd122b5f49a3e72">displayElements</a>(sorted);</div>
<div class="line"><span class="lineno"> 118</span> </div>
<div class="line"><span class="lineno"> 119</span> <span class="keywordflow">for</span> (uint32_t j = 0; j &lt; data1.size(); j += 2) {</div>
<div class="line"><span class="lineno"> 120</span> assert(data1[j] &lt;= data1[j + 1] &amp;&amp;</div>
<div class="line"><span class="lineno"> 121</span> data1[j + 1] &gt;= data1[j + 2]); <span class="comment">// check the validation condition</span></div>
<div class="line"><span class="lineno"> 122</span> }</div>
<div class="line"><span class="lineno"> 123</span> </div>
<div class="line"><span class="lineno"> 124</span> <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\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 125</span>}</div>
<div class="ttc" id="agroup__sorting_html_ga135e4c638e3bcf548bd122b5f49a3e72"><div class="ttname"><a href="#ga135e4c638e3bcf548bd122b5f49a3e72">displayElements</a></div><div class="ttdeci">static void displayElements(const std::vector&lt; T &gt; &amp;arr)</div><div class="ttdoc">Utility function used for printing the elements. Prints elements of the array after they're sorted us...</div><div class="ttdef"><b>Definition</b> wiggle_sort.cpp:86</div></div>
<div class="ttc" id="arand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a></div><div class="ttdeci">T rand(T... args)</div></div>
<div class="ttc" id="asrand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a></div><div class="ttdeci">T srand(T... args)</div></div>
<div class="ttc" id="atime_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a></div><div class="ttdeci">T time(T... args)</div></div>

View File

@@ -253,10 +253,10 @@ template&lt;typename T &gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 175</span> {</div>
<div class="line"><span class="lineno"> 176</span> <span class="comment">// It&#39;s just to avoid writing cout and endl</span></div>
<div class="line"><span class="lineno"> 177</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;[TESTS] : ---&gt; &quot;</span> &lt;&lt; msg &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 178</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 176</span> {</div>
<div class="line"><span class="lineno"> 177</span> <span class="comment">// It&#39;s just to avoid writing cout and endl</span></div>
<div class="line"><span class="lineno"> 178</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;[TESTS] : ---&gt; &quot;</span> &lt;&lt; msg &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 179</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -382,16 +382,16 @@ Here is the call graph for this function:</div>
<p>Executes test cases. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 185</span> {</div>
<div class="line"><span class="lineno"> 186</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Running Tests...&quot;</span>);</div>
<div class="line"><span class="lineno"> 187</span> </div>
<div class="line"><span class="lineno"> 188</span> <a class="code hl_function" href="#ac2636e8b5b9e053374c45bfcf0603008">testCase_1</a>();</div>
<div class="line"><span class="lineno"> 189</span> <a class="code hl_function" href="#abae0148985f159b582a385cf399254e3">testCase_2</a>();</div>
<div class="line"><span class="lineno"> 190</span> <a class="code hl_function" href="#ad9f95c09931625b41e3be1f88d1e28c5">testCase_3</a>();</div>
<div class="line"><span class="lineno"> 191</span> </div>
<div class="line"><span class="lineno"> 192</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Test Cases over!&quot;</span>);</div>
<div class="line"><span class="lineno"> 193</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 194</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 186</span> {</div>
<div class="line"><span class="lineno"> 187</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Running Tests...&quot;</span>);</div>
<div class="line"><span class="lineno"> 188</span> </div>
<div class="line"><span class="lineno"> 189</span> <a class="code hl_function" href="#ac2636e8b5b9e053374c45bfcf0603008">testCase_1</a>();</div>
<div class="line"><span class="lineno"> 190</span> <a class="code hl_function" href="#abae0148985f159b582a385cf399254e3">testCase_2</a>();</div>
<div class="line"><span class="lineno"> 191</span> <a class="code hl_function" href="#ad9f95c09931625b41e3be1f88d1e28c5">testCase_3</a>();</div>
<div class="line"><span class="lineno"> 192</span> </div>
<div class="line"><span class="lineno"> 193</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Test Cases over!&quot;</span>);</div>
<div class="line"><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; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 195</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -557,46 +557,46 @@ Here is the call graph for this function:</div>
<p>&lt; Sublist to be searched</p>
<p>&lt; Main list in which sublist is to be searched</p>
<p>&lt; boolean, if sublist exist or not</p>
<div class="fragment"><div class="line"><span class="lineno"> 200</span> {</div>
<div class="line"><span class="lineno"> 201</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> expectedOutput = <span class="keyword">true</span>; <span class="comment">///&lt; Expected output of this test</span></div>
<div class="line"><span class="lineno"> 202</span> </div>
<div class="line"><span class="lineno"> 203</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 204</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 205</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;This is test case 1 for sublist search Algorithm : &quot;</span>);</div>
<div class="line"><span class="lineno"> 206</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Description:&quot;</span>);</div>
<div class="line"><span class="lineno"> 207</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot; EDGE CASE : Only contains one element&quot;</span>);</div>
<div class="line"><span class="lineno"> 208</span> </div>
<div class="line"><span class="lineno"> 209</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sublistData = {</div>
<div class="line"><span class="lineno"> 210</span> 6}; <span class="comment">///&lt; Data to make linked list which will be the sublist</span></div>
<div class="line"><span class="lineno"> 211</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> mainlistData = {</div>
<div class="line"><span class="lineno"> 212</span> 2, 5, 6, 7,</div>
<div class="line"><span class="lineno"> 213</span> 8}; <span class="comment">///&lt; Data to make linked list which will be the main list</span></div>
<div class="line"><span class="lineno"> 214</span> </div>
<div class="line"><span class="lineno"> 215</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *sublistLL =</div>
<div class="line"><span class="lineno"> 216</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 217</span> sublistData); <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 218</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *mainlistLL =</div>
<div class="line"><span class="lineno"> 219</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 220</span> mainlistData); <span class="comment">///&lt; Main list in which sublist is to be</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 221</span><span class="comment"> ///&lt; searched</span></div>
<div class="line"><span class="lineno"> 222</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 223</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">exists</a> = <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a>(</div>
<div class="line"><span class="lineno"> 224</span> sublistLL, mainlistLL); <span class="comment">///&lt; boolean, if sublist exist or not</span></div>
<div class="line"><span class="lineno"> 225</span> </div>
<div class="line"><span class="lineno"> 226</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Checking assert expression...&quot;</span>);</div>
<div class="line"><span class="lineno"> 227</span> assert(exists == expectedOutput);</div>
<div class="line"><span class="lineno"> 228</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Assertion check passed!&quot;</span>);</div>
<div class="line"><span class="lineno"> 229</span> </div>
<div class="line"><span class="lineno"> 230</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;[PASS] : TEST CASE 1 PASS!&quot;</span>);</div>
<div class="line"><span class="lineno"> 231</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 232</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 233</span> </div>
<div class="line"><span class="lineno"> 234</span> deleteList(mainlistLL);</div>
<div class="line"><span class="lineno"> 235</span> deleteList(sublistLL);</div>
<div class="line"><span class="lineno"> 236</span> }</div>
<div class="ttc" id="astructsearch_1_1sublist__search_1_1_node_html"><div class="ttname"><a href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a></div><div class="ttdoc">A Node structure representing a single link Node in a linked list.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:47</div></div>
<div class="ttc" id="asublist__search_8cpp_html_a4faee403e2758aaab682ed6622ae218c"><div class="ttname"><a href="../../d5/d45/sublist__search_8cpp.html#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a></div><div class="ttdeci">bool sublistSearch(Node *sublist, Node *mainList)</div><div class="ttdoc">Main searching function.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:114</div></div>
<div class="ttc" id="asublist__search_8cpp_html_a70ca8d0267008e09cfa50b4e2ddfbe53"><div class="ttname"><a href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a></div><div class="ttdeci">Node * makeLinkedList(const std::vector&lt; uint64_t &gt; &amp;data)</div><div class="ttdoc">Give a vector of data, it adds each element of vector in the linked list and return the address of he...</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:73</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 201</span> {</div>
<div class="line"><span class="lineno"> 202</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> expectedOutput = <span class="keyword">true</span>; <span class="comment">///&lt; Expected output of this test</span></div>
<div class="line"><span class="lineno"> 203</span> </div>
<div class="line"><span class="lineno"> 204</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 205</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 206</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;This is test case 1 for sublist search Algorithm : &quot;</span>);</div>
<div class="line"><span class="lineno"> 207</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Description:&quot;</span>);</div>
<div class="line"><span class="lineno"> 208</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot; EDGE CASE : Only contains one element&quot;</span>);</div>
<div class="line"><span class="lineno"> 209</span> </div>
<div class="line"><span class="lineno"> 210</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sublistData = {</div>
<div class="line"><span class="lineno"> 211</span> 6}; <span class="comment">///&lt; Data to make linked list which will be the sublist</span></div>
<div class="line"><span class="lineno"> 212</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> mainlistData = {</div>
<div class="line"><span class="lineno"> 213</span> 2, 5, 6, 7,</div>
<div class="line"><span class="lineno"> 214</span> 8}; <span class="comment">///&lt; Data to make linked list which will be the main list</span></div>
<div class="line"><span class="lineno"> 215</span> </div>
<div class="line"><span class="lineno"> 216</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *sublistLL =</div>
<div class="line"><span class="lineno"> 217</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 218</span> sublistData); <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 219</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *mainlistLL =</div>
<div class="line"><span class="lineno"> 220</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 221</span> mainlistData); <span class="comment">///&lt; Main list in which sublist is to be</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 222</span><span class="comment"> ///&lt; searched</span></div>
<div class="line"><span class="lineno"> 223</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 224</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">exists</a> = <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a>(</div>
<div class="line"><span class="lineno"> 225</span> sublistLL, mainlistLL); <span class="comment">///&lt; boolean, if sublist exist or not</span></div>
<div class="line"><span class="lineno"> 226</span> </div>
<div class="line"><span class="lineno"> 227</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Checking assert expression...&quot;</span>);</div>
<div class="line"><span class="lineno"> 228</span> assert(exists == expectedOutput);</div>
<div class="line"><span class="lineno"> 229</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Assertion check passed!&quot;</span>);</div>
<div class="line"><span class="lineno"> 230</span> </div>
<div class="line"><span class="lineno"> 231</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;[PASS] : TEST CASE 1 PASS!&quot;</span>);</div>
<div class="line"><span class="lineno"> 232</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 233</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 234</span> </div>
<div class="line"><span class="lineno"> 235</span> deleteList(mainlistLL);</div>
<div class="line"><span class="lineno"> 236</span> deleteList(sublistLL);</div>
<div class="line"><span class="lineno"> 237</span> }</div>
<div class="ttc" id="astructsearch_1_1sublist__search_1_1_node_html"><div class="ttname"><a href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a></div><div class="ttdoc">A Node structure representing a single link Node in a linked list.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:48</div></div>
<div class="ttc" id="asublist__search_8cpp_html_a4faee403e2758aaab682ed6622ae218c"><div class="ttname"><a href="../../d5/d45/sublist__search_8cpp.html#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a></div><div class="ttdeci">bool sublistSearch(Node *sublist, Node *mainList)</div><div class="ttdoc">Main searching function.</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:115</div></div>
<div class="ttc" id="asublist__search_8cpp_html_a70ca8d0267008e09cfa50b4e2ddfbe53"><div class="ttname"><a href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a></div><div class="ttdeci">Node * makeLinkedList(const std::vector&lt; uint64_t &gt; &amp;data)</div><div class="ttdoc">Give a vector of data, it adds each element of vector in the linked list and return the address of he...</div><div class="ttdef"><b>Definition</b> sublist_search.cpp:74</div></div>
<div class="ttc" id="aword__break_8cpp_html_a1cc9dd6e6190d10a010fdcdfe7a21a81"><div class="ttname"><a href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">dynamic_programming::word_break::exists</a></div><div class="ttdeci">bool exists(const std::string &amp;str, const std::unordered_set&lt; std::string &gt; &amp;strSet)</div><div class="ttdoc">Function that checks if the string passed in param is present in the the unordered_set passed.</div><div class="ttdef"><b>Definition</b> word_break.cpp:60</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -778,54 +778,54 @@ Here is the call graph for this function:</div>
<p>&lt; Sublist to be searched</p>
<p>&lt; Main list in which sublist is to be searched</p>
<p>&lt; boolean, if sublist exist or not</p>
<div class="fragment"><div class="line"><span class="lineno"> 243</span> {</div>
<div class="line"><span class="lineno"> 244</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> expectedOutput = <span class="keyword">true</span>; <span class="comment">/// Expected output of this test</span></div>
<div class="line"><span class="lineno"> 245</span> </div>
<div class="line"><span class="lineno"> 246</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 247</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 248</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;This is test case 2 for sublist search Algorithm : &quot;</span>);</div>
<div class="line"><span class="lineno"> 249</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Description:&quot;</span>);</div>
<div class="line"><span class="lineno"> 250</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot; contains main list of 100 elements and sublist of 20&quot;</span>);</div>
<div class="line"><span class="lineno"> 251</span> </div>
<div class="line"><span class="lineno"> 252</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sublistData(</div>
<div class="line"><span class="lineno"> 253</span> 20); <span class="comment">///&lt; Data to make linked list which will be the sublist</span></div>
<div class="line"><span class="lineno"> 254</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> mainlistData(</div>
<div class="line"><span class="lineno"> 255</span> 100); <span class="comment">///&lt; Main list in which sublist is to be searched</span></div>
<div class="line"><span class="lineno"> 256</span> </div>
<div class="line"><span class="lineno"> 257</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 100; i++) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 258</span><span class="comment"> /// Inserts 100 elements in main list</span></div>
<div class="line"><span class="lineno"> 259</span><span class="comment"></span> mainlistData[i] = i + 1;</div>
<div class="line"><span class="lineno"> 260</span> }</div>
<div class="line"><span class="lineno"> 261</span> </div>
<div class="line"><span class="lineno"> 262</span> <span class="keywordtype">int</span> temp = 0;</div>
<div class="line"><span class="lineno"> 263</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 45; i &lt; 65; i++) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 264</span><span class="comment"> /// Inserts 20 elements in sublist</span></div>
<div class="line"><span class="lineno"> 265</span><span class="comment"></span> sublistData[temp] = i + 1;</div>
<div class="line"><span class="lineno"> 266</span> temp++;</div>
<div class="line"><span class="lineno"> 267</span> }</div>
<div class="line"><span class="lineno"> 268</span> </div>
<div class="line"><span class="lineno"> 269</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *sublistLL =</div>
<div class="line"><span class="lineno"> 270</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 271</span> sublistData); <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 272</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *mainlistLL =</div>
<div class="line"><span class="lineno"> 273</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 274</span> mainlistData); <span class="comment">///&lt; Main list in which sublist is to be</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 275</span><span class="comment"> ///&lt; searched</span></div>
<div class="line"><span class="lineno"> 276</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 277</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">exists</a> = <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a>(</div>
<div class="line"><span class="lineno"> 278</span> sublistLL, mainlistLL); <span class="comment">///&lt; boolean, if sublist exist or not</span></div>
<div class="line"><span class="lineno"> 279</span> </div>
<div class="line"><span class="lineno"> 280</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Checking assert expression...&quot;</span>);</div>
<div class="line"><span class="lineno"> 281</span> assert(exists == expectedOutput);</div>
<div class="line"><span class="lineno"> 282</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Assertion check passed!&quot;</span>);</div>
<div class="line"><span class="lineno"> 283</span> </div>
<div class="line"><span class="lineno"> 284</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;[PASS] : TEST CASE 2 PASS!&quot;</span>);</div>
<div class="line"><span class="lineno"> 285</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 286</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 287</span> </div>
<div class="line"><span class="lineno"> 288</span> deleteList(mainlistLL);</div>
<div class="line"><span class="lineno"> 289</span> deleteList(sublistLL);</div>
<div class="line"><span class="lineno"> 290</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 244</span> {</div>
<div class="line"><span class="lineno"> 245</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> expectedOutput = <span class="keyword">true</span>; <span class="comment">/// Expected output of this test</span></div>
<div class="line"><span class="lineno"> 246</span> </div>
<div class="line"><span class="lineno"> 247</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 248</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 249</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;This is test case 2 for sublist search Algorithm : &quot;</span>);</div>
<div class="line"><span class="lineno"> 250</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Description:&quot;</span>);</div>
<div class="line"><span class="lineno"> 251</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot; contains main list of 100 elements and sublist of 20&quot;</span>);</div>
<div class="line"><span class="lineno"> 252</span> </div>
<div class="line"><span class="lineno"> 253</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sublistData(</div>
<div class="line"><span class="lineno"> 254</span> 20); <span class="comment">///&lt; Data to make linked list which will be the sublist</span></div>
<div class="line"><span class="lineno"> 255</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> mainlistData(</div>
<div class="line"><span class="lineno"> 256</span> 100); <span class="comment">///&lt; Main list in which sublist is to be searched</span></div>
<div class="line"><span class="lineno"> 257</span> </div>
<div class="line"><span class="lineno"> 258</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 100; i++) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 259</span><span class="comment"> /// Inserts 100 elements in main list</span></div>
<div class="line"><span class="lineno"> 260</span><span class="comment"></span> mainlistData[i] = i + 1;</div>
<div class="line"><span class="lineno"> 261</span> }</div>
<div class="line"><span class="lineno"> 262</span> </div>
<div class="line"><span class="lineno"> 263</span> <span class="keywordtype">int</span> temp = 0;</div>
<div class="line"><span class="lineno"> 264</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 45; i &lt; 65; i++) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 265</span><span class="comment"> /// Inserts 20 elements in sublist</span></div>
<div class="line"><span class="lineno"> 266</span><span class="comment"></span> sublistData[temp] = i + 1;</div>
<div class="line"><span class="lineno"> 267</span> temp++;</div>
<div class="line"><span class="lineno"> 268</span> }</div>
<div class="line"><span class="lineno"> 269</span> </div>
<div class="line"><span class="lineno"> 270</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *sublistLL =</div>
<div class="line"><span class="lineno"> 271</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 272</span> sublistData); <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 273</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *mainlistLL =</div>
<div class="line"><span class="lineno"> 274</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 275</span> mainlistData); <span class="comment">///&lt; Main list in which sublist is to be</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 276</span><span class="comment"> ///&lt; searched</span></div>
<div class="line"><span class="lineno"> 277</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 278</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">exists</a> = <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a>(</div>
<div class="line"><span class="lineno"> 279</span> sublistLL, mainlistLL); <span class="comment">///&lt; boolean, if sublist exist or not</span></div>
<div class="line"><span class="lineno"> 280</span> </div>
<div class="line"><span class="lineno"> 281</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Checking assert expression...&quot;</span>);</div>
<div class="line"><span class="lineno"> 282</span> assert(exists == expectedOutput);</div>
<div class="line"><span class="lineno"> 283</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Assertion check passed!&quot;</span>);</div>
<div class="line"><span class="lineno"> 284</span> </div>
<div class="line"><span class="lineno"> 285</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;[PASS] : TEST CASE 2 PASS!&quot;</span>);</div>
<div class="line"><span class="lineno"> 286</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 287</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 288</span> </div>
<div class="line"><span class="lineno"> 289</span> deleteList(mainlistLL);</div>
<div class="line"><span class="lineno"> 290</span> deleteList(sublistLL);</div>
<div class="line"><span class="lineno"> 291</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -1003,51 +1003,51 @@ Here is the call graph for this function:</div>
<p>&lt; Sublist to be searched</p>
<p>&lt; Main list in which sublist is to be searched</p>
<p>&lt; boolean, if sublist exist or not</p>
<div class="fragment"><div class="line"><span class="lineno"> 297</span> {</div>
<div class="line"><span class="lineno"> 298</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> expectedOutput = <span class="keyword">false</span>; <span class="comment">///&lt; Expected output of this test</span></div>
<div class="line"><span class="lineno"> 299</span> </div>
<div class="line"><span class="lineno"> 300</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 301</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 302</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;This is test case 3 for sublist search Algorithm : &quot;</span>);</div>
<div class="line"><span class="lineno"> 303</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Description:&quot;</span>);</div>
<div class="line"><span class="lineno"> 304</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot; contains main list of 50 elements and sublist of 20&quot;</span>);</div>
<div class="line"><span class="lineno"> 305</span> </div>
<div class="line"><span class="lineno"> 306</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sublistData(20); <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 307</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> mainlistData(</div>
<div class="line"><span class="lineno"> 308</span> 50); <span class="comment">///&lt; Main list in which sublist is to be searched</span></div>
<div class="line"><span class="lineno"> 309</span> </div>
<div class="line"><span class="lineno"> 310</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 50; i++) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 311</span><span class="comment"> /// Inserts 100 elements in main list</span></div>
<div class="line"><span class="lineno"> 312</span><span class="comment"></span> mainlistData.push_back(i + 1);</div>
<div class="line"><span class="lineno"> 313</span> }</div>
<div class="line"><span class="lineno"> 314</span> </div>
<div class="line"><span class="lineno"> 315</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 45; i &lt; 65; i++) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 316</span><span class="comment"> /// Inserts 20 elements in sublist</span></div>
<div class="line"><span class="lineno"> 317</span><span class="comment"></span> sublistData.push_back(i + 1);</div>
<div class="line"><span class="lineno"> 318</span> }</div>
<div class="line"><span class="lineno"> 319</span> </div>
<div class="line"><span class="lineno"> 320</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *sublistLL =</div>
<div class="line"><span class="lineno"> 321</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 322</span> sublistData); <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 323</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *mainlistLL =</div>
<div class="line"><span class="lineno"> 324</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 325</span> mainlistData); <span class="comment">///&lt; Main list in which sublist is to be</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 326</span><span class="comment"> ///&lt; searched</span></div>
<div class="line"><span class="lineno"> 327</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 328</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">exists</a> = <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a>(</div>
<div class="line"><span class="lineno"> 329</span> sublistLL, mainlistLL); <span class="comment">///&lt; boolean, if sublist exist or not</span></div>
<div class="line"><span class="lineno"> 330</span> </div>
<div class="line"><span class="lineno"> 331</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Checking assert expression...&quot;</span>);</div>
<div class="line"><span class="lineno"> 332</span> assert(exists == expectedOutput);</div>
<div class="line"><span class="lineno"> 333</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Assertion check passed!&quot;</span>);</div>
<div class="line"><span class="lineno"> 334</span> </div>
<div class="line"><span class="lineno"> 335</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;[PASS] : TEST CASE 3 PASS!&quot;</span>);</div>
<div class="line"><span class="lineno"> 336</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 337</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 338</span> </div>
<div class="line"><span class="lineno"> 339</span> deleteList(mainlistLL);</div>
<div class="line"><span class="lineno"> 340</span> deleteList(sublistLL);</div>
<div class="line"><span class="lineno"> 341</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 298</span> {</div>
<div class="line"><span class="lineno"> 299</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> expectedOutput = <span class="keyword">false</span>; <span class="comment">///&lt; Expected output of this test</span></div>
<div class="line"><span class="lineno"> 300</span> </div>
<div class="line"><span class="lineno"> 301</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 302</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 303</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;This is test case 3 for sublist search Algorithm : &quot;</span>);</div>
<div class="line"><span class="lineno"> 304</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Description:&quot;</span>);</div>
<div class="line"><span class="lineno"> 305</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot; contains main list of 50 elements and sublist of 20&quot;</span>);</div>
<div class="line"><span class="lineno"> 306</span> </div>
<div class="line"><span class="lineno"> 307</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sublistData(20); <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 308</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> mainlistData(</div>
<div class="line"><span class="lineno"> 309</span> 50); <span class="comment">///&lt; Main list in which sublist is to be searched</span></div>
<div class="line"><span class="lineno"> 310</span> </div>
<div class="line"><span class="lineno"> 311</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 50; i++) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 312</span><span class="comment"> /// Inserts 100 elements in main list</span></div>
<div class="line"><span class="lineno"> 313</span><span class="comment"></span> mainlistData.push_back(i + 1);</div>
<div class="line"><span class="lineno"> 314</span> }</div>
<div class="line"><span class="lineno"> 315</span> </div>
<div class="line"><span class="lineno"> 316</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 45; i &lt; 65; i++) {<span class="comment"></span></div>
<div class="line"><span class="lineno"> 317</span><span class="comment"> /// Inserts 20 elements in sublist</span></div>
<div class="line"><span class="lineno"> 318</span><span class="comment"></span> sublistData.push_back(i + 1);</div>
<div class="line"><span class="lineno"> 319</span> }</div>
<div class="line"><span class="lineno"> 320</span> </div>
<div class="line"><span class="lineno"> 321</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *sublistLL =</div>
<div class="line"><span class="lineno"> 322</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 323</span> sublistData); <span class="comment">///&lt; Sublist to be searched</span></div>
<div class="line"><span class="lineno"> 324</span> <a class="code hl_struct" href="../../da/d61/structsearch_1_1sublist__search_1_1_node.html">search::sublist_search::Node</a> *mainlistLL =</div>
<div class="line"><span class="lineno"> 325</span> <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a70ca8d0267008e09cfa50b4e2ddfbe53">search::sublist_search::makeLinkedList</a>(</div>
<div class="line"><span class="lineno"> 326</span> mainlistData); <span class="comment">///&lt; Main list in which sublist is to be</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 327</span><span class="comment"> ///&lt; searched</span></div>
<div class="line"><span class="lineno"> 328</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 329</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a1cc9dd6e6190d10a010fdcdfe7a21a81">exists</a> = <a class="code hl_function" href="../../d5/d45/sublist__search_8cpp.html#a4faee403e2758aaab682ed6622ae218c">search::sublist_search::sublistSearch</a>(</div>
<div class="line"><span class="lineno"> 330</span> sublistLL, mainlistLL); <span class="comment">///&lt; boolean, if sublist exist or not</span></div>
<div class="line"><span class="lineno"> 331</span> </div>
<div class="line"><span class="lineno"> 332</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Checking assert expression...&quot;</span>);</div>
<div class="line"><span class="lineno"> 333</span> assert(exists == expectedOutput);</div>
<div class="line"><span class="lineno"> 334</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;Assertion check passed!&quot;</span>);</div>
<div class="line"><span class="lineno"> 335</span> </div>
<div class="line"><span class="lineno"> 336</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;[PASS] : TEST CASE 3 PASS!&quot;</span>);</div>
<div class="line"><span class="lineno"> 337</span> <a class="code hl_function" href="#aa3aa3d5bf666f327ee8e2d11d397b06e">log</a>(<span class="stringliteral">&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;</span></div>
<div class="line"><span class="lineno"> 338</span> <span class="stringliteral">&quot;~&quot;</span>);</div>
<div class="line"><span class="lineno"> 339</span> </div>
<div class="line"><span class="lineno"> 340</span> deleteList(mainlistLL);</div>
<div class="line"><span class="lineno"> 341</span> deleteList(sublistLL);</div>
<div class="line"><span class="lineno"> 342</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">

View File

@@ -108,12 +108,12 @@ $(function(){initNavTree('d5/d5f/namespacegeometry.html','../../'); initResizabl
</div><!--header-->
<div class="contents">
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>
<a href="#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> </p>
<div class="textblock"><p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> </p>
<p>Geometry algorithms.</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> for mathematics and datatype conversion for IO operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/stack.html">std::stack</a> </p>
<p>for mathematics and datatype conversion for IO operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/stack.html">std::stack</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->

View File

@@ -372,7 +372,7 @@ Here is the call graph for this function:</div>
<div class="ttc" id="acomplex__numbers_8cpp_html_a5d4d5b8250b50703de888514c8e7a7a0"><div class="ttname"><a href="#a5d4d5b8250b50703de888514c8e7a7a0">get_rand</a></div><div class="ttdeci">double get_rand()</div><div class="ttdoc">Function to get random numbers to generate our complex numbers for test.</div><div class="ttdef"><b>Definition</b> complex_numbers.cpp:201</div></div>
<div class="ttc" id="acomplex_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex</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="afibonacci__sum_8cpp_html_aadb40ac4c74a7efc0680b83eeee138aa"><div class="ttname"><a href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">math::fibonacci_sum::result</a></div><div class="ttdeci">uint64_t result(uint64_t n)</div><div class="ttdef"><b>Definition</b> fibonacci_sum.cpp:76</div></div>
<div class="ttc" id="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:77</div></div>
<div class="ttc" id="aimag_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/complex/imag.html">std::complex::imag</a></div><div class="ttdeci">T imag(T... args)</div></div>
<div class="ttc" id="areal_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/complex/real.html">std::complex::real</a></div><div class="ttdeci">T real(T... args)</div></div>
<div class="ttc" id="asrand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a></div><div class="ttdeci">T srand(T... args)</div></div>

View File

@@ -113,18 +113,19 @@ $(function(){initNavTree('d5/d7a/largest__power_8cpp.html','../../'); initResiza
<p>Algorithm to find largest x such that p^x divides n! (factorial) using Legendre's Formula.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;cassert&gt;</code><br />
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for largest_power.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dc/d7e/largest__power_8cpp__incl.svg" width="172" height="111"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dc/d7e/largest__power_8cpp__incl.svg" width="255" height="111"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html">math</a></td></tr>
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft">&#160;</td><td class="mdescRight">for IO operations <br /></td></tr>
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft">&#160;</td><td class="mdescRight">for assert <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 id="func-members" name="func-members"></a>
@@ -141,8 +142,11 @@ Functions</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Algorithm to find largest x such that p^x divides n! (factorial) using Legendre's Formula. </p>
<p>Given an integer n and a prime number p, the task is to find the largest x such that p^x (p raised to power x) divides n! (factorial). This will be done using Legendre's formula: x = [n/(p^1)] + [n/(p^2)] + [n/(p^3)] + \ldots + 1 </p><dl class="section see"><dt>See also</dt><dd>more on <a href="https://math.stackexchange.com/questions/141196/highest-power-of-a-prime-p-dividing-n">https://math.stackexchange.com/questions/141196/highest-power-of-a-prime-p-dividing-n</a> </dd></dl>
<p>Given an integer n and a prime number p, the task is to find the largest x such that p^x (p raised to power x) divides n! (factorial). This will be done using Legendre's formula: x = [n/(p^1)] + [n/(p^2)] + [n/(p^3)]</p><ul>
<li>\ldots + 1 <dl class="section see"><dt>See also</dt><dd>more on <a href="https://math.stackexchange.com/questions/141196/highest-power-of-a-prime-p-dividing-n">https://math.stackexchange.com/questions/141196/highest-power-of-a-prime-p-dividing-n</a> </dd></dl>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/uday6670" target="_blank">uday6670</a> </dd></dl>
</li>
</ul>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&#160;</a></span>main()</h2>
@@ -161,11 +165,11 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 75</span>{ </div>
<div class="line"><span class="lineno"> 76</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// execute the tests</span></div>
<div class="line"><span class="lineno"> 77</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 78</span>} </div>
<div class="ttc" id="alargest__power_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Function for testing largestPower function. test cases and assert statement.</div><div class="ttdef"><b>Definition</b> largest_power.cpp:47</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 74</span> {</div>
<div class="line"><span class="lineno"> 75</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// execute the tests</span></div>
<div class="line"><span class="lineno"> 76</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 77</span>}</div>
<div class="ttc" id="alargest__power_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Function for testing largestPower function. test cases and assert statement.</div><div class="ttdef"><b>Definition</b> largest_power.cpp:48</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -199,30 +203,30 @@ Here is the call graph for this function:</div>
<p>Function for testing largestPower 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"><span class="lineno"> 48</span>{</div>
<div class="line"><span class="lineno"> 49</span> uint8_t test_case_1 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(5,2);</div>
<div class="line"><span class="lineno"> 50</span> assert(test_case_1==3);</div>
<div class="line"><span class="lineno"> 51</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;<span class="stringliteral">&quot;Test 1 Passed!&quot;</span>&lt;&lt;<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 52</span> </div>
<div class="line"><span class="lineno"> 53</span> uint16_t test_case_2 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(10,3);</div>
<div class="line"><span class="lineno"> 54</span> assert(test_case_2==4);</div>
<div class="line"><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;<span class="stringliteral">&quot;Test 2 Passed!&quot;</span>&lt;&lt;<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 56</span> </div>
<div class="line"><span class="lineno"> 57</span> uint32_t test_case_3 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(25,5);</div>
<div class="line"><span class="lineno"> 58</span> assert(test_case_3==6);</div>
<div class="line"><span class="lineno"> 59</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;<span class="stringliteral">&quot;Test 3 Passed!&quot;</span>&lt;&lt;<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 60</span> </div>
<div class="line"><span class="lineno"> 61</span> uint32_t test_case_4 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(27,2);</div>
<div class="line"><span class="lineno"> 62</span> assert(test_case_4==23);</div>
<div class="line"><span class="lineno"> 63</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;<span class="stringliteral">&quot;Test 4 Passed!&quot;</span>&lt;&lt;<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 64</span> </div>
<div class="line"><span class="lineno"> 65</span> uint16_t test_case_5 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(7,3);</div>
<div class="line"><span class="lineno"> 66</span> assert(test_case_5==2);</div>
<div class="line"><span class="lineno"> 67</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a>&lt;&lt;<span class="stringliteral">&quot;Test 5 Passed!&quot;</span>&lt;&lt;<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 68</span>} </div>
<div class="fragment"><div class="line"><span class="lineno"> 48</span> {</div>
<div class="line"><span class="lineno"> 49</span> uint8_t test_case_1 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(5, 2);</div>
<div class="line"><span class="lineno"> 50</span> assert(test_case_1 == 3);</div>
<div class="line"><span class="lineno"> 51</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 52</span> </div>
<div class="line"><span class="lineno"> 53</span> uint16_t test_case_2 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(10, 3);</div>
<div class="line"><span class="lineno"> 54</span> assert(test_case_2 == 4);</div>
<div class="line"><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; <span class="stringliteral">&quot;Test 2 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 56</span> </div>
<div class="line"><span class="lineno"> 57</span> uint32_t test_case_3 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(25, 5);</div>
<div class="line"><span class="lineno"> 58</span> assert(test_case_3 == 6);</div>
<div class="line"><span class="lineno"> 59</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 60</span> </div>
<div class="line"><span class="lineno"> 61</span> uint32_t test_case_4 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(27, 2);</div>
<div class="line"><span class="lineno"> 62</span> assert(test_case_4 == 23);</div>
<div class="line"><span class="lineno"> 63</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 4 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 64</span> </div>
<div class="line"><span class="lineno"> 65</span> uint16_t test_case_5 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a>(7, 3);</div>
<div class="line"><span class="lineno"> 66</span> assert(test_case_5 == 2);</div>
<div class="line"><span class="lineno"> 67</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 5 Passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 68</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="anamespacemath_html_afa39ec943a4836c878e1614fd89b146f"><div class="ttname"><a href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a></div><div class="ttdeci">uint64_t largestPower(uint32_t n, const uint16_t &amp;p)</div><div class="ttdoc">Function to calculate largest power.</div><div class="ttdef"><b>Definition</b> largest_power.cpp:26</div></div>
<div class="ttc" id="anamespacemath_html_afa39ec943a4836c878e1614fd89b146f"><div class="ttname"><a href="../../dd/d47/namespacemath.html#afa39ec943a4836c878e1614fd89b146f">math::largestPower</a></div><div class="ttdeci">uint64_t largestPower(uint32_t n, const uint16_t &amp;p)</div><div class="ttdoc">Function to calculate largest power.</div><div class="ttdef"><b>Definition</b> largest_power.cpp:29</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">

View File

@@ -115,18 +115,19 @@ $(function(){initNavTree('d5/d83/lcm__sum_8cpp.html','../../'); initResizable(tr
\mathrm{LCM}(2,n) + \ldots + \mathrm{LCM}(n,n)\).
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for lcm_sum.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d1/d52/lcm__sum_8cpp__incl.svg" width="252" height="111"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d1/d52/lcm__sum_8cpp__incl.svg" width="336" height="111"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html">math</a></td></tr>
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft">&#160;</td><td class="mdescRight">for IO operations <br /></td></tr>
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft">&#160;</td><td class="mdescRight">for assert <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 id="func-members" name="func-members"></a>
@@ -166,11 +167,11 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 96</span> {</div>
<div class="line"><span class="lineno"> 97</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// execute the tests</span></div>
<div class="line"><span class="lineno"> 98</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 99</span>}</div>
<div class="ttc" id="alcm__sum_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdef"><b>Definition</b> lcm_sum.cpp:65</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 97</span> {</div>
<div class="line"><span class="lineno"> 98</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// execute the tests</span></div>
<div class="line"><span class="lineno"> 99</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 100</span>}</div>
<div class="ttc" id="alcm__sum_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdef"><b>Definition</b> lcm_sum.cpp:66</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -202,38 +203,38 @@ Here is the call graph for this function:</div>
</table>
</div><div class="memdoc">
<p>Function for testing lcmSum 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"><span class="lineno"> 65</span> {</div>
<div class="line"><span class="lineno"> 66</span> uint64_t n = 2;</div>
<div class="line"><span class="lineno"> 67</span> uint64_t <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a> = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 68</span> assert(<a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a> == 4);</div>
<div class="line"><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;Passed Test 1!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 70</span> </div>
<div class="line"><span class="lineno"> 71</span> n = 5;</div>
<div class="line"><span class="lineno"> 72</span> uint64_t <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a> = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 73</span> assert(<a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a> == 55);</div>
<div class="line"><span class="lineno"> 74</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 Test 2!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 75</span> </div>
<div class="line"><span class="lineno"> 76</span> n = 10;</div>
<div class="line"><span class="lineno"> 77</span> uint64_t <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a> = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 78</span> assert(<a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a> == 320);</div>
<div class="line"><span class="lineno"> 79</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Passed Test 3!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 80</span> </div>
<div class="line"><span class="lineno"> 81</span> n = 11;</div>
<div class="line"><span class="lineno"> 82</span> uint64_t test_4 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 83</span> assert(test_4 == 616);</div>
<div class="line"><span class="lineno"> 84</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Passed Test 4!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 85</span> </div>
<div class="line"><span class="lineno"> 86</span> n = 15;</div>
<div class="line"><span class="lineno"> 87</span> uint64_t test_5 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 88</span> assert(test_5 == 1110);</div>
<div class="line"><span class="lineno"> 89</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Passed Test 5!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 90</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 66</span> {</div>
<div class="line"><span class="lineno"> 67</span> uint64_t n = 2;</div>
<div class="line"><span class="lineno"> 68</span> uint64_t <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a> = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 69</span> assert(<a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a> == 4);</div>
<div class="line"><span class="lineno"> 70</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 Test 1!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 71</span> </div>
<div class="line"><span class="lineno"> 72</span> n = 5;</div>
<div class="line"><span class="lineno"> 73</span> uint64_t <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a> = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 74</span> assert(<a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a> == 55);</div>
<div class="line"><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 Test 2!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 76</span> </div>
<div class="line"><span class="lineno"> 77</span> n = 10;</div>
<div class="line"><span class="lineno"> 78</span> uint64_t <a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a> = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 79</span> assert(<a class="code hl_function" href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a> == 320);</div>
<div class="line"><span class="lineno"> 80</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Passed Test 3!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 81</span> </div>
<div class="line"><span class="lineno"> 82</span> n = 11;</div>
<div class="line"><span class="lineno"> 83</span> uint64_t test_4 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 84</span> assert(test_4 == 616);</div>
<div class="line"><span class="lineno"> 85</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Passed Test 4!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 86</span> </div>
<div class="line"><span class="lineno"> 87</span> n = 15;</div>
<div class="line"><span class="lineno"> 88</span> uint64_t test_5 = <a class="code hl_function" href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a>(n);</div>
<div class="line"><span class="lineno"> 89</span> assert(test_5 == 1110);</div>
<div class="line"><span class="lineno"> 90</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Passed Test 5!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 91</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="aheavy__light__decomposition_8cpp_html_a34b8683a2b429de5cce57e6d733ec817"><div class="ttname"><a href="../../d2/de9/heavy__light__decomposition_8cpp.html#a34b8683a2b429de5cce57e6d733ec817">test_1</a></div><div class="ttdeci">static void test_1()</div><div class="ttdef"><b>Definition</b> heavy_light_decomposition.cpp:505</div></div>
<div class="ttc" id="aheavy__light__decomposition_8cpp_html_a458410412185a5f09199deaff7157a8d"><div class="ttname"><a href="../../d2/de9/heavy__light__decomposition_8cpp.html#a458410412185a5f09199deaff7157a8d">test_2</a></div><div class="ttdeci">static void test_2()</div><div class="ttdef"><b>Definition</b> heavy_light_decomposition.cpp:549</div></div>
<div class="ttc" id="aheavy__light__decomposition_8cpp_html_af31ec5409537703d9c8a47350386b32a"><div class="ttname"><a href="../../d2/de9/heavy__light__decomposition_8cpp.html#af31ec5409537703d9c8a47350386b32a">test_3</a></div><div class="ttdeci">static void test_3()</div><div class="ttdef"><b>Definition</b> heavy_light_decomposition.cpp:592</div></div>
<div class="ttc" id="anamespacemath_html_a04065193d190d605e1f0d0d93a87e244"><div class="ttname"><a href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a></div><div class="ttdeci">uint64_t lcmSum(const uint16_t &amp;num)</div><div class="ttdef"><b>Definition</b> lcm_sum.cpp:29</div></div>
<div class="ttc" id="anamespacemath_html_a04065193d190d605e1f0d0d93a87e244"><div class="ttname"><a href="../../dd/d47/namespacemath.html#a04065193d190d605e1f0d0d93a87e244">math::lcmSum</a></div><div class="ttdeci">uint64_t lcmSum(const uint16_t &amp;num)</div><div class="ttdef"><b>Definition</b> lcm_sum.cpp:30</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">

View File

@@ -193,10 +193,12 @@ Functions</h2></td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>for working with vectors </p>
<p>for io operations</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a></p>
<p>for returning multiple values form a function at once</p>
<p>header files</p>
<p>Sorting Algorithms.</p>
<p>for std::assert</p>
<p>for using <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>for assert</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>Sorting algorithms.</p>
<p>for algorithm functions for assert for IO operations</p>
@@ -204,23 +206,23 @@ Functions</h2></td></tr>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for assert for IO implementations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">std::vector::push_back</a>, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></p>
<p>for assert for typedef datatype uint64_t for IO operations</p>
<p>Sorting algorithms</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> for assert for io operations</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> for io operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>Sorting algorithms</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> and io operations</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> and io operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>@breif Sorting algorithms</p>
<p>Sorting algorithms</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for assert function in testing for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> and <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></p>
<p>Contains sorting algorithms</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for std::assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a> for IO operations</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a> for IO operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>Sorting algorithms</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/stack.html">std::stack</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for assert</p>
<p>header files for collection of functions for a macro called assert which can be used to verify assumptions for io operations</p>
<p>for collection of functions for a macro called assert which can be used to verify assumptions for io operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>Sorting algorithms</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted()</a>, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap()</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a> for assert for initializing random number generator for IO operations</p>
<p>Sorting algorithms</p>
<p>for assert for IO operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a> for IO operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>Sorting algorithms</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for std::assert for IO operations</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for IO operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a> for assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> and io operations</p>
<p>Sorting algorithms</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> for assert for IO operations</p>
@@ -1193,22 +1195,22 @@ template&lt;typename T &gt; </div>
<p>&lt; base case; when size of the array is 1</p>
<p>&lt; iterating over the entire array</p>
<p>&lt; if a larger number appears before the smaller one, swap them.</p>
<div class="fragment"><div class="line"><span class="lineno"> 74</span> {</div>
<div class="line"><span class="lineno"> 75</span> <span class="keywordflow">if</span> (n == 1) { <span class="comment">//!&lt; base case; when size of the array is 1</span></div>
<div class="line"><span class="lineno"> 76</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 77</span> }</div>
<div class="line"><span class="lineno"> 78</span> </div>
<div class="line"><span class="lineno"> 79</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; n - 1; i++) { <span class="comment">//!&lt; iterating over the entire array</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 80</span><span class="comment"> //!&lt; if a larger number appears before the smaller one, swap them.</span></div>
<div class="line"><span class="lineno"> 81</span><span class="comment"></span> <span class="keywordflow">if</span> ((*nums)[i] &gt; (*nums)[i + 1]) {</div>
<div class="line"><span class="lineno"> 82</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>((*nums)[i], (*nums)[i + 1]);</div>
<div class="line"><span class="lineno"> 83</span> }</div>
<div class="line"><span class="lineno"> 84</span> }</div>
<div class="line"><span class="lineno"> 85</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 86</span><span class="comment"> //!&lt; calling the function after we have fixed the last element</span></div>
<div class="line"><span class="lineno"> 87</span><span class="comment"></span> <a class="code hl_function" href="#ae3a775d99dbbb94c130a973df0cfddcf">recursive_bubble_sort</a>(nums, n - 1);</div>
<div class="line"><span class="lineno"> 88</span>}</div>
<div class="ttc" id="anamespacesorting_html_ae3a775d99dbbb94c130a973df0cfddcf"><div class="ttname"><a href="#ae3a775d99dbbb94c130a973df0cfddcf">sorting::recursive_bubble_sort</a></div><div class="ttdeci">void recursive_bubble_sort(std::vector&lt; T &gt; *nums, uint64_t n)</div><div class="ttdoc">This is an implementation of the recursive_bubble_sort. A vector is passed to the function which is t...</div><div class="ttdef"><b>Definition</b> recursive_bubble_sort.cpp:74</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 84</span> {</div>
<div class="line"><span class="lineno"> 85</span> <span class="keywordflow">if</span> (n == 1) { <span class="comment">//!&lt; base case; when size of the array is 1</span></div>
<div class="line"><span class="lineno"> 86</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 87</span> }</div>
<div class="line"><span class="lineno"> 88</span> </div>
<div class="line"><span class="lineno"> 89</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; n - 1; i++) { <span class="comment">//!&lt; iterating over the entire array</span><span class="comment"></span></div>
<div class="line"><span class="lineno"> 90</span><span class="comment"> //!&lt; if a larger number appears before the smaller one, swap them.</span></div>
<div class="line"><span class="lineno"> 91</span><span class="comment"></span> <span class="keywordflow">if</span> ((*nums)[i] &gt; (*nums)[i + 1]) {</div>
<div class="line"><span class="lineno"> 92</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>((*nums)[i], (*nums)[i + 1]);</div>
<div class="line"><span class="lineno"> 93</span> }</div>
<div class="line"><span class="lineno"> 94</span> }</div>
<div class="line"><span class="lineno"> 95</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 96</span><span class="comment"> //!&lt; calling the function after we have fixed the last element</span></div>
<div class="line"><span class="lineno"> 97</span><span class="comment"></span> <a class="code hl_function" href="#ae3a775d99dbbb94c130a973df0cfddcf">recursive_bubble_sort</a>(nums, n - 1);</div>
<div class="line"><span class="lineno"> 98</span>}</div>
<div class="ttc" id="anamespacesorting_html_ae3a775d99dbbb94c130a973df0cfddcf"><div class="ttname"><a href="#ae3a775d99dbbb94c130a973df0cfddcf">sorting::recursive_bubble_sort</a></div><div class="ttdeci">void recursive_bubble_sort(std::vector&lt; T &gt; *nums, uint64_t n)</div><div class="ttdoc">This is an implementation of the recursive_bubble_sort. A vector is passed to the function which is t...</div><div class="ttdef"><b>Definition</b> recursive_bubble_sort.cpp:84</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -1235,27 +1237,27 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><span class="lineno"> 48</span> {</div>
<div class="line"><span class="lineno"> 49</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> array(</div>
<div class="line"><span class="lineno"> 50</span> arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(),</div>
<div class="line"><span class="lineno"> 51</span> arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>()); <span class="comment">// declare a vector in which result will be stored</span></div>
<div class="line"><span class="lineno"> 52</span> <span class="keywordflow">for</span> (uint64_t it = 0; it &lt; len; ++it) {</div>
<div class="line"><span class="lineno"> 53</span> uint64_t min = it; <span class="comment">// set min value</span></div>
<div class="line"><span class="lineno"> 54</span> <span class="keywordflow">for</span> (uint64_t it2 = it + 1; it2 &lt; len; ++it2) {</div>
<div class="line"><span class="lineno"> 55</span> <span class="keywordflow">if</span> (array[it2] &lt; array[min]) { <span class="comment">// check which element is smaller</span></div>
<div class="line"><span class="lineno"> 56</span> min = it2; <span class="comment">// store index of smallest element to min</span></div>
<div class="line"><span class="lineno"> 57</span> }</div>
<div class="line"><span class="lineno"> 58</span> }</div>
<div class="line"><span class="lineno"> 59</span> </div>
<div class="line"><span class="lineno"> 60</span> <span class="keywordflow">if</span> (min != it) { <span class="comment">// swap if min does not match to i</span></div>
<div class="line"><span class="lineno"> 61</span> uint64_t tmp = array[<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a>];</div>
<div class="line"><span class="lineno"> 62</span> array[<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a>] = array[it];</div>
<div class="line"><span class="lineno"> 63</span> array[it] = tmp;</div>
<div class="line"><span class="lineno"> 64</span> }</div>
<div class="line"><span class="lineno"> 65</span> }</div>
<div class="line"><span class="lineno"> 66</span> </div>
<div class="line"><span class="lineno"> 67</span> <span class="keywordflow">return</span> array; <span class="comment">// return sorted vector</span></div>
<div class="line"><span class="lineno"> 68</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 49</span> {</div>
<div class="line"><span class="lineno"> 50</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> array(</div>
<div class="line"><span class="lineno"> 51</span> arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(),</div>
<div class="line"><span class="lineno"> 52</span> arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>()); <span class="comment">// declare a vector in which result will be stored</span></div>
<div class="line"><span class="lineno"> 53</span> <span class="keywordflow">for</span> (uint64_t it = 0; it &lt; len; ++it) {</div>
<div class="line"><span class="lineno"> 54</span> uint64_t min = it; <span class="comment">// set min value</span></div>
<div class="line"><span class="lineno"> 55</span> <span class="keywordflow">for</span> (uint64_t it2 = it + 1; it2 &lt; len; ++it2) {</div>
<div class="line"><span class="lineno"> 56</span> <span class="keywordflow">if</span> (array[it2] &lt; array[min]) { <span class="comment">// check which element is smaller</span></div>
<div class="line"><span class="lineno"> 57</span> min = it2; <span class="comment">// store index of smallest element to min</span></div>
<div class="line"><span class="lineno"> 58</span> }</div>
<div class="line"><span class="lineno"> 59</span> }</div>
<div class="line"><span class="lineno"> 60</span> </div>
<div class="line"><span class="lineno"> 61</span> <span class="keywordflow">if</span> (min != it) { <span class="comment">// swap if min does not match to i</span></div>
<div class="line"><span class="lineno"> 62</span> uint64_t tmp = array[<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a>];</div>
<div class="line"><span class="lineno"> 63</span> array[<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">min</a>] = array[it];</div>
<div class="line"><span class="lineno"> 64</span> array[it] = tmp;</div>
<div class="line"><span class="lineno"> 65</span> }</div>
<div class="line"><span class="lineno"> 66</span> }</div>
<div class="line"><span class="lineno"> 67</span> </div>
<div class="line"><span class="lineno"> 68</span> <span class="keywordflow">return</span> array; <span class="comment">// return sorted vector</span></div>
<div class="line"><span class="lineno"> 69</span>}</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 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 -->

View File

@@ -1,9 +1,11 @@
<map id="math/n_bonacci.cpp" name="math/n_bonacci.cpp">
<area shape="rect" id="Node000001" title="Implementation of the N&#45;bonacci series." alt="" coords="60,5,199,31"/>
<area shape="rect" id="Node000001" title="Implementation of the N&#45;bonacci series." alt="" coords="99,5,237,31"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="5,79,70,105"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="116,34,66,72,63,67,112,29"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="94,79,165,105"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="132,31,132,63,127,63,127,31"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="189,79,246,105"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="146,29,193,67,189,71,143,34"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="147,34,74,74,71,69,145,29"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="94,79,154,105"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="163,33,142,67,137,64,159,30"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="178,79,249,105"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="178,30,200,64,196,67,173,33"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="273,79,330,105"/>
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="192,29,267,69,264,74,190,34"/>
</map>

View File

@@ -1 +1 @@
f95b75adf32770a96552e31efab5dfe0
aec52c69ab37f528c36ddb8c30b99164

View File

@@ -4,8 +4,8 @@
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
-->
<!-- Title: math/n_bonacci.cpp Pages: 1 -->
<svg width="189pt" height="83pt"
viewBox="0.00 0.00 188.62 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="252pt" height="83pt"
viewBox="0.00 0.00 251.62 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
@@ -23,8 +23,8 @@
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Implementation of the N&#45;bonacci series.">
<polygon fill="#999999" stroke="#666666" points="145,-74.5 41.25,-74.5 41.25,-55.25 145,-55.25 145,-74.5"/>
<text text-anchor="middle" x="93.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/n_bonacci.cpp</text>
<polygon fill="#999999" stroke="#666666" points="174,-74.5 70.25,-74.5 70.25,-55.25 174,-55.25 174,-74.5"/>
<text text-anchor="middle" x="122.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/n_bonacci.cpp</text>
</a>
</g>
</g>
@@ -41,8 +41,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M81.42,-54.84C71.35,-47.07 56.58,-35.67 44.56,-26.4"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="46.91,-23.79 36.86,-20.45 42.63,-29.33 46.91,-23.79"/>
<path fill="none" stroke="#63b8ff" d="M105.5,-54.84C90.44,-46.66 67.98,-34.46 50.47,-24.94"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="52.62,-22.12 42.16,-20.43 49.28,-28.27 52.62,-22.12"/>
</a>
</g>
</g>
@@ -50,8 +50,8 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="119.88,-19.25 66.38,-19.25 66.38,0 119.88,0 119.88,-19.25"/>
<text text-anchor="middle" x="93.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="111.75,-19.25 66.5,-19.25 66.5,0 111.75,0 111.75,-19.25"/>
<text text-anchor="middle" x="89.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cstdint</text>
</a>
</g>
</g>
@@ -59,8 +59,8 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M93.12,-55.08C93.12,-48.57 93.12,-39.42 93.12,-31.12"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="96.63,-31.12 93.13,-21.12 89.63,-31.12 96.63,-31.12"/>
<path fill="none" stroke="#63b8ff" d="M116.68,-55.08C112.35,-48.11 106.16,-38.12 100.74,-29.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="103.73,-27.55 95.49,-20.9 97.78,-31.24 103.73,-27.55"/>
</a>
</g>
</g>
@@ -68,8 +68,8 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="180.62,-19.25 137.62,-19.25 137.62,0 180.62,0 180.62,-19.25"/>
<text text-anchor="middle" x="159.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
<polygon fill="#e0e0e0" stroke="#999999" points="182.88,-19.25 129.38,-19.25 129.38,0 182.88,0 182.88,-19.25"/>
<text text-anchor="middle" x="156.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
@@ -77,8 +77,26 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M104.32,-54.84C113.86,-47.15 127.8,-35.9 139.23,-26.68"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="141.33,-29.48 146.92,-20.48 136.94,-24.03 141.33,-29.48"/>
<path fill="none" stroke="#63b8ff" d="M127.74,-55.08C132.24,-48.03 138.71,-37.9 144.34,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="147.14,-31.2 149.57,-20.88 141.24,-27.43 147.14,-31.2"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="243.62,-19.25 200.62,-19.25 200.62,0 243.62,0 243.62,-19.25"/>
<text text-anchor="middle" x="222.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M139.09,-54.84C154.39,-46.69 177.16,-34.57 194.99,-25.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="196.56,-28.2 203.74,-20.41 193.27,-22.02 196.56,-28.2"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -4,16 +4,16 @@
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
-->
<!-- Title: math/n_bonacci.cpp Pages: 1 -->
<svg width="189pt" height="83pt"
viewBox="0.00 0.00 188.62 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="252pt" height="83pt"
viewBox="0.00 0.00 251.62 82.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 78.5)">
<title>math/n_bonacci.cpp</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Implementation of the N&#45;bonacci series.">
<polygon fill="#999999" stroke="#666666" points="145,-74.5 41.25,-74.5 41.25,-55.25 145,-55.25 145,-74.5"/>
<text text-anchor="middle" x="93.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/n_bonacci.cpp</text>
<polygon fill="#999999" stroke="#666666" points="174,-74.5 70.25,-74.5 70.25,-55.25 174,-55.25 174,-74.5"/>
<text text-anchor="middle" x="122.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/n_bonacci.cpp</text>
</a>
</g>
</g>
@@ -30,8 +30,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M81.42,-54.84C71.35,-47.07 56.58,-35.67 44.56,-26.4"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="46.91,-23.79 36.86,-20.45 42.63,-29.33 46.91,-23.79"/>
<path fill="none" stroke="#63b8ff" d="M105.5,-54.84C90.44,-46.66 67.98,-34.46 50.47,-24.94"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="52.62,-22.12 42.16,-20.43 49.28,-28.27 52.62,-22.12"/>
</a>
</g>
</g>
@@ -39,8 +39,8 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="119.88,-19.25 66.38,-19.25 66.38,0 119.88,0 119.88,-19.25"/>
<text text-anchor="middle" x="93.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="111.75,-19.25 66.5,-19.25 66.5,0 111.75,0 111.75,-19.25"/>
<text text-anchor="middle" x="89.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cstdint</text>
</a>
</g>
</g>
@@ -48,8 +48,8 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M93.12,-55.08C93.12,-48.57 93.12,-39.42 93.12,-31.12"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="96.63,-31.12 93.13,-21.12 89.63,-31.12 96.63,-31.12"/>
<path fill="none" stroke="#63b8ff" d="M116.68,-55.08C112.35,-48.11 106.16,-38.12 100.74,-29.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="103.73,-27.55 95.49,-20.9 97.78,-31.24 103.73,-27.55"/>
</a>
</g>
</g>
@@ -57,8 +57,8 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="180.62,-19.25 137.62,-19.25 137.62,0 180.62,0 180.62,-19.25"/>
<text text-anchor="middle" x="159.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
<polygon fill="#e0e0e0" stroke="#999999" points="182.88,-19.25 129.38,-19.25 129.38,0 182.88,0 182.88,-19.25"/>
<text text-anchor="middle" x="156.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
@@ -66,8 +66,26 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M104.32,-54.84C113.86,-47.15 127.8,-35.9 139.23,-26.68"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="141.33,-29.48 146.92,-20.48 136.94,-24.03 141.33,-29.48"/>
<path fill="none" stroke="#63b8ff" d="M127.74,-55.08C132.24,-48.03 138.71,-37.9 144.34,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="147.14,-31.2 149.57,-20.88 141.24,-27.43 147.14,-31.2"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="243.62,-19.25 200.62,-19.25 200.62,0 243.62,0 243.62,-19.25"/>
<text text-anchor="middle" x="222.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M139.09,-54.84C154.39,-46.69 177.16,-34.57 194.99,-25.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="196.56,-28.2 203.74,-20.41 193.27,-22.02 196.56,-28.2"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -214,13 +214,13 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>treapCnt</b> = 0</td><
</div><div class="memdoc">
<p>Initialization. </p>
<div class="fragment"><div class="line"><span class="lineno"> 54</span> : <a class="code hl_variable" href="#a1ab082fe0aa95a238bbbc68ab6a72425">treapCnt</a>(1) {</div>
<div class="line"><span class="lineno"> 55</span> <a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[0] = INT32_MAX;</div>
<div class="line"><span class="lineno"> 56</span> <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[0] = 0;</div>
<div class="line"><span class="lineno"> 57</span> }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a1ab082fe0aa95a238bbbc68ab6a72425"><div class="ttname"><a href="#a1ab082fe0aa95a238bbbc68ab6a72425">data_structures::treap::Treap::treapCnt</a></div><div class="ttdeci">int treapCnt</div><div class="ttdoc">Total number of current nodes in the treap.</div><div class="ttdef"><b>Definition</b> treap.cpp:41</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a8be70f0a25e53e870e97d8d23968d723"><div class="ttname"><a href="#a8be70f0a25e53e870e97d8d23968d723">data_structures::treap::Treap::priority</a></div><div class="ttdeci">std::array&lt; int, maxNode &gt; priority</div><div class="ttdoc">Random priority.</div><div class="ttdef"><b>Definition</b> treap.cpp:43</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_af5f0b8263339485989f8a02ae026114c"><div class="ttname"><a href="#af5f0b8263339485989f8a02ae026114c">data_structures::treap::Treap::size</a></div><div class="ttdeci">std::array&lt; int, maxNode &gt; size</div><div class="ttdoc">The number of copies per node.</div><div class="ttdef"><b>Definition</b> treap.cpp:50</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 55</span> : <a class="code hl_variable" href="#a1ab082fe0aa95a238bbbc68ab6a72425">treapCnt</a>(1) {</div>
<div class="line"><span class="lineno"> 56</span> <a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[0] = INT32_MAX;</div>
<div class="line"><span class="lineno"> 57</span> <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[0] = 0;</div>
<div class="line"><span class="lineno"> 58</span> }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a1ab082fe0aa95a238bbbc68ab6a72425"><div class="ttname"><a href="#a1ab082fe0aa95a238bbbc68ab6a72425">data_structures::treap::Treap::treapCnt</a></div><div class="ttdeci">int treapCnt</div><div class="ttdoc">Total number of current nodes in the treap.</div><div class="ttdef"><b>Definition</b> treap.cpp:42</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a8be70f0a25e53e870e97d8d23968d723"><div class="ttname"><a href="#a8be70f0a25e53e870e97d8d23968d723">data_structures::treap::Treap::priority</a></div><div class="ttdeci">std::array&lt; int, maxNode &gt; priority</div><div class="ttdoc">Random priority.</div><div class="ttdef"><b>Definition</b> treap.cpp:44</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_af5f0b8263339485989f8a02ae026114c"><div class="ttname"><a href="#af5f0b8263339485989f8a02ae026114c">data_structures::treap::Treap::size</a></div><div class="ttdeci">std::array&lt; int, maxNode &gt; size</div><div class="ttdoc">The number of copies per node.</div><div class="ttdef"><b>Definition</b> treap.cpp:51</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -260,33 +260,33 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>treapCnt</b> = 0</td><
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 111</span> {</div>
<div class="line"><span class="lineno"> 112</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] == k) {</div>
<div class="line"><span class="lineno"> 113</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x] &gt; 1) {</div>
<div class="line"><span class="lineno"> 114</span> <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x]--;</div>
<div class="line"><span class="lineno"> 115</span> } <span class="comment">// If the node has more than one copy, the number of copies --</span></div>
<div class="line"><span class="lineno"> 116</span> <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 117</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0] == 0 &amp;&amp; <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1] == 0) {</div>
<div class="line"><span class="lineno"> 118</span> x = 0;</div>
<div class="line"><span class="lineno"> 119</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 120</span> } <span class="comment">// If there are no children, delete and return</span></div>
<div class="line"><span class="lineno"> 121</span> <span class="comment">// Otherwise, we need to rotate the sons and delete them</span></div>
<div class="line"><span class="lineno"> 122</span> <span class="comment">// recursively</span></div>
<div class="line"><span class="lineno"> 123</span> <span class="keywordtype">int</span> t = (<a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] &gt; <a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1]]);</div>
<div class="line"><span class="lineno"> 124</span> <a class="code hl_function" href="#a75a48584a6560de20484fbba6229fd29">rotate</a>(x, t);</div>
<div class="line"><span class="lineno"> 125</span> <a class="code hl_function" href="#aeb4bb0db68c7c04ef9498c88c3777887">_erase</a>(x, k);</div>
<div class="line"><span class="lineno"> 126</span> }</div>
<div class="line"><span class="lineno"> 127</span> } <span class="keywordflow">else</span> { <span class="comment">// Find the target value based on BST properties</span></div>
<div class="line"><span class="lineno"> 128</span> <a class="code hl_function" href="#aeb4bb0db68c7c04ef9498c88c3777887">_erase</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] &lt; k], k);</div>
<div class="line"><span class="lineno"> 129</span> }</div>
<div class="line"><span class="lineno"> 130</span> <a class="code hl_function" href="#aae9facaede462ad924856c4d707646d7">update</a>(x);</div>
<div class="line"><span class="lineno"> 131</span> }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a32db3ba3b2630943faacd27b2ecd1b04"><div class="ttname"><a href="#a32db3ba3b2630943faacd27b2ecd1b04">data_structures::treap::Treap::key</a></div><div class="ttdeci">std::array&lt; int, maxNode &gt; key</div><div class="ttdoc">Node identifier.</div><div class="ttdef"><b>Definition</b> treap.cpp:42</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a75a48584a6560de20484fbba6229fd29"><div class="ttname"><a href="#a75a48584a6560de20484fbba6229fd29">data_structures::treap::Treap::rotate</a></div><div class="ttdeci">void rotate(int &amp;x, int t)</div><div class="ttdoc">Rotate without breaking the property of BST.</div><div class="ttdef"><b>Definition</b> treap.cpp:70</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_aae9facaede462ad924856c4d707646d7"><div class="ttname"><a href="#aae9facaede462ad924856c4d707646d7">data_structures::treap::Treap::update</a></div><div class="ttdeci">void update(int x)</div><div class="ttdoc">Update the subtree size of the node.</div><div class="ttdef"><b>Definition</b> treap.cpp:62</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_ab99f68b79e1c4ff0f1cd6f2f0b6a545f"><div class="ttname"><a href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">data_structures::treap::Treap::childs</a></div><div class="ttdeci">std::array&lt; std::array&lt; int, 2 &gt;, maxNode &gt; childs</div><div class="ttdef"><b>Definition</b> treap.cpp:44</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_aeb4bb0db68c7c04ef9498c88c3777887"><div class="ttname"><a href="#aeb4bb0db68c7c04ef9498c88c3777887">data_structures::treap::Treap::_erase</a></div><div class="ttdeci">void _erase(int &amp;x, int k)</div><div class="ttdoc">Erase a value from the specified subtree (internal method)</div><div class="ttdef"><b>Definition</b> treap.cpp:111</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_af7e6c6620ab32bc96633d101245fa919"><div class="ttname"><a href="#af7e6c6620ab32bc96633d101245fa919">data_structures::treap::Treap::cnt</a></div><div class="ttdeci">std::array&lt; int, maxNode &gt; cnt</div><div class="ttdoc">Maintains the subtree size for ranking query.</div><div class="ttdef"><b>Definition</b> treap.cpp:48</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 112</span> {</div>
<div class="line"><span class="lineno"> 113</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] == k) {</div>
<div class="line"><span class="lineno"> 114</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x] &gt; 1) {</div>
<div class="line"><span class="lineno"> 115</span> <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x]--;</div>
<div class="line"><span class="lineno"> 116</span> } <span class="comment">// If the node has more than one copy, the number of copies --</span></div>
<div class="line"><span class="lineno"> 117</span> <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 118</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0] == 0 &amp;&amp; <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1] == 0) {</div>
<div class="line"><span class="lineno"> 119</span> x = 0;</div>
<div class="line"><span class="lineno"> 120</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 121</span> } <span class="comment">// If there are no children, delete and return</span></div>
<div class="line"><span class="lineno"> 122</span> <span class="comment">// Otherwise, we need to rotate the sons and delete them</span></div>
<div class="line"><span class="lineno"> 123</span> <span class="comment">// recursively</span></div>
<div class="line"><span class="lineno"> 124</span> <span class="keywordtype">int</span> t = (<a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] &gt; <a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1]]);</div>
<div class="line"><span class="lineno"> 125</span> <a class="code hl_function" href="#a75a48584a6560de20484fbba6229fd29">rotate</a>(x, t);</div>
<div class="line"><span class="lineno"> 126</span> <a class="code hl_function" href="#aeb4bb0db68c7c04ef9498c88c3777887">_erase</a>(x, k);</div>
<div class="line"><span class="lineno"> 127</span> }</div>
<div class="line"><span class="lineno"> 128</span> } <span class="keywordflow">else</span> { <span class="comment">// Find the target value based on BST properties</span></div>
<div class="line"><span class="lineno"> 129</span> <a class="code hl_function" href="#aeb4bb0db68c7c04ef9498c88c3777887">_erase</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] &lt; k], k);</div>
<div class="line"><span class="lineno"> 130</span> }</div>
<div class="line"><span class="lineno"> 131</span> <a class="code hl_function" href="#aae9facaede462ad924856c4d707646d7">update</a>(x);</div>
<div class="line"><span class="lineno"> 132</span> }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a32db3ba3b2630943faacd27b2ecd1b04"><div class="ttname"><a href="#a32db3ba3b2630943faacd27b2ecd1b04">data_structures::treap::Treap::key</a></div><div class="ttdeci">std::array&lt; int, maxNode &gt; key</div><div class="ttdoc">Node identifier.</div><div class="ttdef"><b>Definition</b> treap.cpp:43</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a75a48584a6560de20484fbba6229fd29"><div class="ttname"><a href="#a75a48584a6560de20484fbba6229fd29">data_structures::treap::Treap::rotate</a></div><div class="ttdeci">void rotate(int &amp;x, int t)</div><div class="ttdoc">Rotate without breaking the property of BST.</div><div class="ttdef"><b>Definition</b> treap.cpp:71</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_aae9facaede462ad924856c4d707646d7"><div class="ttname"><a href="#aae9facaede462ad924856c4d707646d7">data_structures::treap::Treap::update</a></div><div class="ttdeci">void update(int x)</div><div class="ttdoc">Update the subtree size of the node.</div><div class="ttdef"><b>Definition</b> treap.cpp:63</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_ab99f68b79e1c4ff0f1cd6f2f0b6a545f"><div class="ttname"><a href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">data_structures::treap::Treap::childs</a></div><div class="ttdeci">std::array&lt; std::array&lt; int, 2 &gt;, maxNode &gt; childs</div><div class="ttdef"><b>Definition</b> treap.cpp:45</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_aeb4bb0db68c7c04ef9498c88c3777887"><div class="ttname"><a href="#aeb4bb0db68c7c04ef9498c88c3777887">data_structures::treap::Treap::_erase</a></div><div class="ttdeci">void _erase(int &amp;x, int k)</div><div class="ttdoc">Erase a value from the specified subtree (internal method)</div><div class="ttdef"><b>Definition</b> treap.cpp:112</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_af7e6c6620ab32bc96633d101245fa919"><div class="ttname"><a href="#af7e6c6620ab32bc96633d101245fa919">data_structures::treap::Treap::cnt</a></div><div class="ttdeci">std::array&lt; int, maxNode &gt; cnt</div><div class="ttdoc">Maintains the subtree size for ranking query.</div><div class="ttdef"><b>Definition</b> treap.cpp:49</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -331,18 +331,18 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The element ranked number k </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 138</span> {</div>
<div class="line"><span class="lineno"> 139</span> <span class="keywordflow">if</span> (k &lt;= <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]]) {</div>
<div class="line"><span class="lineno"> 140</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#ad08520c0617eb8dcfcbfa90d258aa6b2">_get_k_th</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0], k);</div>
<div class="line"><span class="lineno"> 141</span> }</div>
<div class="line"><span class="lineno"> 142</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a> -= <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] + <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x];</div>
<div class="line"><span class="lineno"> 143</span> <span class="keywordflow">if</span> (k &lt;= 0) {</div>
<div class="line"><span class="lineno"> 144</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x];</div>
<div class="line"><span class="lineno"> 145</span> }</div>
<div class="line"><span class="lineno"> 146</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#ad08520c0617eb8dcfcbfa90d258aa6b2">_get_k_th</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1], k);</div>
<div class="line"><span class="lineno"> 147</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 139</span> {</div>
<div class="line"><span class="lineno"> 140</span> <span class="keywordflow">if</span> (k &lt;= <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]]) {</div>
<div class="line"><span class="lineno"> 141</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#ad08520c0617eb8dcfcbfa90d258aa6b2">_get_k_th</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0], k);</div>
<div class="line"><span class="lineno"> 142</span> }</div>
<div class="line"><span class="lineno"> 143</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a> -= <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] + <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x];</div>
<div class="line"><span class="lineno"> 144</span> <span class="keywordflow">if</span> (k &lt;= 0) {</div>
<div class="line"><span class="lineno"> 145</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x];</div>
<div class="line"><span class="lineno"> 146</span> }</div>
<div class="line"><span class="lineno"> 147</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#ad08520c0617eb8dcfcbfa90d258aa6b2">_get_k_th</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1], k);</div>
<div class="line"><span class="lineno"> 148</span> }</div>
<div class="ttc" id="acomposite__simpson__rule_8cpp_html_a1b74d828b33760094906797042b89442"><div class="ttname"><a href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">numerical_methods::simpson_method::k</a></div><div class="ttdeci">double k(double x)</div><div class="ttdoc">Another test function.</div><div class="ttdef"><b>Definition</b> composite_simpson_rule.cpp:117</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_ad08520c0617eb8dcfcbfa90d258aa6b2"><div class="ttname"><a href="#ad08520c0617eb8dcfcbfa90d258aa6b2">data_structures::treap::Treap::_get_k_th</a></div><div class="ttdeci">int _get_k_th(int &amp;x, int k)</div><div class="ttdoc">Find the KTH largest value (internal method)</div><div class="ttdef"><b>Definition</b> treap.cpp:138</div></div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_ad08520c0617eb8dcfcbfa90d258aa6b2"><div class="ttname"><a href="#ad08520c0617eb8dcfcbfa90d258aa6b2">data_structures::treap::Treap::_get_k_th</a></div><div class="ttdeci">int _get_k_th(int &amp;x, int k)</div><div class="ttdoc">Find the KTH largest value (internal method)</div><div class="ttdef"><b>Definition</b> treap.cpp:139</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -387,21 +387,19 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The rank of element k </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 154</span> {</div>
<div class="line"><span class="lineno"> 155</span> <span class="keywordflow">if</span> (!x) {</div>
<div class="line"><span class="lineno"> 156</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 157</span> }</div>
<div class="line"><span class="lineno"> 158</span> <span class="keywordflow">if</span> (k == <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x]) {</div>
<div class="line"><span class="lineno"> 159</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] + 1;</div>
<div class="line"><span class="lineno"> 160</span> }</div>
<div class="line"><span class="lineno"> 161</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (k &lt; <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x]) {</div>
<div class="fragment"><div class="line"><span class="lineno"> 155</span> {</div>
<div class="line"><span class="lineno"> 156</span> <span class="keywordflow">if</span> (!x) {</div>
<div class="line"><span class="lineno"> 157</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 158</span> }</div>
<div class="line"><span class="lineno"> 159</span> <span class="keywordflow">if</span> (k == <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x]) {</div>
<div class="line"><span class="lineno"> 160</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] + 1;</div>
<div class="line"><span class="lineno"> 161</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (k &lt; <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x]) {</div>
<div class="line"><span class="lineno"> 162</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#a9a77d22f97add119123108211c6655ec">_get_rank</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0], k);</div>
<div class="line"><span class="lineno"> 163</span> }</div>
<div class="line"><span class="lineno"> 164</span> <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 165</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] + <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x] + <a class="code hl_function" href="#a9a77d22f97add119123108211c6655ec">_get_rank</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1], k);</div>
<div class="line"><span class="lineno"> 166</span> }</div>
<div class="line"><span class="lineno"> 167</span> }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a9a77d22f97add119123108211c6655ec"><div class="ttname"><a href="#a9a77d22f97add119123108211c6655ec">data_structures::treap::Treap::_get_rank</a></div><div class="ttdeci">int _get_rank(int x, int k)</div><div class="ttdoc">Query the rank of specified element (internal method)</div><div class="ttdef"><b>Definition</b> treap.cpp:154</div></div>
<div class="line"><span class="lineno"> 163</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 164</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] + <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x] + <a class="code hl_function" href="#a9a77d22f97add119123108211c6655ec">_get_rank</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1], k);</div>
<div class="line"><span class="lineno"> 165</span> }</div>
<div class="line"><span class="lineno"> 166</span> }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a9a77d22f97add119123108211c6655ec"><div class="ttname"><a href="#a9a77d22f97add119123108211c6655ec">data_structures::treap::Treap::_get_rank</a></div><div class="ttdeci">int _get_rank(int x, int k)</div><div class="ttdoc">Query the rank of specified element (internal method)</div><div class="ttdef"><b>Definition</b> treap.cpp:155</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -445,29 +443,29 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 84</span> {</div>
<div class="line"><span class="lineno"> 85</span> <span class="keywordflow">if</span> (x) {</div>
<div class="line"><span class="lineno"> 86</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] == k) {</div>
<div class="line"><span class="lineno"> 87</span> <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x]++;</div>
<div class="line"><span class="lineno"> 88</span> } <span class="comment">// If the node already exists, the number of copies is ++</span></div>
<div class="line"><span class="lineno"> 89</span> <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 90</span> <span class="keywordtype">int</span> t = (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] &lt; <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a>); <span class="comment">// Insert according to BST properties</span></div>
<div class="line"><span class="lineno"> 91</span> <a class="code hl_function" href="#a6a023a4f0c42fb8ed5b3368fba1a5f2c">_insert</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][t], k);</div>
<div class="line"><span class="lineno"> 92</span> <span class="comment">// After insertion, the heap properties are retained by rotation</span></div>
<div class="line"><span class="lineno"> 93</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][t]] &lt; <a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[x]) {</div>
<div class="line"><span class="lineno"> 94</span> <a class="code hl_function" href="#a75a48584a6560de20484fbba6229fd29">rotate</a>(x, t);</div>
<div class="line"><span class="lineno"> 95</span> }</div>
<div class="line"><span class="lineno"> 96</span> }</div>
<div class="line"><span class="lineno"> 97</span> } <span class="keywordflow">else</span> { <span class="comment">// Create a new node</span></div>
<div class="line"><span class="lineno"> 98</span> x = <a class="code hl_variable" href="#a1ab082fe0aa95a238bbbc68ab6a72425">treapCnt</a>++;</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] = <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a>;</div>
<div class="line"><span class="lineno"> 100</span> <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x] = 1;</div>
<div class="line"><span class="lineno"> 101</span> <a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[x] = rand(); <span class="comment">// Random priority</span></div>
<div class="line"><span class="lineno"> 102</span> <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0] = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1] = 0;</div>
<div class="line"><span class="lineno"> 103</span> }</div>
<div class="line"><span class="lineno"> 104</span> <a class="code hl_function" href="#aae9facaede462ad924856c4d707646d7">update</a>(x);</div>
<div class="line"><span class="lineno"> 105</span> }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a6a023a4f0c42fb8ed5b3368fba1a5f2c"><div class="ttname"><a href="#a6a023a4f0c42fb8ed5b3368fba1a5f2c">data_structures::treap::Treap::_insert</a></div><div class="ttdeci">void _insert(int &amp;x, int k)</div><div class="ttdoc">Insert a value into the specified subtree (internal method)</div><div class="ttdef"><b>Definition</b> treap.cpp:84</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 85</span> {</div>
<div class="line"><span class="lineno"> 86</span> <span class="keywordflow">if</span> (x) {</div>
<div class="line"><span class="lineno"> 87</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] == k) {</div>
<div class="line"><span class="lineno"> 88</span> <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x]++;</div>
<div class="line"><span class="lineno"> 89</span> } <span class="comment">// If the node already exists, the number of copies is ++</span></div>
<div class="line"><span class="lineno"> 90</span> <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 91</span> <span class="keywordtype">int</span> t = (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] &lt; <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a>); <span class="comment">// Insert according to BST properties</span></div>
<div class="line"><span class="lineno"> 92</span> <a class="code hl_function" href="#a6a023a4f0c42fb8ed5b3368fba1a5f2c">_insert</a>(<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][t], k);</div>
<div class="line"><span class="lineno"> 93</span> <span class="comment">// After insertion, the heap properties are retained by rotation</span></div>
<div class="line"><span class="lineno"> 94</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][t]] &lt; <a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[x]) {</div>
<div class="line"><span class="lineno"> 95</span> <a class="code hl_function" href="#a75a48584a6560de20484fbba6229fd29">rotate</a>(x, t);</div>
<div class="line"><span class="lineno"> 96</span> }</div>
<div class="line"><span class="lineno"> 97</span> }</div>
<div class="line"><span class="lineno"> 98</span> } <span class="keywordflow">else</span> { <span class="comment">// Create a new node</span></div>
<div class="line"><span class="lineno"> 99</span> x = <a class="code hl_variable" href="#a1ab082fe0aa95a238bbbc68ab6a72425">treapCnt</a>++;</div>
<div class="line"><span class="lineno"> 100</span> <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] = <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a>;</div>
<div class="line"><span class="lineno"> 101</span> <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x] = 1;</div>
<div class="line"><span class="lineno"> 102</span> <a class="code hl_variable" href="#a8be70f0a25e53e870e97d8d23968d723">priority</a>[x] = rand(); <span class="comment">// Random priority</span></div>
<div class="line"><span class="lineno"> 103</span> <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0] = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1] = 0;</div>
<div class="line"><span class="lineno"> 104</span> }</div>
<div class="line"><span class="lineno"> 105</span> <a class="code hl_function" href="#aae9facaede462ad924856c4d707646d7">update</a>(x);</div>
<div class="line"><span class="lineno"> 106</span> }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a6a023a4f0c42fb8ed5b3368fba1a5f2c"><div class="ttname"><a href="#a6a023a4f0c42fb8ed5b3368fba1a5f2c">data_structures::treap::Treap::_insert</a></div><div class="ttdeci">void _insert(int &amp;x, int k)</div><div class="ttdoc">Insert a value into the specified subtree (internal method)</div><div class="ttdef"><b>Definition</b> treap.cpp:85</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -506,8 +504,8 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 209</span>{ <a class="code hl_function" href="#aeb4bb0db68c7c04ef9498c88c3777887">_erase</a>(<a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, k); }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a3081969b2714a8101f7df28b1ce5ed2c"><div class="ttname"><a href="#a3081969b2714a8101f7df28b1ce5ed2c">data_structures::treap::Treap::root</a></div><div class="ttdeci">int root</div><div class="ttdoc">root of the treap</div><div class="ttdef"><b>Definition</b> treap.cpp:40</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 208</span>{ <a class="code hl_function" href="#aeb4bb0db68c7c04ef9498c88c3777887">_erase</a>(<a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, k); }</div>
<div class="ttc" id="astructdata__structures_1_1treap_1_1_treap_html_a3081969b2714a8101f7df28b1ce5ed2c"><div class="ttname"><a href="#a3081969b2714a8101f7df28b1ce5ed2c">data_structures::treap::Treap::root</a></div><div class="ttdeci">int root</div><div class="ttdoc">root of the treap</div><div class="ttdef"><b>Definition</b> treap.cpp:41</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -547,7 +545,7 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The element ranked number x </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 215</span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="#ad08520c0617eb8dcfcbfa90d258aa6b2">_get_k_th</a>(<a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, k); }</div>
<div class="fragment"><div class="line"><span class="lineno"> 214</span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="#ad08520c0617eb8dcfcbfa90d258aa6b2">_get_k_th</a>(<a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, k); }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -587,17 +585,17 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The successor </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 189</span> {</div>
<div class="line"><span class="lineno"> 190</span> <span class="keywordtype">int</span> x = <a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/next.html">next</a> = -1;</div>
<div class="line"><span class="lineno"> 191</span> <span class="keywordflow">while</span> (x) {</div>
<div class="line"><span class="lineno"> 192</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] &gt; k) {</div>
<div class="line"><span class="lineno"> 193</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/next.html">next</a> = <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x], x = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0];</div>
<div class="line"><span class="lineno"> 194</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 195</span> x = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1];</div>
<div class="line"><span class="lineno"> 196</span> }</div>
<div class="line"><span class="lineno"> 197</span> }</div>
<div class="line"><span class="lineno"> 198</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/next.html">next</a>;</div>
<div class="line"><span class="lineno"> 199</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 188</span> {</div>
<div class="line"><span class="lineno"> 189</span> <span class="keywordtype">int</span> x = <a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/next.html">next</a> = -1;</div>
<div class="line"><span class="lineno"> 190</span> <span class="keywordflow">while</span> (x) {</div>
<div class="line"><span class="lineno"> 191</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] &gt; k) {</div>
<div class="line"><span class="lineno"> 192</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/next.html">next</a> = <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x], x = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0];</div>
<div class="line"><span class="lineno"> 193</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 194</span> x = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1];</div>
<div class="line"><span class="lineno"> 195</span> }</div>
<div class="line"><span class="lineno"> 196</span> }</div>
<div class="line"><span class="lineno"> 197</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/next.html">next</a>;</div>
<div class="line"><span class="lineno"> 198</span> }</div>
<div class="ttc" id="anext_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/next.html">std::next</a></div><div class="ttdeci">T next(T... args)</div></div>
</div><!-- fragment -->
</div>
@@ -633,17 +631,17 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The predecessor </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 173</span> {</div>
<div class="line"><span class="lineno"> 174</span> <span class="keywordtype">int</span> x = <a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, pre = -1;</div>
<div class="line"><span class="lineno"> 175</span> <span class="keywordflow">while</span> (x) {</div>
<div class="line"><span class="lineno"> 176</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] &lt; k) {</div>
<div class="line"><span class="lineno"> 177</span> pre = <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x], x = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1];</div>
<div class="line"><span class="lineno"> 178</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 179</span> x = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0];</div>
<div class="line"><span class="lineno"> 180</span> }</div>
<div class="line"><span class="lineno"> 181</span> }</div>
<div class="line"><span class="lineno"> 182</span> <span class="keywordflow">return</span> pre;</div>
<div class="line"><span class="lineno"> 183</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 172</span> {</div>
<div class="line"><span class="lineno"> 173</span> <span class="keywordtype">int</span> x = <a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, pre = -1;</div>
<div class="line"><span class="lineno"> 174</span> <span class="keywordflow">while</span> (x) {</div>
<div class="line"><span class="lineno"> 175</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x] &lt; k) {</div>
<div class="line"><span class="lineno"> 176</span> pre = <a class="code hl_variable" href="#a32db3ba3b2630943faacd27b2ecd1b04">key</a>[x], x = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1];</div>
<div class="line"><span class="lineno"> 177</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 178</span> x = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0];</div>
<div class="line"><span class="lineno"> 179</span> }</div>
<div class="line"><span class="lineno"> 180</span> }</div>
<div class="line"><span class="lineno"> 181</span> <span class="keywordflow">return</span> pre;</div>
<div class="line"><span class="lineno"> 182</span> }</div>
</div><!-- fragment -->
</div>
</div>
@@ -678,7 +676,7 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The rank of element k </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 221</span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="#a9a77d22f97add119123108211c6655ec">_get_rank</a>(<a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, k); }</div>
<div class="fragment"><div class="line"><span class="lineno"> 220</span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="#a9a77d22f97add119123108211c6655ec">_get_rank</a>(<a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, k); }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -717,7 +715,7 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 204</span>{ <a class="code hl_function" href="#a6a023a4f0c42fb8ed5b3368fba1a5f2c">_insert</a>(<a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, k); }</div>
<div class="fragment"><div class="line"><span class="lineno"> 203</span>{ <a class="code hl_function" href="#a6a023a4f0c42fb8ed5b3368fba1a5f2c">_insert</a>(<a class="code hl_variable" href="#a3081969b2714a8101f7df28b1ce5ed2c">root</a>, k); }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -761,15 +759,15 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 70</span> {</div>
<div class="line"><span class="lineno"> 71</span> <span class="keywordtype">int</span> y = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][t];</div>
<div class="line"><span class="lineno"> 72</span> <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][t] = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[y][1 - t];</div>
<div class="line"><span class="lineno"> 73</span> <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[y][1 - t] = x;</div>
<div class="line"><span class="lineno"> 74</span> <span class="comment">// The rotation will only change itself and its son nodes</span></div>
<div class="line"><span class="lineno"> 75</span> <a class="code hl_function" href="#aae9facaede462ad924856c4d707646d7">update</a>(x);</div>
<div class="line"><span class="lineno"> 76</span> <a class="code hl_function" href="#aae9facaede462ad924856c4d707646d7">update</a>(y);</div>
<div class="line"><span class="lineno"> 77</span> x = y;</div>
<div class="line"><span class="lineno"> 78</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 71</span> {</div>
<div class="line"><span class="lineno"> 72</span> <span class="keywordtype">int</span> y = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][t];</div>
<div class="line"><span class="lineno"> 73</span> <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][t] = <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[y][1 - t];</div>
<div class="line"><span class="lineno"> 74</span> <a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[y][1 - t] = x;</div>
<div class="line"><span class="lineno"> 75</span> <span class="comment">// The rotation will only change itself and its son nodes</span></div>
<div class="line"><span class="lineno"> 76</span> <a class="code hl_function" href="#aae9facaede462ad924856c4d707646d7">update</a>(x);</div>
<div class="line"><span class="lineno"> 77</span> <a class="code hl_function" href="#aae9facaede462ad924856c4d707646d7">update</a>(y);</div>
<div class="line"><span class="lineno"> 78</span> x = y;</div>
<div class="line"><span class="lineno"> 79</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -808,9 +806,9 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><span class="lineno"> 62</span> {</div>
<div class="line"><span class="lineno"> 63</span> <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[x] = <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] + <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x] + <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1]];</div>
<div class="line"><span class="lineno"> 64</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 63</span> {</div>
<div class="line"><span class="lineno"> 64</span> <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[x] = <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][0]] + <a class="code hl_variable" href="#af7e6c6620ab32bc96633d101245fa919">cnt</a>[x] + <a class="code hl_variable" href="#af5f0b8263339485989f8a02ae026114c">size</a>[<a class="code hl_variable" href="#ab99f68b79e1c4ff0f1cd6f2f0b6a545f">childs</a>[x][1]];</div>
<div class="line"><span class="lineno"> 65</span> }</div>
</div><!-- fragment -->
</div>
</div>
@@ -829,8 +827,8 @@ Here is the call graph for this function:</div>
<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
<div class="line"> {}}</div>
</div><!-- fragment --><p>[i][0] represents the left child of node i, and [i][1] represents the right </p>
<div class="fragment"><div class="line"><span class="lineno"> 44</span> {</div>
<div class="line"><span class="lineno"> 45</span> {}}; <span class="comment">///&lt; [i][0] represents the</span></div>
<div class="fragment"><div class="line"><span class="lineno"> 45</span> {</div>
<div class="line"><span class="lineno"> 46</span> {}}; <span class="comment">///&lt; [i][0] represents the</span></div>
</div><!-- fragment -->
</div>
</div>
@@ -849,7 +847,7 @@ Here is the call graph for this function:</div>
<div class="line"> {}</div>
</div><!-- fragment -->
<p>Maintains the subtree size for ranking query. </p>
<div class="fragment"><div class="line"><span class="lineno"> 49</span> {}; <span class="comment">///&lt; Maintains the subtree size for ranking query</span></div>
<div class="fragment"><div class="line"><span class="lineno"> 50</span> {}; <span class="comment">///&lt; Maintains the subtree size for ranking query</span></div>
</div><!-- fragment -->
</div>
</div>
@@ -866,7 +864,7 @@ Here is the call graph for this function:</div>
</div><div class="memdoc">
<p><a class="el" href="../../d9/d49/structdata__structures_1_1_node.html">Node</a> identifier. </p>
<div class="fragment"><div class="line"><span class="lineno"> 42</span>{}; <span class="comment">///&lt; Node identifier</span></div>
<div class="fragment"><div class="line"><span class="lineno"> 43</span>{}; <span class="comment">///&lt; Node identifier</span></div>
</div><!-- fragment -->
</div>
</div>
@@ -883,7 +881,7 @@ Here is the call graph for this function:</div>
</div><div class="memdoc">
<p>Random priority. </p>
<div class="fragment"><div class="line"><span class="lineno"> 43</span>{}; <span class="comment">///&lt; Random priority</span></div>
<div class="fragment"><div class="line"><span class="lineno"> 44</span>{}; <span class="comment">///&lt; Random priority</span></div>
</div><!-- fragment -->
</div>
</div>
@@ -900,7 +898,7 @@ Here is the call graph for this function:</div>
</div><div class="memdoc">
<p>The number of copies per node. </p>
<div class="fragment"><div class="line"><span class="lineno"> 50</span>{}; <span class="comment">///&lt; The number of copies per node</span></div>
<div class="fragment"><div class="line"><span class="lineno"> 51</span>{}; <span class="comment">///&lt; The number of copies per node</span></div>
</div><!-- fragment -->
</div>
</div>

View File

@@ -116,6 +116,7 @@ $(function(){initNavTree('d5/d96/md5_8cpp.html','../../'); initResizable(true);
<div class="textblock"><code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;array&gt;</code><br />
<code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;cstring&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
@@ -123,13 +124,13 @@ $(function(){initNavTree('d5/d96/md5_8cpp.html','../../'); initResizable(true);
</div><div class="textblock"><div class="dynheader">
Include dependency graph for md5.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d0f/md5_8cpp__incl.svg" width="587" height="111"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../dd/d0f/md5_8cpp__incl.svg" width="100%" height="383"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d0c/namespacehashing.html">hashing</a></td></tr>
<tr class="memdesc:d6/d0c/namespacehashing"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hashing algorithms. <br /></td></tr>
<tr class="memdesc:d6/d0c/namespacehashing"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for assert. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d43/namespace_m_d5.html">MD5</a></td></tr>
<tr class="memdesc:dd/d43/namespace_m_d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for the <a href="https://en.wikipedia.org/wiki/MD5" target="_blank">MD5</a> algorithm implementation. <br /></td></tr>
@@ -206,10 +207,10 @@ Algorithm</h3>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void* Pointer to the <a class="el" href="../../dd/d43/namespace_m_d5.html" title="Functions for the MD5 algorithm implementation.">MD5</a> signature </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 287</span> {</div>
<div class="line"><span class="lineno"> 288</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#a5341431cef7fcfc33794326e1deb2425">hash_bs</a>(&amp;message[0], message.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>());</div>
<div class="line"><span class="lineno"> 289</span>}</div>
<div class="ttc" id="amd5_8cpp_html_a5341431cef7fcfc33794326e1deb2425"><div class="ttname"><a href="#a5341431cef7fcfc33794326e1deb2425">hashing::md5::hash_bs</a></div><div class="ttdeci">void * hash_bs(const void *input_bs, uint64_t input_size)</div><div class="ttdoc">The MD5 algorithm itself, taking in a bytestring.</div><div class="ttdef"><b>Definition</b> md5.cpp:138</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 288</span> {</div>
<div class="line"><span class="lineno"> 289</span> <span class="keywordflow">return</span> <a class="code hl_function" href="#a5341431cef7fcfc33794326e1deb2425">hash_bs</a>(&amp;message[0], message.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>());</div>
<div class="line"><span class="lineno"> 290</span>}</div>
<div class="ttc" id="amd5_8cpp_html_a5341431cef7fcfc33794326e1deb2425"><div class="ttname"><a href="#a5341431cef7fcfc33794326e1deb2425">hashing::md5::hash_bs</a></div><div class="ttdeci">void * hash_bs(const void *input_bs, uint64_t input_size)</div><div class="ttdoc">The MD5 algorithm itself, taking in a bytestring.</div><div class="ttdef"><b>Definition</b> md5.cpp:139</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">std::string::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>
@@ -251,156 +252,156 @@ Here is the call graph for this function:</div>
<div class="line"> </div>
<div class="line"><span class="keywordflow">for</span> i <span class="keywordflow">in</span> range(64):</div>
<div class="line"> print(floor(2**32 * abs(sin(i+1))))</div>
</div><!-- fragment --><div class="fragment"><div class="line"><span class="lineno"> 138</span> {</div>
<div class="line"><span class="lineno"> 139</span> <span class="keyword">auto</span>* input = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>uint8_t*<span class="keyword">&gt;</span>(input_bs);</div>
<div class="line"><span class="lineno"> 140</span> </div>
<div class="line"><span class="lineno"> 141</span> <span class="comment">// Step 0: Initial Data (Those are decided in the MD5 protocol)</span></div>
<div class="line"><span class="lineno"> 142</span> <span class="comment">// s is the shift used in the leftrotate each round</span></div>
<div class="line"><span class="lineno"> 143</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;uint32_t, 64&gt;</a> s = {</div>
<div class="line"><span class="lineno"> 144</span> 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,</div>
<div class="line"><span class="lineno"> 145</span> 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,</div>
<div class="line"><span class="lineno"> 146</span> 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,</div>
<div class="line"><span class="lineno"> 147</span> 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21};</div>
<div class="line"><span class="lineno"> 148</span> <span class="comment">// K is pseudo-random values used each round</span></div>
<div class="line"><span class="lineno"> 149</span> <span class="comment">// The values can be obtained by the following python code:</span></div>
<div class="line"><span class="lineno"> 150</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 151</span><span class="comment"> /**</span></div>
<div class="line"><span class="lineno"> 152</span><span class="comment"> * @brief Values of K are pseudo-random and used to &quot;salt&quot; each round</span></div>
<div class="line"><span class="lineno"> 153</span><span class="comment"> * The values can be obtained by the following python code</span></div>
<div class="line"><span class="lineno"> 154</span><span class="comment"> * @code{.py}</span></div>
<div class="line"><span class="lineno"> 155</span><span class="comment"> * from math import floor, sin</span></div>
<div class="line"><span class="lineno"> 156</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 157</span><span class="comment"> * for i in range(64):</span></div>
<div class="line"><span class="lineno"> 158</span><span class="comment"> * print(floor(2**32 * abs(sin(i+1))))</span></div>
<div class="line"><span class="lineno"> 159</span><span class="comment"> * @endcode</span></div>
<div class="line"><span class="lineno"> 160</span><span class="comment"> */</span></div>
<div class="line"><span class="lineno"> 161</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;uint32_t, 64&gt;</a> K = {</div>
<div class="line"><span class="lineno"> 162</span> 3614090360, 3905402710, 606105819, 3250441966, 4118548399, 1200080426,</div>
<div class="line"><span class="lineno"> 163</span> 2821735955, 4249261313, 1770035416, 2336552879, 4294925233, 2304563134,</div>
<div class="line"><span class="lineno"> 164</span> 1804603682, 4254626195, 2792965006, 1236535329, 4129170786, 3225465664,</div>
<div class="line"><span class="lineno"> 165</span> 643717713, 3921069994, 3593408605, 38016083, 3634488961, 3889429448,</div>
<div class="line"><span class="lineno"> 166</span> 568446438, 3275163606, 4107603335, 1163531501, 2850285829, 4243563512,</div>
<div class="line"><span class="lineno"> 167</span> 1735328473, 2368359562, 4294588738, 2272392833, 1839030562, 4259657740,</div>
<div class="line"><span class="lineno"> 168</span> 2763975236, 1272893353, 4139469664, 3200236656, 681279174, 3936430074,</div>
<div class="line"><span class="lineno"> 169</span> 3572445317, 76029189, 3654602809, 3873151461, 530742520, 3299628645,</div>
<div class="line"><span class="lineno"> 170</span> 4096336452, 1126891415, 2878612391, 4237533241, 1700485571, 2399980690,</div>
<div class="line"><span class="lineno"> 171</span> 4293915773, 2240044497, 1873313359, 4264355552, 2734768916, 1309151649,</div>
<div class="line"><span class="lineno"> 172</span> 4149444226, 3174756917, 718787259, 3951481745};</div>
<div class="line"><span class="lineno"> 173</span> </div>
<div class="line"><span class="lineno"> 174</span> <span class="comment">// The initial 128-bit state</span></div>
<div class="line"><span class="lineno"> 175</span> uint32_t a0 = 0x67452301, A = 0;</div>
<div class="line"><span class="lineno"> 176</span> uint32_t b0 = 0xefcdab89, B = 0;</div>
<div class="line"><span class="lineno"> 177</span> uint32_t c0 = 0x98badcfe, C = 0;</div>
<div class="line"><span class="lineno"> 178</span> uint32_t d0 = 0x10325476, D = 0;</div>
<div class="line"><span class="lineno"> 179</span> </div>
<div class="line"><span class="lineno"> 180</span> <span class="comment">// Step 1: Processing the bytestring</span></div>
<div class="line"><span class="lineno"> 181</span> </div>
<div class="line"><span class="lineno"> 182</span> <span class="comment">// First compute the size the padded message will have</span></div>
<div class="line"><span class="lineno"> 183</span> <span class="comment">// so it is possible to allocate the right amount of memory</span></div>
<div class="line"><span class="lineno"> 184</span> uint64_t padded_message_size = 0;</div>
<div class="line"><span class="lineno"> 185</span> <span class="keywordflow">if</span> (input_size % 64 &lt; 56) {</div>
<div class="line"><span class="lineno"> 186</span> padded_message_size = input_size + 64 - (input_size % 64);</div>
<div class="line"><span class="lineno"> 187</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 188</span> padded_message_size = input_size + 128 - (input_size % 64);</div>
<div class="line"><span class="lineno"> 189</span> }</div>
<div class="line"><span class="lineno"> 190</span> </div>
<div class="line"><span class="lineno"> 191</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint8_t&gt;</a> padded_message(padded_message_size);</div>
<div class="line"><span class="lineno"> 192</span> </div>
<div class="line"><span class="lineno"> 193</span> <span class="comment">// Beginning of the padded message is the original message</span></div>
<div class="line"><span class="lineno"> 194</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/copy.html">std::copy</a>(input, input + input_size, padded_message.begin());</div>
<div class="line"><span class="lineno"> 195</span> </div>
<div class="line"><span class="lineno"> 196</span> <span class="comment">// Afterwards comes a single 1 bit and then only zeroes</span></div>
<div class="line"><span class="lineno"> 197</span> padded_message[input_size] = 1 &lt;&lt; 7; <span class="comment">// 10000000</span></div>
<div class="line"><span class="lineno"> 198</span> <span class="keywordflow">for</span> (uint64_t i = input_size; i % 64 != 56; i++) {</div>
<div class="line"><span class="lineno"> 199</span> <span class="keywordflow">if</span> (i == input_size) {</div>
<div class="line"><span class="lineno"> 200</span> <span class="keywordflow">continue</span>; <span class="comment">// pass first iteration</span></div>
<div class="line"><span class="lineno"> 201</span> }</div>
<div class="line"><span class="lineno"> 202</span> padded_message[i] = 0;</div>
<div class="line"><span class="lineno"> 203</span> }</div>
<div class="line"><span class="lineno"> 204</span> </div>
<div class="line"><span class="lineno"> 205</span> <span class="comment">// We then have to add the 64-bit size of the message at the end</span></div>
<div class="line"><span class="lineno"> 206</span> <span class="comment">// When there is a conversion from int to bytestring or vice-versa</span></div>
<div class="line"><span class="lineno"> 207</span> <span class="comment">// We always need to make sure it is little endian</span></div>
<div class="line"><span class="lineno"> 208</span> uint64_t input_bitsize_le = <a class="code hl_function" href="#a6be48c1e6e742f9bd329f501d61dcaef">toLittleEndian64</a>(input_size * 8);</div>
<div class="line"><span class="lineno"> 209</span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 8; i++) {</div>
<div class="line"><span class="lineno"> 210</span> padded_message[padded_message_size - 8 + i] =</div>
<div class="line"><span class="lineno"> 211</span> (input_bitsize_le &gt;&gt; (56 - 8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 212</span> }</div>
<div class="line"><span class="lineno"> 213</span> </div>
<div class="line"><span class="lineno"> 214</span> <span class="comment">// Already allocate memory for blocks</span></div>
<div class="line"><span class="lineno"> 215</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;uint32_t, 16&gt;</a> blocks{};</div>
<div class="line"><span class="lineno"> 216</span> </div>
<div class="line"><span class="lineno"> 217</span> <span class="comment">// Rounds</span></div>
<div class="line"><span class="lineno"> 218</span> <span class="keywordflow">for</span> (uint64_t chunk = 0; chunk * 64 &lt; padded_message_size; chunk++) {</div>
<div class="line"><span class="lineno"> 219</span> <span class="comment">// First, build the 16 32-bits blocks from the chunk</span></div>
<div class="line"><span class="lineno"> 220</span> <span class="keywordflow">for</span> (uint8_t bid = 0; bid &lt; 16; bid++) {</div>
<div class="line"><span class="lineno"> 221</span> blocks[bid] = 0;</div>
<div class="line"><span class="lineno"> 222</span> </div>
<div class="line"><span class="lineno"> 223</span> <span class="comment">// Having to build a 32-bit word from 4-bit words</span></div>
<div class="line"><span class="lineno"> 224</span> <span class="comment">// Add each and shift them to the left</span></div>
<div class="line"><span class="lineno"> 225</span> <span class="keywordflow">for</span> (uint8_t cid = 0; cid &lt; 4; cid++) {</div>
<div class="line"><span class="lineno"> 226</span> blocks[bid] = (blocks[bid] &lt;&lt; 8) +</div>
<div class="line"><span class="lineno"> 227</span> padded_message[chunk * 64 + bid * 4 + cid];</div>
<div class="line"><span class="lineno"> 228</span> }</div>
<div class="line"><span class="lineno"> 229</span> }</div>
<div class="line"><span class="lineno"> 230</span> </div>
<div class="line"><span class="lineno"> 231</span> A = a0;</div>
<div class="line"><span class="lineno"> 232</span> B = b0;</div>
<div class="line"><span class="lineno"> 233</span> C = c0;</div>
<div class="line"><span class="lineno"> 234</span> D = d0;</div>
<div class="line"><span class="lineno"> 235</span> </div>
<div class="line"><span class="lineno"> 236</span> <span class="comment">// Main &quot;hashing&quot; loop</span></div>
<div class="line"><span class="lineno"> 237</span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 64; i++) {</div>
<div class="line"><span class="lineno"> 238</span> uint32_t F = 0, <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0;</div>
<div class="line"><span class="lineno"> 239</span> <span class="keywordflow">if</span> (i &lt; 16) {</div>
<div class="line"><span class="lineno"> 240</span> F = (B &amp; C) | ((~B) &amp; D);</div>
<div class="line"><span class="lineno"> 241</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = i;</div>
<div class="line"><span class="lineno"> 242</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i &lt; 32) {</div>
<div class="line"><span class="lineno"> 243</span> F = (D &amp; B) | ((~D) &amp; C);</div>
<div class="line"><span class="lineno"> 244</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = (5 * i + 1) % 16;</div>
<div class="line"><span class="lineno"> 245</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i &lt; 48) {</div>
<div class="line"><span class="lineno"> 246</span> F = B ^ C ^ D;</div>
<div class="line"><span class="lineno"> 247</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = (3 * i + 5) % 16;</div>
<div class="line"><span class="lineno"> 248</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 249</span> F = C ^ (B | (~D));</div>
<div class="line"><span class="lineno"> 250</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = (7 * i) % 16;</div>
<div class="line"><span class="lineno"> 251</span> }</div>
<div class="line"><span class="lineno"> 252</span> </div>
<div class="line"><span class="lineno"> 253</span> <span class="comment">// Update the accumulators</span></div>
<div class="line"><span class="lineno"> 254</span> F += A + K[i] + <a class="code hl_function" href="#a694712c9665051ba52b686387b87a689">toLittleEndian32</a>(blocks[g]);</div>
<div class="line"><span class="lineno"> 255</span> </div>
<div class="line"><span class="lineno"> 256</span> A = D;</div>
<div class="line"><span class="lineno"> 257</span> D = C;</div>
<div class="line"><span class="lineno"> 258</span> C = B;</div>
<div class="line"><span class="lineno"> 259</span> B += <a class="code hl_function" href="#add2bf982d5dd64a45d13cba52c2b371d">leftRotate32bits</a>(F, s[i]);</div>
<div class="line"><span class="lineno"> 260</span> }</div>
<div class="line"><span class="lineno"> 261</span> <span class="comment">// Update the state with this chunk&#39;s hash</span></div>
<div class="line"><span class="lineno"> 262</span> a0 += A;</div>
<div class="line"><span class="lineno"> 263</span> b0 += B;</div>
<div class="line"><span class="lineno"> 264</span> c0 += C;</div>
<div class="line"><span class="lineno"> 265</span> d0 += D;</div>
<div class="line"><span class="lineno"> 266</span> }</div>
<div class="line"><span class="lineno"> 267</span> </div>
<div class="line"><span class="lineno"> 268</span> <span class="comment">// Build signature from state</span></div>
<div class="line"><span class="lineno"> 269</span> <span class="comment">// Note, any type could be used for the signature</span></div>
<div class="line"><span class="lineno"> 270</span> <span class="comment">// uint8_t was used to make the 16 bytes obvious</span></div>
<div class="line"><span class="lineno"> 271</span> <span class="comment">// The sig needs to be little endian</span></div>
<div class="line"><span class="lineno"> 272</span> <span class="keyword">auto</span>* sig = <span class="keyword">new</span> uint8_t[16];</div>
<div class="line"><span class="lineno"> 273</span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 4; i++) {</div>
<div class="line"><span class="lineno"> 274</span> sig[i] = (a0 &gt;&gt; (8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 275</span> sig[i + 4] = (b0 &gt;&gt; (8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 276</span> sig[i + 8] = (c0 &gt;&gt; (8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 277</span> sig[i + 12] = (d0 &gt;&gt; (8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 278</span> }</div>
<div class="line"><span class="lineno"> 279</span> </div>
<div class="line"><span class="lineno"> 280</span> <span class="keywordflow">return</span> sig;</div>
<div class="line"><span class="lineno"> 281</span>}</div>
</div><!-- fragment --><div class="fragment"><div class="line"><span class="lineno"> 139</span> {</div>
<div class="line"><span class="lineno"> 140</span> <span class="keyword">auto</span>* input = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>uint8_t*<span class="keyword">&gt;</span>(input_bs);</div>
<div class="line"><span class="lineno"> 141</span> </div>
<div class="line"><span class="lineno"> 142</span> <span class="comment">// Step 0: Initial Data (Those are decided in the MD5 protocol)</span></div>
<div class="line"><span class="lineno"> 143</span> <span class="comment">// s is the shift used in the leftrotate each round</span></div>
<div class="line"><span class="lineno"> 144</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;uint32_t, 64&gt;</a> s = {</div>
<div class="line"><span class="lineno"> 145</span> 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,</div>
<div class="line"><span class="lineno"> 146</span> 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,</div>
<div class="line"><span class="lineno"> 147</span> 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,</div>
<div class="line"><span class="lineno"> 148</span> 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21};</div>
<div class="line"><span class="lineno"> 149</span> <span class="comment">// K is pseudo-random values used each round</span></div>
<div class="line"><span class="lineno"> 150</span> <span class="comment">// The values can be obtained by the following python code:</span></div>
<div class="line"><span class="lineno"> 151</span><span class="comment"></span> </div>
<div class="line"><span class="lineno"> 152</span><span class="comment"> /**</span></div>
<div class="line"><span class="lineno"> 153</span><span class="comment"> * @brief Values of K are pseudo-random and used to &quot;salt&quot; each round</span></div>
<div class="line"><span class="lineno"> 154</span><span class="comment"> * The values can be obtained by the following python code</span></div>
<div class="line"><span class="lineno"> 155</span><span class="comment"> * @code{.py}</span></div>
<div class="line"><span class="lineno"> 156</span><span class="comment"> * from math import floor, sin</span></div>
<div class="line"><span class="lineno"> 157</span><span class="comment"> *</span></div>
<div class="line"><span class="lineno"> 158</span><span class="comment"> * for i in range(64):</span></div>
<div class="line"><span class="lineno"> 159</span><span class="comment"> * print(floor(2**32 * abs(sin(i+1))))</span></div>
<div class="line"><span class="lineno"> 160</span><span class="comment"> * @endcode</span></div>
<div class="line"><span class="lineno"> 161</span><span class="comment"> */</span></div>
<div class="line"><span class="lineno"> 162</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;uint32_t, 64&gt;</a> K = {</div>
<div class="line"><span class="lineno"> 163</span> 3614090360, 3905402710, 606105819, 3250441966, 4118548399, 1200080426,</div>
<div class="line"><span class="lineno"> 164</span> 2821735955, 4249261313, 1770035416, 2336552879, 4294925233, 2304563134,</div>
<div class="line"><span class="lineno"> 165</span> 1804603682, 4254626195, 2792965006, 1236535329, 4129170786, 3225465664,</div>
<div class="line"><span class="lineno"> 166</span> 643717713, 3921069994, 3593408605, 38016083, 3634488961, 3889429448,</div>
<div class="line"><span class="lineno"> 167</span> 568446438, 3275163606, 4107603335, 1163531501, 2850285829, 4243563512,</div>
<div class="line"><span class="lineno"> 168</span> 1735328473, 2368359562, 4294588738, 2272392833, 1839030562, 4259657740,</div>
<div class="line"><span class="lineno"> 169</span> 2763975236, 1272893353, 4139469664, 3200236656, 681279174, 3936430074,</div>
<div class="line"><span class="lineno"> 170</span> 3572445317, 76029189, 3654602809, 3873151461, 530742520, 3299628645,</div>
<div class="line"><span class="lineno"> 171</span> 4096336452, 1126891415, 2878612391, 4237533241, 1700485571, 2399980690,</div>
<div class="line"><span class="lineno"> 172</span> 4293915773, 2240044497, 1873313359, 4264355552, 2734768916, 1309151649,</div>
<div class="line"><span class="lineno"> 173</span> 4149444226, 3174756917, 718787259, 3951481745};</div>
<div class="line"><span class="lineno"> 174</span> </div>
<div class="line"><span class="lineno"> 175</span> <span class="comment">// The initial 128-bit state</span></div>
<div class="line"><span class="lineno"> 176</span> uint32_t a0 = 0x67452301, A = 0;</div>
<div class="line"><span class="lineno"> 177</span> uint32_t b0 = 0xefcdab89, B = 0;</div>
<div class="line"><span class="lineno"> 178</span> uint32_t c0 = 0x98badcfe, C = 0;</div>
<div class="line"><span class="lineno"> 179</span> uint32_t d0 = 0x10325476, D = 0;</div>
<div class="line"><span class="lineno"> 180</span> </div>
<div class="line"><span class="lineno"> 181</span> <span class="comment">// Step 1: Processing the bytestring</span></div>
<div class="line"><span class="lineno"> 182</span> </div>
<div class="line"><span class="lineno"> 183</span> <span class="comment">// First compute the size the padded message will have</span></div>
<div class="line"><span class="lineno"> 184</span> <span class="comment">// so it is possible to allocate the right amount of memory</span></div>
<div class="line"><span class="lineno"> 185</span> uint64_t padded_message_size = 0;</div>
<div class="line"><span class="lineno"> 186</span> <span class="keywordflow">if</span> (input_size % 64 &lt; 56) {</div>
<div class="line"><span class="lineno"> 187</span> padded_message_size = input_size + 64 - (input_size % 64);</div>
<div class="line"><span class="lineno"> 188</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 189</span> padded_message_size = input_size + 128 - (input_size % 64);</div>
<div class="line"><span class="lineno"> 190</span> }</div>
<div class="line"><span class="lineno"> 191</span> </div>
<div class="line"><span class="lineno"> 192</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint8_t&gt;</a> padded_message(padded_message_size);</div>
<div class="line"><span class="lineno"> 193</span> </div>
<div class="line"><span class="lineno"> 194</span> <span class="comment">// Beginning of the padded message is the original message</span></div>
<div class="line"><span class="lineno"> 195</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/copy.html">std::copy</a>(input, input + input_size, padded_message.begin());</div>
<div class="line"><span class="lineno"> 196</span> </div>
<div class="line"><span class="lineno"> 197</span> <span class="comment">// Afterwards comes a single 1 bit and then only zeroes</span></div>
<div class="line"><span class="lineno"> 198</span> padded_message[input_size] = 1 &lt;&lt; 7; <span class="comment">// 10000000</span></div>
<div class="line"><span class="lineno"> 199</span> <span class="keywordflow">for</span> (uint64_t i = input_size; i % 64 != 56; i++) {</div>
<div class="line"><span class="lineno"> 200</span> <span class="keywordflow">if</span> (i == input_size) {</div>
<div class="line"><span class="lineno"> 201</span> <span class="keywordflow">continue</span>; <span class="comment">// pass first iteration</span></div>
<div class="line"><span class="lineno"> 202</span> }</div>
<div class="line"><span class="lineno"> 203</span> padded_message[i] = 0;</div>
<div class="line"><span class="lineno"> 204</span> }</div>
<div class="line"><span class="lineno"> 205</span> </div>
<div class="line"><span class="lineno"> 206</span> <span class="comment">// We then have to add the 64-bit size of the message at the end</span></div>
<div class="line"><span class="lineno"> 207</span> <span class="comment">// When there is a conversion from int to bytestring or vice-versa</span></div>
<div class="line"><span class="lineno"> 208</span> <span class="comment">// We always need to make sure it is little endian</span></div>
<div class="line"><span class="lineno"> 209</span> uint64_t input_bitsize_le = <a class="code hl_function" href="#a6be48c1e6e742f9bd329f501d61dcaef">toLittleEndian64</a>(input_size * 8);</div>
<div class="line"><span class="lineno"> 210</span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 8; i++) {</div>
<div class="line"><span class="lineno"> 211</span> padded_message[padded_message_size - 8 + i] =</div>
<div class="line"><span class="lineno"> 212</span> (input_bitsize_le &gt;&gt; (56 - 8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 213</span> }</div>
<div class="line"><span class="lineno"> 214</span> </div>
<div class="line"><span class="lineno"> 215</span> <span class="comment">// Already allocate memory for blocks</span></div>
<div class="line"><span class="lineno"> 216</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;uint32_t, 16&gt;</a> blocks{};</div>
<div class="line"><span class="lineno"> 217</span> </div>
<div class="line"><span class="lineno"> 218</span> <span class="comment">// Rounds</span></div>
<div class="line"><span class="lineno"> 219</span> <span class="keywordflow">for</span> (uint64_t chunk = 0; chunk * 64 &lt; padded_message_size; chunk++) {</div>
<div class="line"><span class="lineno"> 220</span> <span class="comment">// First, build the 16 32-bits blocks from the chunk</span></div>
<div class="line"><span class="lineno"> 221</span> <span class="keywordflow">for</span> (uint8_t bid = 0; bid &lt; 16; bid++) {</div>
<div class="line"><span class="lineno"> 222</span> blocks[bid] = 0;</div>
<div class="line"><span class="lineno"> 223</span> </div>
<div class="line"><span class="lineno"> 224</span> <span class="comment">// Having to build a 32-bit word from 4-bit words</span></div>
<div class="line"><span class="lineno"> 225</span> <span class="comment">// Add each and shift them to the left</span></div>
<div class="line"><span class="lineno"> 226</span> <span class="keywordflow">for</span> (uint8_t cid = 0; cid &lt; 4; cid++) {</div>
<div class="line"><span class="lineno"> 227</span> blocks[bid] = (blocks[bid] &lt;&lt; 8) +</div>
<div class="line"><span class="lineno"> 228</span> padded_message[chunk * 64 + bid * 4 + cid];</div>
<div class="line"><span class="lineno"> 229</span> }</div>
<div class="line"><span class="lineno"> 230</span> }</div>
<div class="line"><span class="lineno"> 231</span> </div>
<div class="line"><span class="lineno"> 232</span> A = a0;</div>
<div class="line"><span class="lineno"> 233</span> B = b0;</div>
<div class="line"><span class="lineno"> 234</span> C = c0;</div>
<div class="line"><span class="lineno"> 235</span> D = d0;</div>
<div class="line"><span class="lineno"> 236</span> </div>
<div class="line"><span class="lineno"> 237</span> <span class="comment">// Main &quot;hashing&quot; loop</span></div>
<div class="line"><span class="lineno"> 238</span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 64; i++) {</div>
<div class="line"><span class="lineno"> 239</span> uint32_t F = 0, <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0;</div>
<div class="line"><span class="lineno"> 240</span> <span class="keywordflow">if</span> (i &lt; 16) {</div>
<div class="line"><span class="lineno"> 241</span> F = (B &amp; C) | ((~B) &amp; D);</div>
<div class="line"><span class="lineno"> 242</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = i;</div>
<div class="line"><span class="lineno"> 243</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i &lt; 32) {</div>
<div class="line"><span class="lineno"> 244</span> F = (D &amp; B) | ((~D) &amp; C);</div>
<div class="line"><span class="lineno"> 245</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = (5 * i + 1) % 16;</div>
<div class="line"><span class="lineno"> 246</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i &lt; 48) {</div>
<div class="line"><span class="lineno"> 247</span> F = B ^ C ^ D;</div>
<div class="line"><span class="lineno"> 248</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = (3 * i + 5) % 16;</div>
<div class="line"><span class="lineno"> 249</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 250</span> F = C ^ (B | (~D));</div>
<div class="line"><span class="lineno"> 251</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = (7 * i) % 16;</div>
<div class="line"><span class="lineno"> 252</span> }</div>
<div class="line"><span class="lineno"> 253</span> </div>
<div class="line"><span class="lineno"> 254</span> <span class="comment">// Update the accumulators</span></div>
<div class="line"><span class="lineno"> 255</span> F += A + K[i] + <a class="code hl_function" href="#a694712c9665051ba52b686387b87a689">toLittleEndian32</a>(blocks[g]);</div>
<div class="line"><span class="lineno"> 256</span> </div>
<div class="line"><span class="lineno"> 257</span> A = D;</div>
<div class="line"><span class="lineno"> 258</span> D = C;</div>
<div class="line"><span class="lineno"> 259</span> C = B;</div>
<div class="line"><span class="lineno"> 260</span> B += <a class="code hl_function" href="#add2bf982d5dd64a45d13cba52c2b371d">leftRotate32bits</a>(F, s[i]);</div>
<div class="line"><span class="lineno"> 261</span> }</div>
<div class="line"><span class="lineno"> 262</span> <span class="comment">// Update the state with this chunk&#39;s hash</span></div>
<div class="line"><span class="lineno"> 263</span> a0 += A;</div>
<div class="line"><span class="lineno"> 264</span> b0 += B;</div>
<div class="line"><span class="lineno"> 265</span> c0 += C;</div>
<div class="line"><span class="lineno"> 266</span> d0 += D;</div>
<div class="line"><span class="lineno"> 267</span> }</div>
<div class="line"><span class="lineno"> 268</span> </div>
<div class="line"><span class="lineno"> 269</span> <span class="comment">// Build signature from state</span></div>
<div class="line"><span class="lineno"> 270</span> <span class="comment">// Note, any type could be used for the signature</span></div>
<div class="line"><span class="lineno"> 271</span> <span class="comment">// uint8_t was used to make the 16 bytes obvious</span></div>
<div class="line"><span class="lineno"> 272</span> <span class="comment">// The sig needs to be little endian</span></div>
<div class="line"><span class="lineno"> 273</span> <span class="keyword">auto</span>* sig = <span class="keyword">new</span> uint8_t[16];</div>
<div class="line"><span class="lineno"> 274</span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 4; i++) {</div>
<div class="line"><span class="lineno"> 275</span> sig[i] = (a0 &gt;&gt; (8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 276</span> sig[i + 4] = (b0 &gt;&gt; (8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 277</span> sig[i + 8] = (c0 &gt;&gt; (8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 278</span> sig[i + 12] = (d0 &gt;&gt; (8 * i)) &amp; 0xFF;</div>
<div class="line"><span class="lineno"> 279</span> }</div>
<div class="line"><span class="lineno"> 280</span> </div>
<div class="line"><span class="lineno"> 281</span> <span class="keywordflow">return</span> sig;</div>
<div class="line"><span class="lineno"> 282</span>}</div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></div>
<div class="ttc" id="acomposite__simpson__rule_8cpp_html_a2f67508d5f392b0321772169342c98ad"><div class="ttname"><a href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">numerical_methods::simpson_method::g</a></div><div class="ttdeci">double g(double x)</div><div class="ttdoc">Another test function.</div><div class="ttdef"><b>Definition</b> composite_simpson_rule.cpp:115</div></div>
<div class="ttc" id="acopy_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/copy.html">std::copy</a></div><div class="ttdeci">T copy(T... args)</div></div>
<div class="ttc" id="amd5_8cpp_html_a694712c9665051ba52b686387b87a689"><div class="ttname"><a href="#a694712c9665051ba52b686387b87a689">hashing::md5::toLittleEndian32</a></div><div class="ttdeci">uint32_t toLittleEndian32(uint32_t n)</div><div class="ttdoc">Sets 32-bit integer to little-endian if needed.</div><div class="ttdef"><b>Definition</b> md5.cpp:89</div></div>
<div class="ttc" id="amd5_8cpp_html_a6be48c1e6e742f9bd329f501d61dcaef"><div class="ttname"><a href="#a6be48c1e6e742f9bd329f501d61dcaef">hashing::md5::toLittleEndian64</a></div><div class="ttdeci">uint64_t toLittleEndian64(uint64_t n)</div><div class="ttdoc">Sets 64-bit integer to little-endian if needed.</div><div class="ttdef"><b>Definition</b> md5.cpp:102</div></div>
<div class="ttc" id="amd5_8cpp_html_add2bf982d5dd64a45d13cba52c2b371d"><div class="ttname"><a href="#add2bf982d5dd64a45d13cba52c2b371d">hashing::md5::leftRotate32bits</a></div><div class="ttdeci">uint32_t leftRotate32bits(uint32_t n, std::size_t rotate)</div><div class="ttdoc">Rotates the bits of a 32-bit unsigned integer.</div><div class="ttdef"><b>Definition</b> md5.cpp:66</div></div>
<div class="ttc" id="amd5_8cpp_html_a694712c9665051ba52b686387b87a689"><div class="ttname"><a href="#a694712c9665051ba52b686387b87a689">hashing::md5::toLittleEndian32</a></div><div class="ttdeci">uint32_t toLittleEndian32(uint32_t n)</div><div class="ttdoc">Sets 32-bit integer to little-endian if needed.</div><div class="ttdef"><b>Definition</b> md5.cpp:90</div></div>
<div class="ttc" id="amd5_8cpp_html_a6be48c1e6e742f9bd329f501d61dcaef"><div class="ttname"><a href="#a6be48c1e6e742f9bd329f501d61dcaef">hashing::md5::toLittleEndian64</a></div><div class="ttdeci">uint64_t toLittleEndian64(uint64_t n)</div><div class="ttdoc">Sets 64-bit integer to little-endian if needed.</div><div class="ttdef"><b>Definition</b> md5.cpp:103</div></div>
<div class="ttc" id="amd5_8cpp_html_add2bf982d5dd64a45d13cba52c2b371d"><div class="ttname"><a href="#add2bf982d5dd64a45d13cba52c2b371d">hashing::md5::leftRotate32bits</a></div><div class="ttdeci">uint32_t leftRotate32bits(uint32_t n, std::size_t rotate)</div><div class="ttdoc">Rotates the bits of a 32-bit unsigned integer.</div><div class="ttdef"><b>Definition</b> md5.cpp:67</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>
@@ -435,34 +436,34 @@ Here is the call graph for this function:</div>
<p>Puts user in a loop where inputs can be given and <a class="el" href="../../dd/d43/namespace_m_d5.html" title="Functions for the MD5 algorithm implementation.">MD5</a> hash will be computed and printed. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 351</span> {</div>
<div class="line"><span class="lineno"> 352</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
<div class="line"><span class="lineno"> 353</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> input;</div>
<div class="line"><span class="lineno"> 354</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 message to be hashed (Ctrl-C to exit): &quot;</span></div>
<div class="line"><span class="lineno"> 355</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 356</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/getline.html">std::getline</a>(<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a>, input);</div>
<div class="line"><span class="lineno"> 357</span> <span class="keywordtype">void</span>* sig = <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(input);</div>
<div class="line"><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;Hash is: &quot;</span> &lt;&lt; <a class="code hl_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 359</span> </div>
<div class="line"><span class="lineno"> 360</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
<div class="line"><span class="lineno"> 361</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;Want to enter another message? (y/n) &quot;</span>;</div>
<div class="line"><span class="lineno"> 362</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/getline.html">std::getline</a>(<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a>, input);</div>
<div class="line"><span class="lineno"> 363</span> <span class="keywordflow">if</span> (input.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html">compare</a>(<span class="stringliteral">&quot;y&quot;</span>) == 0) {</div>
<div class="line"><span class="lineno"> 364</span> <span class="keywordflow">break</span>;</div>
<div class="line"><span class="lineno"> 365</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (input.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html">compare</a>(<span class="stringliteral">&quot;n&quot;</span>) == 0) {</div>
<div class="line"><span class="lineno"> 366</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 367</span> }</div>
<div class="line"><span class="lineno"> 368</span> }</div>
<div class="line"><span class="lineno"> 369</span> }</div>
<div class="line"><span class="lineno"> 370</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 352</span> {</div>
<div class="line"><span class="lineno"> 353</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
<div class="line"><span class="lineno"> 354</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> input;</div>
<div class="line"><span class="lineno"> 355</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 message to be hashed (Ctrl-C to exit): &quot;</span></div>
<div class="line"><span class="lineno"> 356</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 357</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/getline.html">std::getline</a>(<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a>, input);</div>
<div class="line"><span class="lineno"> 358</span> <span class="keywordtype">void</span>* sig = <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(input);</div>
<div class="line"><span class="lineno"> 359</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;Hash is: &quot;</span> &lt;&lt; <a class="code hl_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 360</span> </div>
<div class="line"><span class="lineno"> 361</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
<div class="line"><span class="lineno"> 362</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;Want to enter another message? (y/n) &quot;</span>;</div>
<div class="line"><span class="lineno"> 363</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/getline.html">std::getline</a>(<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a>, input);</div>
<div class="line"><span class="lineno"> 364</span> <span class="keywordflow">if</span> (input.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html">compare</a>(<span class="stringliteral">&quot;y&quot;</span>) == 0) {</div>
<div class="line"><span class="lineno"> 365</span> <span class="keywordflow">break</span>;</div>
<div class="line"><span class="lineno"> 366</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (input.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html">compare</a>(<span class="stringliteral">&quot;n&quot;</span>) == 0) {</div>
<div class="line"><span class="lineno"> 367</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 368</span> }</div>
<div class="line"><span class="lineno"> 369</span> }</div>
<div class="line"><span class="lineno"> 370</span> }</div>
<div class="line"><span class="lineno"> 371</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="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="acompare_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html">std::string::compare</a></div><div class="ttdeci">T compare(T... args)</div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="agetline_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/getline.html">std::getline</a></div><div class="ttdeci">T getline(T... args)</div></div>
<div class="ttc" id="amd5_8cpp_html_a88705fab5f92adf3427b4cf76ff33edb"><div class="ttname"><a href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a></div><div class="ttdeci">void * hash(const std::string &amp;message)</div><div class="ttdoc">Converts the string to bytestring and calls the main algorithm.</div><div class="ttdef"><b>Definition</b> md5.cpp:287</div></div>
<div class="ttc" id="amd5_8cpp_html_aaee69c6136a841043f956de32116e348"><div class="ttname"><a href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a></div><div class="ttdeci">std::string sig2hex(void *sig)</div><div class="ttdoc">Transforms the 128-bit MD5 signature into a 32 char hex string.</div><div class="ttdef"><b>Definition</b> md5.cpp:122</div></div>
<div class="ttc" id="amd5_8cpp_html_a88705fab5f92adf3427b4cf76ff33edb"><div class="ttname"><a href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a></div><div class="ttdeci">void * hash(const std::string &amp;message)</div><div class="ttdoc">Converts the string to bytestring and calls the main algorithm.</div><div class="ttdef"><b>Definition</b> md5.cpp:288</div></div>
<div class="ttc" id="amd5_8cpp_html_aaee69c6136a841043f956de32116e348"><div class="ttname"><a href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a></div><div class="ttdeci">std::string sig2hex(void *sig)</div><div class="ttdoc">Transforms the 128-bit MD5 signature into a 32 char hex string.</div><div class="ttdef"><b>Definition</b> md5.cpp:123</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -491,14 +492,14 @@ Here is the call graph for this function:</div>
<dl class="section return"><dt>Returns</dt><dd>true IF integers are detected to work as big-endian </dd>
<dd>
false IF integers are detected to work as little-endian </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 76</span> {</div>
<div class="line"><span class="lineno"> 77</span> <span class="keyword">union </span>{</div>
<div class="line"><span class="lineno"> 78</span> uint32_t i;</div>
<div class="line"><span class="lineno"> 79</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;char, 4&gt;</a> c;</div>
<div class="line"><span class="lineno"> 80</span> } bint = {0x01020304};</div>
<div class="line"><span class="lineno"> 81</span> </div>
<div class="line"><span class="lineno"> 82</span> <span class="keywordflow">return</span> bint.c[0] == 1;</div>
<div class="line"><span class="lineno"> 83</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 77</span> {</div>
<div class="line"><span class="lineno"> 78</span> <span class="keyword">union </span>{</div>
<div class="line"><span class="lineno"> 79</span> uint32_t i;</div>
<div class="line"><span class="lineno"> 80</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;char, 4&gt;</a> c;</div>
<div class="line"><span class="lineno"> 81</span> } bint = {0x01020304};</div>
<div class="line"><span class="lineno"> 82</span> </div>
<div class="line"><span class="lineno"> 83</span> <span class="keywordflow">return</span> bint.c[0] == 1;</div>
<div class="line"><span class="lineno"> 84</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -535,9 +536,9 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint32_t The rotated integer </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 66</span> {</div>
<div class="line"><span class="lineno"> 67</span> <span class="keywordflow">return</span> (n &lt;&lt; rotate) | (n &gt;&gt; (32 - <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/rotate.html">rotate</a>));</div>
<div class="line"><span class="lineno"> 68</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 67</span> {</div>
<div class="line"><span class="lineno"> 68</span> <span class="keywordflow">return</span> (n &lt;&lt; rotate) | (n &gt;&gt; (32 - <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/rotate.html">rotate</a>));</div>
<div class="line"><span class="lineno"> 69</span>}</div>
<div class="ttc" id="arotate_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/rotate.html">std::rotate</a></div><div class="ttdeci">T rotate(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -564,16 +565,16 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 376</span> {</div>
<div class="line"><span class="lineno"> 377</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 378</span> </div>
<div class="line"><span class="lineno"> 379</span> <span class="comment">// Launch interactive mode where user can input messages and see</span></div>
<div class="line"><span class="lineno"> 380</span> <span class="comment">// their hash</span></div>
<div class="line"><span class="lineno"> 381</span> <a class="code hl_function" href="#ac9e1a11f44135b890dd10a00e73b5661">interactive</a>();</div>
<div class="line"><span class="lineno"> 382</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 383</span>}</div>
<div class="ttc" id="amd5_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations of well-known MD5 hashes.</div><div class="ttdef"><b>Definition</b> md5.cpp:297</div></div>
<div class="ttc" id="amd5_8cpp_html_ac9e1a11f44135b890dd10a00e73b5661"><div class="ttname"><a href="#ac9e1a11f44135b890dd10a00e73b5661">interactive</a></div><div class="ttdeci">static void interactive()</div><div class="ttdoc">Puts user in a loop where inputs can be given and MD5 hash will be computed and printed.</div><div class="ttdef"><b>Definition</b> md5.cpp:351</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 377</span> {</div>
<div class="line"><span class="lineno"> 378</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 379</span> </div>
<div class="line"><span class="lineno"> 380</span> <span class="comment">// Launch interactive mode where user can input messages and see</span></div>
<div class="line"><span class="lineno"> 381</span> <span class="comment">// their hash</span></div>
<div class="line"><span class="lineno"> 382</span> <a class="code hl_function" href="#ac9e1a11f44135b890dd10a00e73b5661">interactive</a>();</div>
<div class="line"><span class="lineno"> 383</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 384</span>}</div>
<div class="ttc" id="amd5_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations of well-known MD5 hashes.</div><div class="ttdef"><b>Definition</b> md5.cpp:298</div></div>
<div class="ttc" id="amd5_8cpp_html_ac9e1a11f44135b890dd10a00e73b5661"><div class="ttname"><a href="#ac9e1a11f44135b890dd10a00e73b5661">interactive</a></div><div class="ttdeci">static void interactive()</div><div class="ttdoc">Puts user in a loop where inputs can be given and MD5 hash will be computed and printed.</div><div class="ttdef"><b>Definition</b> md5.cpp:352</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -605,16 +606,16 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> The hex signature </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 122</span> {</div>
<div class="line"><span class="lineno"> 123</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* hexChars = <span class="stringliteral">&quot;0123456789abcdef&quot;</span>;</div>
<div class="line"><span class="lineno"> 124</span> <span class="keyword">auto</span>* intsig = <span class="keyword">static_cast&lt;</span>uint8_t*<span class="keyword">&gt;</span>(sig);</div>
<div class="line"><span class="lineno"> 125</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/hex.html">hex</a> = <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><span class="lineno"> 126</span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 16; i++) {</div>
<div class="line"><span class="lineno"> 127</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/hex.html">hex</a>.push_back(hexChars[(intsig[i] &gt;&gt; 4) &amp; 0xF]);</div>
<div class="line"><span class="lineno"> 128</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/hex.html">hex</a>.push_back(hexChars[(intsig[i]) &amp; 0xF]);</div>
<div class="line"><span class="lineno"> 129</span> }</div>
<div class="line"><span class="lineno"> 130</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/hex.html">hex</a>;</div>
<div class="line"><span class="lineno"> 131</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 123</span> {</div>
<div class="line"><span class="lineno"> 124</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* hexChars = <span class="stringliteral">&quot;0123456789abcdef&quot;</span>;</div>
<div class="line"><span class="lineno"> 125</span> <span class="keyword">auto</span>* intsig = <span class="keyword">static_cast&lt;</span>uint8_t*<span class="keyword">&gt;</span>(sig);</div>
<div class="line"><span class="lineno"> 126</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/hex.html">hex</a> = <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><span class="lineno"> 127</span> <span class="keywordflow">for</span> (uint8_t i = 0; i &lt; 16; i++) {</div>
<div class="line"><span class="lineno"> 128</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/hex.html">hex</a>.push_back(hexChars[(intsig[i] &gt;&gt; 4) &amp; 0xF]);</div>
<div class="line"><span class="lineno"> 129</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/hex.html">hex</a>.push_back(hexChars[(intsig[i]) &amp; 0xF]);</div>
<div class="line"><span class="lineno"> 130</span> }</div>
<div class="line"><span class="lineno"> 131</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/hex.html">hex</a>;</div>
<div class="line"><span class="lineno"> 132</span>}</div>
<div class="ttc" id="ahex_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/hex.html">std::hex</a></div><div class="ttdeci">T hex(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -649,54 +650,54 @@ Here is the call graph for this function:</div>
<p>Self-test implementations of well-known <a class="el" href="../../dd/d43/namespace_m_d5.html" title="Functions for the MD5 algorithm implementation.">MD5</a> hashes. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 297</span> {</div>
<div class="line"><span class="lineno"> 298</span> <span class="comment">// Hashes empty string and stores signature</span></div>
<div class="line"><span class="lineno"> 299</span> <span class="keywordtype">void</span>* sig = <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(<span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><span class="lineno"> 300</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;Hashing empty string&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 301</span> <span class="comment">// Prints signature hex representation</span></div>
<div class="line"><span class="lineno"> 302</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_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 303</span> <span class="comment">// Test with cassert whether sig is correct from the expected value</span></div>
<div class="line"><span class="lineno"> 304</span> assert(hashing::md5::sig2hex(sig).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
<div class="line"><span class="lineno"> 305</span> <span class="stringliteral">&quot;d41d8cd98f00b204e9800998ecf8427e&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 306</span> </div>
<div class="line"><span class="lineno"> 307</span> <span class="comment">// Hashes &quot;The quick brown fox jumps over the lazy dog&quot; and stores signature</span></div>
<div class="line"><span class="lineno"> 308</span> <span class="keywordtype">void</span>* sig2 =</div>
<div class="line"><span class="lineno"> 309</span> <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(<span class="stringliteral">&quot;The quick brown fox jumps over the lazy dog&quot;</span>);</div>
<div class="line"><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; <span class="stringliteral">&quot;Hashing The quick brown fox jumps over the lazy dog&quot;</span></div>
<div class="line"><span class="lineno"> 311</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 312</span> <span class="comment">// Prints signature hex representation</span></div>
<div class="line"><span class="lineno"> 313</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_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig2) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 314</span> <span class="comment">// Test with cassert whether sig is correct from the expected value</span></div>
<div class="line"><span class="lineno"> 315</span> assert(hashing::md5::sig2hex(sig2).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
<div class="line"><span class="lineno"> 316</span> <span class="stringliteral">&quot;9e107d9d372bb6826bd81d3542a419d6&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 317</span> </div>
<div class="line"><span class="lineno"> 318</span> <span class="comment">// Hashes &quot;The quick brown fox jumps over the lazy dog.&quot; (notice the</span></div>
<div class="line"><span class="lineno"> 319</span> <span class="comment">// additional period) and stores signature</span></div>
<div class="line"><span class="lineno"> 320</span> <span class="keywordtype">void</span>* sig3 =</div>
<div class="line"><span class="lineno"> 321</span> <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(<span class="stringliteral">&quot;The quick brown fox jumps over the lazy dog.&quot;</span>);</div>
<div class="line"><span class="lineno"> 322</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;Hashing &quot;</span></div>
<div class="line"><span class="lineno"> 323</span> <span class="stringliteral">&quot;The quick brown fox jumps over the lazy dog.&quot;</span></div>
<div class="line"><span class="lineno"> 324</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 325</span> <span class="comment">// Prints signature hex representation</span></div>
<div class="line"><span class="lineno"> 326</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_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig3) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 327</span> <span class="comment">// Test with cassert whether sig is correct from the expected value</span></div>
<div class="line"><span class="lineno"> 328</span> assert(hashing::md5::sig2hex(sig3).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
<div class="line"><span class="lineno"> 329</span> <span class="stringliteral">&quot;e4d909c290d0fb1ca068ffaddf22cbd0&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 330</span> </div>
<div class="line"><span class="lineno"> 331</span> <span class="comment">// Hashes &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&quot;</span></div>
<div class="line"><span class="lineno"> 332</span> <span class="comment">// and stores signature</span></div>
<div class="line"><span class="lineno"> 333</span> <span class="keywordtype">void</span>* sig4 = <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(</div>
<div class="line"><span class="lineno"> 334</span> <span class="stringliteral">&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&quot;</span>);</div>
<div class="line"><span class="lineno"> 335</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div>
<div class="line"><span class="lineno"> 336</span> &lt;&lt; <span class="stringliteral">&quot;Hashing &quot;</span></div>
<div class="line"><span class="lineno"> 337</span> <span class="stringliteral">&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&quot;</span></div>
<div class="line"><span class="lineno"> 338</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 339</span> <span class="comment">// Prints signature hex representation</span></div>
<div class="line"><span class="lineno"> 340</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_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig4) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 341</span> <span class="comment">// Test with cassert whether sig is correct from the expected value</span></div>
<div class="line"><span class="lineno"> 342</span> assert(hashing::md5::sig2hex(sig4).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
<div class="line"><span class="lineno"> 343</span> <span class="stringliteral">&quot;d174ab98d277d9f5a5611c2c9f419d9f&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 344</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 298</span> {</div>
<div class="line"><span class="lineno"> 299</span> <span class="comment">// Hashes empty string and stores signature</span></div>
<div class="line"><span class="lineno"> 300</span> <span class="keywordtype">void</span>* sig = <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(<span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><span class="lineno"> 301</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;Hashing empty string&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 302</span> <span class="comment">// Prints signature hex representation</span></div>
<div class="line"><span class="lineno"> 303</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_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 304</span> <span class="comment">// Test with cassert whether sig is correct from the expected value</span></div>
<div class="line"><span class="lineno"> 305</span> assert(hashing::md5::sig2hex(sig).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
<div class="line"><span class="lineno"> 306</span> <span class="stringliteral">&quot;d41d8cd98f00b204e9800998ecf8427e&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 307</span> </div>
<div class="line"><span class="lineno"> 308</span> <span class="comment">// Hashes &quot;The quick brown fox jumps over the lazy dog&quot; and stores signature</span></div>
<div class="line"><span class="lineno"> 309</span> <span class="keywordtype">void</span>* sig2 =</div>
<div class="line"><span class="lineno"> 310</span> <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(<span class="stringliteral">&quot;The quick brown fox jumps over the lazy dog&quot;</span>);</div>
<div class="line"><span class="lineno"> 311</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;Hashing The quick brown fox jumps over the lazy dog&quot;</span></div>
<div class="line"><span class="lineno"> 312</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 313</span> <span class="comment">// Prints signature hex representation</span></div>
<div class="line"><span class="lineno"> 314</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_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig2) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 315</span> <span class="comment">// Test with cassert whether sig is correct from the expected value</span></div>
<div class="line"><span class="lineno"> 316</span> assert(hashing::md5::sig2hex(sig2).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
<div class="line"><span class="lineno"> 317</span> <span class="stringliteral">&quot;9e107d9d372bb6826bd81d3542a419d6&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 318</span> </div>
<div class="line"><span class="lineno"> 319</span> <span class="comment">// Hashes &quot;The quick brown fox jumps over the lazy dog.&quot; (notice the</span></div>
<div class="line"><span class="lineno"> 320</span> <span class="comment">// additional period) and stores signature</span></div>
<div class="line"><span class="lineno"> 321</span> <span class="keywordtype">void</span>* sig3 =</div>
<div class="line"><span class="lineno"> 322</span> <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(<span class="stringliteral">&quot;The quick brown fox jumps over the lazy dog.&quot;</span>);</div>
<div class="line"><span class="lineno"> 323</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;Hashing &quot;</span></div>
<div class="line"><span class="lineno"> 324</span> <span class="stringliteral">&quot;The quick brown fox jumps over the lazy dog.&quot;</span></div>
<div class="line"><span class="lineno"> 325</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 326</span> <span class="comment">// Prints signature hex representation</span></div>
<div class="line"><span class="lineno"> 327</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_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig3) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 328</span> <span class="comment">// Test with cassert whether sig is correct from the expected value</span></div>
<div class="line"><span class="lineno"> 329</span> assert(hashing::md5::sig2hex(sig3).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
<div class="line"><span class="lineno"> 330</span> <span class="stringliteral">&quot;e4d909c290d0fb1ca068ffaddf22cbd0&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 331</span> </div>
<div class="line"><span class="lineno"> 332</span> <span class="comment">// Hashes &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&quot;</span></div>
<div class="line"><span class="lineno"> 333</span> <span class="comment">// and stores signature</span></div>
<div class="line"><span class="lineno"> 334</span> <span class="keywordtype">void</span>* sig4 = <a class="code hl_function" href="#a88705fab5f92adf3427b4cf76ff33edb">hashing::md5::hash</a>(</div>
<div class="line"><span class="lineno"> 335</span> <span class="stringliteral">&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&quot;</span>);</div>
<div class="line"><span class="lineno"> 336</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div>
<div class="line"><span class="lineno"> 337</span> &lt;&lt; <span class="stringliteral">&quot;Hashing &quot;</span></div>
<div class="line"><span class="lineno"> 338</span> <span class="stringliteral">&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&quot;</span></div>
<div class="line"><span class="lineno"> 339</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 340</span> <span class="comment">// Prints signature hex representation</span></div>
<div class="line"><span class="lineno"> 341</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_function" href="#aaee69c6136a841043f956de32116e348">hashing::md5::sig2hex</a>(sig4) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 342</span> <span class="comment">// Test with cassert whether sig is correct from the expected value</span></div>
<div class="line"><span class="lineno"> 343</span> assert(hashing::md5::sig2hex(sig4).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
<div class="line"><span class="lineno"> 344</span> <span class="stringliteral">&quot;d174ab98d277d9f5a5611c2c9f419d9f&quot;</span>) == 0);</div>
<div class="line"><span class="lineno"> 345</span>}</div>
<div class="ttc" id="ashell__sort2_8cpp_html_a7eb77daed2cf1513f6d68c47a1c2db1c"><div class="ttname"><a href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a></div><div class="ttdeci">int compare(const void *a, const void *b)</div><div class="ttdef"><b>Definition</b> shell_sort2.cpp:87</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -729,15 +730,15 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint32_t param n with binary representation as little-endian </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 89</span> {</div>
<div class="line"><span class="lineno"> 90</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="#af8e96bde0183c4b0a7ff04668f11e446">isBigEndian</a>()) {</div>
<div class="line"><span class="lineno"> 91</span> <span class="keywordflow">return</span> ((n &lt;&lt; 24) &amp; 0xFF000000) | ((n &lt;&lt; 8) &amp; 0x00FF0000) |</div>
<div class="line"><span class="lineno"> 92</span> ((n &gt;&gt; 8) &amp; 0x0000FF00) | ((n &gt;&gt; 24) &amp; 0x000000FF);</div>
<div class="line"><span class="lineno"> 93</span> }</div>
<div class="line"><span class="lineno"> 94</span> <span class="comment">// Machine works on little endian, no need to change anything</span></div>
<div class="line"><span class="lineno"> 95</span> <span class="keywordflow">return</span> n;</div>
<div class="line"><span class="lineno"> 96</span>}</div>
<div class="ttc" id="amd5_8cpp_html_af8e96bde0183c4b0a7ff04668f11e446"><div class="ttname"><a href="#af8e96bde0183c4b0a7ff04668f11e446">hashing::md5::isBigEndian</a></div><div class="ttdeci">bool isBigEndian()</div><div class="ttdoc">Checks whether integers are stored as big endian or not.</div><div class="ttdef"><b>Definition</b> md5.cpp:76</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 90</span> {</div>
<div class="line"><span class="lineno"> 91</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="#af8e96bde0183c4b0a7ff04668f11e446">isBigEndian</a>()) {</div>
<div class="line"><span class="lineno"> 92</span> <span class="keywordflow">return</span> ((n &lt;&lt; 24) &amp; 0xFF000000) | ((n &lt;&lt; 8) &amp; 0x00FF0000) |</div>
<div class="line"><span class="lineno"> 93</span> ((n &gt;&gt; 8) &amp; 0x0000FF00) | ((n &gt;&gt; 24) &amp; 0x000000FF);</div>
<div class="line"><span class="lineno"> 94</span> }</div>
<div class="line"><span class="lineno"> 95</span> <span class="comment">// Machine works on little endian, no need to change anything</span></div>
<div class="line"><span class="lineno"> 96</span> <span class="keywordflow">return</span> n;</div>
<div class="line"><span class="lineno"> 97</span>}</div>
<div class="ttc" id="amd5_8cpp_html_af8e96bde0183c4b0a7ff04668f11e446"><div class="ttname"><a href="#af8e96bde0183c4b0a7ff04668f11e446">hashing::md5::isBigEndian</a></div><div class="ttdeci">bool isBigEndian()</div><div class="ttdoc">Checks whether integers are stored as big endian or not.</div><div class="ttdef"><b>Definition</b> md5.cpp:77</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -769,21 +770,21 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint64_t param n with binary representation as little-endian </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 102</span> {</div>
<div class="line"><span class="lineno"> 103</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="#af8e96bde0183c4b0a7ff04668f11e446">isBigEndian</a>()) {</div>
<div class="line"><span class="lineno"> 104</span> <span class="keywordflow">return</span> ((n &lt;&lt; 56) &amp; 0xFF00000000000000) |</div>
<div class="line"><span class="lineno"> 105</span> ((n &lt;&lt; 40) &amp; 0x00FF000000000000) |</div>
<div class="line"><span class="lineno"> 106</span> ((n &lt;&lt; 24) &amp; 0x0000FF0000000000) |</div>
<div class="line"><span class="lineno"> 107</span> ((n &lt;&lt; 8) &amp; 0x000000FF00000000) |</div>
<div class="line"><span class="lineno"> 108</span> ((n &gt;&gt; 8) &amp; 0x00000000FF000000) |</div>
<div class="line"><span class="lineno"> 109</span> ((n &gt;&gt; 24) &amp; 0x0000000000FF0000) |</div>
<div class="line"><span class="lineno"> 110</span> ((n &gt;&gt; 40) &amp; 0x000000000000FF00) |</div>
<div class="line"><span class="lineno"> 111</span> ((n &gt;&gt; 56) &amp; 0x00000000000000FF);</div>
<div class="line"><span class="lineno"> 112</span> ;</div>
<div class="line"><span class="lineno"> 113</span> }</div>
<div class="line"><span class="lineno"> 114</span> <span class="comment">// Machine works on little endian, no need to change anything</span></div>
<div class="line"><span class="lineno"> 115</span> <span class="keywordflow">return</span> n;</div>
<div class="line"><span class="lineno"> 116</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 103</span> {</div>
<div class="line"><span class="lineno"> 104</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="#af8e96bde0183c4b0a7ff04668f11e446">isBigEndian</a>()) {</div>
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">return</span> ((n &lt;&lt; 56) &amp; 0xFF00000000000000) |</div>
<div class="line"><span class="lineno"> 106</span> ((n &lt;&lt; 40) &amp; 0x00FF000000000000) |</div>
<div class="line"><span class="lineno"> 107</span> ((n &lt;&lt; 24) &amp; 0x0000FF0000000000) |</div>
<div class="line"><span class="lineno"> 108</span> ((n &lt;&lt; 8) &amp; 0x000000FF00000000) |</div>
<div class="line"><span class="lineno"> 109</span> ((n &gt;&gt; 8) &amp; 0x00000000FF000000) |</div>
<div class="line"><span class="lineno"> 110</span> ((n &gt;&gt; 24) &amp; 0x0000000000FF0000) |</div>
<div class="line"><span class="lineno"> 111</span> ((n &gt;&gt; 40) &amp; 0x000000000000FF00) |</div>
<div class="line"><span class="lineno"> 112</span> ((n &gt;&gt; 56) &amp; 0x00000000000000FF);</div>
<div class="line"><span class="lineno"> 113</span> ;</div>
<div class="line"><span class="lineno"> 114</span> }</div>
<div class="line"><span class="lineno"> 115</span> <span class="comment">// Machine works on little endian, no need to change anything</span></div>
<div class="line"><span class="lineno"> 116</span> <span class="keywordflow">return</span> n;</div>
<div class="line"><span class="lineno"> 117</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">

View File

@@ -208,27 +208,30 @@ template&lt;uint64_t N&gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>index of element in the list if present else -1 </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 46</span> {</div>
<div class="line"><span class="lineno"> 47</span> <span class="comment">// If both pointer cross each other means no element present in the list which is equal to the val</span></div>
<div class="line"><span class="lineno"> 48</span> <span class="keywordflow">if</span> (last &lt; first) {</div>
<div class="line"><span class="lineno"> 49</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><span class="lineno"> 50</span> }</div>
<div class="line"><span class="lineno"> 51</span> uint64_t mid = (first + last) / 2;</div>
<div class="line"><span class="lineno"> 52</span> <span class="comment">// check whether current mid pointer value is equal to element or not</span></div>
<div class="line"><span class="lineno"> 53</span> <span class="keywordflow">if</span> (dataArr[mid] == val)</div>
<div class="line"><span class="lineno"> 54</span> <span class="keywordflow">return</span> mid;</div>
<div class="line"><span class="lineno"> 55</span> <span class="comment">// if current mid value is greater than element we have to search in first half</span></div>
<div class="line"><span class="lineno"> 56</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val &lt; dataArr[mid])</div>
<div class="line"><span class="lineno"> 57</span> <span class="keywordflow">return</span> (<a class="code hl_function" href="#a412bdb3910181f3c384d86aee7e217cf">BinarySearch</a>(dataArr, first, mid - 1, val));</div>
<div class="line"><span class="lineno"> 58</span> <span class="comment">// if current mid value is greater than element we have to search in second half</span></div>
<div class="line"><span class="lineno"> 59</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val &gt; dataArr[mid])</div>
<div class="line"><span class="lineno"> 60</span> <span class="keywordflow">return</span> (<a class="code hl_function" href="#a412bdb3910181f3c384d86aee7e217cf">BinarySearch</a>(dataArr, mid + 1, last, val));</div>
<div class="line"><span class="lineno"> 61</span> </div>
<div class="line"><span class="lineno"> 62</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; __func__ &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; __LINE__ &lt;&lt; <span class="stringliteral">&quot;: Undefined condition\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 63</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><span class="lineno"> 64</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 51</span> {</div>
<div class="line"><span class="lineno"> 52</span> <span class="comment">// If both pointer cross each other means no element present in the list</span></div>
<div class="line"><span class="lineno"> 53</span> <span class="comment">// which is equal to the val</span></div>
<div class="line"><span class="lineno"> 54</span> <span class="keywordflow">if</span> (last &lt; first) {</div>
<div class="line"><span class="lineno"> 55</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><span class="lineno"> 56</span> }</div>
<div class="line"><span class="lineno"> 57</span> uint64_t mid = (first + last) / 2;</div>
<div class="line"><span class="lineno"> 58</span> <span class="comment">// check whether current mid pointer value is equal to element or not</span></div>
<div class="line"><span class="lineno"> 59</span> <span class="keywordflow">if</span> (dataArr[mid] == val)</div>
<div class="line"><span class="lineno"> 60</span> <span class="keywordflow">return</span> mid;</div>
<div class="line"><span class="lineno"> 61</span> <span class="comment">// if current mid value is greater than element we have to search in</span></div>
<div class="line"><span class="lineno"> 62</span> <span class="comment">// first half</span></div>
<div class="line"><span class="lineno"> 63</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val &lt; dataArr[mid])</div>
<div class="line"><span class="lineno"> 64</span> <span class="keywordflow">return</span> (<a class="code hl_function" href="#a412bdb3910181f3c384d86aee7e217cf">BinarySearch</a>(dataArr, first, mid - 1, val));</div>
<div class="line"><span class="lineno"> 65</span> <span class="comment">// if current mid value is greater than element we have to search in</span></div>
<div class="line"><span class="lineno"> 66</span> <span class="comment">// second half</span></div>
<div class="line"><span class="lineno"> 67</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val &gt; dataArr[mid])</div>
<div class="line"><span class="lineno"> 68</span> <span class="keywordflow">return</span> (<a class="code hl_function" href="#a412bdb3910181f3c384d86aee7e217cf">BinarySearch</a>(dataArr, mid + 1, last, val));</div>
<div class="line"><span class="lineno"> 69</span> </div>
<div class="line"><span class="lineno"> 70</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> &lt;&lt; __func__ &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; __LINE__ &lt;&lt; <span class="stringliteral">&quot;: Undefined condition\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 71</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><span class="lineno"> 72</span> }</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a></div></div>
<div class="ttc" id="astructdata__structures_1_1list__array_1_1list_html_a412bdb3910181f3c384d86aee7e217cf"><div class="ttname"><a href="#a412bdb3910181f3c384d86aee7e217cf">data_structures::list_array::list::BinarySearch</a></div><div class="ttdeci">uint64_t BinarySearch(const std::array&lt; uint64_t, N &gt; &amp;dataArr, const uint64_t &amp;first, const uint64_t &amp;last, const uint64_t &amp;val)</div><div class="ttdoc">Search an element in the list using binarySearch.</div><div class="ttdef"><b>Definition</b> list_array.cpp:45</div></div>
<div class="ttc" id="astructdata__structures_1_1list__array_1_1list_html_a412bdb3910181f3c384d86aee7e217cf"><div class="ttname"><a href="#a412bdb3910181f3c384d86aee7e217cf">data_structures::list_array::list::BinarySearch</a></div><div class="ttdeci">uint64_t BinarySearch(const std::array&lt; uint64_t, N &gt; &amp;dataArr, const uint64_t &amp;first, const uint64_t &amp;last, const uint64_t &amp;val)</div><div class="ttdoc">Search an element in the list using binarySearch.</div><div class="ttdef"><b>Definition</b> list_array.cpp:49</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -270,39 +273,40 @@ template&lt;uint64_t N&gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 133</span> {</div>
<div class="line"><span class="lineno"> 134</span> <span class="comment">// overflow check</span></div>
<div class="line"><span class="lineno"> 135</span> <span class="keywordflow">if</span> (top == N) {</div>
<div class="line"><span class="lineno"> 136</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;\nOverflow&quot;</span>;</div>
<div class="line"><span class="lineno"> 137</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 138</span> }</div>
<div class="line"><span class="lineno"> 139</span> <span class="comment">// if list is not sorted, insert at the last</span></div>
<div class="line"><span class="lineno"> 140</span> <span class="comment">// otherwise place it to correct position</span></div>
<div class="line"><span class="lineno"> 141</span> <span class="keywordflow">if</span> (!isSorted) {</div>
<div class="line"><span class="lineno"> 142</span> data[top] = val;</div>
<div class="line"><span class="lineno"> 143</span> top++;</div>
<div class="line"><span class="lineno"> 144</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 145</span> uint64_t pos = 0; <span class="comment">// Initialize the index variable</span></div>
<div class="line"><span class="lineno"> 146</span> <span class="comment">// Going through each element and find correct position for element</span></div>
<div class="line"><span class="lineno"> 147</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; top - 1; i++) {</div>
<div class="line"><span class="lineno"> 148</span> <span class="comment">// check for the correct position</span></div>
<div class="line"><span class="lineno"> 149</span> <span class="keywordflow">if</span> (data[i] &lt;= val &amp;&amp; val &lt;= data[i + 1]) {</div>
<div class="line"><span class="lineno"> 150</span> pos = i + 1; <span class="comment">// assign correct pos to the index var</span></div>
<div class="line"><span class="lineno"> 151</span> <span class="keywordflow">break</span>; <span class="comment">// to get out from the loop</span></div>
<div class="line"><span class="lineno"> 152</span> }</div>
<div class="line"><span class="lineno"> 153</span> }</div>
<div class="line"><span class="lineno"> 154</span> <span class="comment">// if all elements are smaller than the element</span></div>
<div class="line"><span class="lineno"> 155</span> <span class="keywordflow">if</span> (pos == 0) {</div>
<div class="line"><span class="lineno"> 156</span> pos = top - 1;</div>
<div class="line"><span class="lineno"> 157</span> }</div>
<div class="line"><span class="lineno"> 158</span> <span class="comment">// shift all element to make a room for new element</span></div>
<div class="line"><span class="lineno"> 159</span> <span class="keywordflow">for</span> (uint64_t i = top; i &gt; pos; i--) {</div>
<div class="line"><span class="lineno"> 160</span> data[i] = data[i - 1];</div>
<div class="line"><span class="lineno"> 161</span> }</div>
<div class="line"><span class="lineno"> 162</span> top++; <span class="comment">// Increment the value of top.</span></div>
<div class="line"><span class="lineno"> 163</span> data[pos] = val; <span class="comment">// Assign the value to the correct index in the array</span></div>
<div class="line"><span class="lineno"> 164</span> }</div>
<div class="line"><span class="lineno"> 165</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 143</span> {</div>
<div class="line"><span class="lineno"> 144</span> <span class="comment">// overflow check</span></div>
<div class="line"><span class="lineno"> 145</span> <span class="keywordflow">if</span> (top == N) {</div>
<div class="line"><span class="lineno"> 146</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;\nOverflow&quot;</span>;</div>
<div class="line"><span class="lineno"> 147</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 148</span> }</div>
<div class="line"><span class="lineno"> 149</span> <span class="comment">// if list is not sorted, insert at the last</span></div>
<div class="line"><span class="lineno"> 150</span> <span class="comment">// otherwise place it to correct position</span></div>
<div class="line"><span class="lineno"> 151</span> <span class="keywordflow">if</span> (!isSorted) {</div>
<div class="line"><span class="lineno"> 152</span> data[top] = val;</div>
<div class="line"><span class="lineno"> 153</span> top++;</div>
<div class="line"><span class="lineno"> 154</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 155</span> uint64_t pos = 0; <span class="comment">// Initialize the index variable</span></div>
<div class="line"><span class="lineno"> 156</span> <span class="comment">// Going through each element and find correct position for element</span></div>
<div class="line"><span class="lineno"> 157</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; top - 1; i++) {</div>
<div class="line"><span class="lineno"> 158</span> <span class="comment">// check for the correct position</span></div>
<div class="line"><span class="lineno"> 159</span> <span class="keywordflow">if</span> (data[i] &lt;= val &amp;&amp; val &lt;= data[i + 1]) {</div>
<div class="line"><span class="lineno"> 160</span> pos = i + 1; <span class="comment">// assign correct pos to the index var</span></div>
<div class="line"><span class="lineno"> 161</span> <span class="keywordflow">break</span>; <span class="comment">// to get out from the loop</span></div>
<div class="line"><span class="lineno"> 162</span> }</div>
<div class="line"><span class="lineno"> 163</span> }</div>
<div class="line"><span class="lineno"> 164</span> <span class="comment">// if all elements are smaller than the element</span></div>
<div class="line"><span class="lineno"> 165</span> <span class="keywordflow">if</span> (pos == 0) {</div>
<div class="line"><span class="lineno"> 166</span> pos = top - 1;</div>
<div class="line"><span class="lineno"> 167</span> }</div>
<div class="line"><span class="lineno"> 168</span> <span class="comment">// shift all element to make a room for new element</span></div>
<div class="line"><span class="lineno"> 169</span> <span class="keywordflow">for</span> (uint64_t i = top; i &gt; pos; i--) {</div>
<div class="line"><span class="lineno"> 170</span> data[i] = data[i - 1];</div>
<div class="line"><span class="lineno"> 171</span> }</div>
<div class="line"><span class="lineno"> 172</span> top++; <span class="comment">// Increment the value of top.</span></div>
<div class="line"><span class="lineno"> 173</span> data[pos] =</div>
<div class="line"><span class="lineno"> 174</span> val; <span class="comment">// Assign the value to the correct index in the array</span></div>
<div class="line"><span class="lineno"> 175</span> }</div>
<div class="line"><span class="lineno"> 176</span> }</div>
</div><!-- fragment -->
</div>
</div>
@@ -344,16 +348,16 @@ template&lt;uint64_t N&gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>index of element in the list if present else -1 </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 72</span> {</div>
<div class="line"><span class="lineno"> 73</span> <span class="comment">// Going through each element in the list</span></div>
<div class="line"><span class="lineno"> 74</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; top; i++) {</div>
<div class="line"><span class="lineno"> 75</span> <span class="keywordflow">if</span> (dataArr[i] == val) {</div>
<div class="line"><span class="lineno"> 76</span> <span class="keywordflow">return</span> i; <span class="comment">// element found at ith index</span></div>
<div class="line"><span class="lineno"> 77</span> }</div>
<div class="line"><span class="lineno"> 78</span> }</div>
<div class="line"><span class="lineno"> 79</span> <span class="comment">// element is not present in the list</span></div>
<div class="line"><span class="lineno"> 80</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><span class="lineno"> 81</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 81</span> {</div>
<div class="line"><span class="lineno"> 82</span> <span class="comment">// Going through each element in the list</span></div>
<div class="line"><span class="lineno"> 83</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; top; i++) {</div>
<div class="line"><span class="lineno"> 84</span> <span class="keywordflow">if</span> (dataArr[i] == val) {</div>
<div class="line"><span class="lineno"> 85</span> <span class="keywordflow">return</span> i; <span class="comment">// element found at ith index</span></div>
<div class="line"><span class="lineno"> 86</span> }</div>
<div class="line"><span class="lineno"> 87</span> }</div>
<div class="line"><span class="lineno"> 88</span> <span class="comment">// element is not present in the list</span></div>
<div class="line"><span class="lineno"> 89</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><span class="lineno"> 90</span> }</div>
</div><!-- fragment -->
</div>
</div>
@@ -390,22 +394,23 @@ template&lt;uint64_t N&gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 172</span> {</div>
<div class="line"><span class="lineno"> 173</span> uint64_t pos = <a class="code hl_namespace" href="../../d9/dca/namespacesearch.html">search</a>(val); <span class="comment">// search the index of the value</span></div>
<div class="line"><span class="lineno"> 174</span> <span class="comment">// if search returns -1, element does not present in the list</span></div>
<div class="line"><span class="lineno"> 175</span> <span class="keywordflow">if</span> (pos == -1) {</div>
<div class="line"><span class="lineno"> 176</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;\n Element does not present in the list &quot;</span>;</div>
<div class="line"><span class="lineno"> 177</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 178</span> }</div>
<div class="line"><span class="lineno"> 179</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;\n&quot;</span> &lt;&lt; data[pos] &lt;&lt; <span class="stringliteral">&quot; deleted&quot;</span>; <span class="comment">// print the appropriate message</span></div>
<div class="line"><span class="lineno"> 180</span> <span class="comment">// shift all the element 1 left to fill vacant space</span></div>
<div class="line"><span class="lineno"> 181</span> <span class="keywordflow">for</span> (uint64_t i = pos; i &lt; top; i++) {</div>
<div class="line"><span class="lineno"> 182</span> <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[i] = <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[i + 1];</div>
<div class="line"><span class="lineno"> 183</span> }</div>
<div class="line"><span class="lineno"> 184</span> top--; <span class="comment">// decrement the top variable to maintain last index</span></div>
<div class="line"><span class="lineno"> 185</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 183</span> {</div>
<div class="line"><span class="lineno"> 184</span> uint64_t pos = <a class="code hl_namespace" href="../../d9/dca/namespacesearch.html">search</a>(val); <span class="comment">// search the index of the value</span></div>
<div class="line"><span class="lineno"> 185</span> <span class="comment">// if search returns -1, element does not present in the list</span></div>
<div class="line"><span class="lineno"> 186</span> <span class="keywordflow">if</span> (pos == -1) {</div>
<div class="line"><span class="lineno"> 187</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;\n Element does not present in the list &quot;</span>;</div>
<div class="line"><span class="lineno"> 188</span> <span class="keywordflow">return</span>;</div>
<div class="line"><span class="lineno"> 189</span> }</div>
<div class="line"><span class="lineno"> 190</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;\n&quot;</span></div>
<div class="line"><span class="lineno"> 191</span> &lt;&lt; data[pos] &lt;&lt; <span class="stringliteral">&quot; deleted&quot;</span>; <span class="comment">// print the appropriate message</span></div>
<div class="line"><span class="lineno"> 192</span> <span class="comment">// shift all the element 1 left to fill vacant space</span></div>
<div class="line"><span class="lineno"> 193</span> <span class="keywordflow">for</span> (uint64_t i = pos; i &lt; top; i++) {</div>
<div class="line"><span class="lineno"> 194</span> <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[i] = <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[i + 1];</div>
<div class="line"><span class="lineno"> 195</span> }</div>
<div class="line"><span class="lineno"> 196</span> top--; <span class="comment">// decrement the top variable to maintain last index</span></div>
<div class="line"><span class="lineno"> 197</span> }</div>
<div class="ttc" id="ahash__search_8cpp_html_a6e1a77282bc65ad359d753d25df23243"><div class="ttname"><a href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a></div><div class="ttdeci">int data[MAX]</div><div class="ttdoc">test data</div><div class="ttdef"><b>Definition</b> hash_search.cpp:24</div></div>
<div class="ttc" id="anamespacesearch_html"><div class="ttname"><a href="../../d9/dca/namespacesearch.html">search</a></div><div class="ttdoc">for std::vector</div><div class="ttdef"><b>Definition</b> binary_search.cpp:46</div></div>
<div class="ttc" id="anamespacesearch_html"><div class="ttname"><a href="../../d9/dca/namespacesearch.html">search</a></div><div class="ttdoc">for std::assert</div><div class="ttdef"><b>Definition</b> binary_search.cpp:47</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -433,25 +438,26 @@ template&lt;uint64_t N&gt; </div>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><span class="lineno"> 88</span> {</div>
<div class="line"><span class="lineno"> 89</span> uint64_t pos; <span class="comment">// pos variable to store index value of element.</span></div>
<div class="line"><span class="lineno"> 90</span> <span class="comment">// if list is sorted, binary search works efficiently else linear search is the only option</span></div>
<div class="line"><span class="lineno"> 91</span> <span class="keywordflow">if</span> (isSorted) {</div>
<div class="line"><span class="lineno"> 92</span> pos = <a class="code hl_function" href="#a412bdb3910181f3c384d86aee7e217cf">BinarySearch</a>(data, 0, top - 1, val);</div>
<div class="line"><span class="lineno"> 93</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 94</span> pos = <a class="code hl_function" href="#ad202ae68fe8d98082afa9dafea9e22b9">LinearSearch</a>(data, val);</div>
<div class="line"><span class="lineno"> 95</span> }</div>
<div class="line"><span class="lineno"> 96</span> <span class="comment">// if index is equal to -1 means element does not present</span></div>
<div class="line"><span class="lineno"> 97</span> <span class="comment">// else print the index of that element</span></div>
<div class="line"><span class="lineno"> 98</span> <span class="keywordflow">if</span> (pos != -1) {</div>
<div class="line"><span class="lineno"> 99</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nElement found at position : &quot;</span> &lt;&lt; pos;</div>
<div class="line"><span class="lineno"> 100</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 101</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nElement not found&quot;</span>;</div>
<div class="line"><span class="lineno"> 102</span> }</div>
<div class="line"><span class="lineno"> 103</span> <span class="comment">// return the index of element or -1.</span></div>
<div class="line"><span class="lineno"> 104</span> <span class="keywordflow">return</span> pos;</div>
<div class="fragment"><div class="line"><span class="lineno"> 97</span> {</div>
<div class="line"><span class="lineno"> 98</span> uint64_t pos; <span class="comment">// pos variable to store index value of element.</span></div>
<div class="line"><span class="lineno"> 99</span> <span class="comment">// if list is sorted, binary search works efficiently else linear search</span></div>
<div class="line"><span class="lineno"> 100</span> <span class="comment">// is the only option</span></div>
<div class="line"><span class="lineno"> 101</span> <span class="keywordflow">if</span> (isSorted) {</div>
<div class="line"><span class="lineno"> 102</span> pos = <a class="code hl_function" href="#a412bdb3910181f3c384d86aee7e217cf">BinarySearch</a>(data, 0, top - 1, val);</div>
<div class="line"><span class="lineno"> 103</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 104</span> pos = <a class="code hl_function" href="#ad202ae68fe8d98082afa9dafea9e22b9">LinearSearch</a>(data, val);</div>
<div class="line"><span class="lineno"> 105</span> }</div>
<div class="ttc" id="astructdata__structures_1_1list__array_1_1list_html_ad202ae68fe8d98082afa9dafea9e22b9"><div class="ttname"><a href="#ad202ae68fe8d98082afa9dafea9e22b9">data_structures::list_array::list::LinearSearch</a></div><div class="ttdeci">uint64_t LinearSearch(const std::array&lt; uint64_t, N &gt; &amp;dataArr, const uint64_t &amp;val) const</div><div class="ttdoc">Search an element using linear search.</div><div class="ttdef"><b>Definition</b> list_array.cpp:72</div></div>
<div class="line"><span class="lineno"> 106</span> <span class="comment">// if index is equal to -1 means element does not present</span></div>
<div class="line"><span class="lineno"> 107</span> <span class="comment">// else print the index of that element</span></div>
<div class="line"><span class="lineno"> 108</span> <span class="keywordflow">if</span> (pos != -1) {</div>
<div class="line"><span class="lineno"> 109</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;\nElement found at position : &quot;</span> &lt;&lt; pos;</div>
<div class="line"><span class="lineno"> 110</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><span class="lineno"> 111</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nElement not found&quot;</span>;</div>
<div class="line"><span class="lineno"> 112</span> }</div>
<div class="line"><span class="lineno"> 113</span> <span class="comment">// return the index of element or -1.</span></div>
<div class="line"><span class="lineno"> 114</span> <span class="keywordflow">return</span> pos;</div>
<div class="line"><span class="lineno"> 115</span> }</div>
<div class="ttc" id="astructdata__structures_1_1list__array_1_1list_html_ad202ae68fe8d98082afa9dafea9e22b9"><div class="ttname"><a href="#ad202ae68fe8d98082afa9dafea9e22b9">data_structures::list_array::list::LinearSearch</a></div><div class="ttdeci">uint64_t LinearSearch(const std::array&lt; uint64_t, N &gt; &amp;dataArr, const uint64_t &amp;val) const</div><div class="ttdoc">Search an element using linear search.</div><div class="ttdef"><b>Definition</b> list_array.cpp:80</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -482,13 +488,13 @@ template&lt;uint64_t N&gt; </div>
<p>Utility function to print array. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 191</span> {</div>
<div class="line"><span class="lineno"> 192</span> <span class="comment">// Going through each element in the list</span></div>
<div class="line"><span class="lineno"> 193</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="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><span class="lineno"> 194</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; top; i++) {</div>
<div class="line"><span class="lineno"> 195</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; data[i] &lt;&lt; <span class="stringliteral">&quot; &quot;</span>; <span class="comment">// print the element</span></div>
<div class="line"><span class="lineno"> 196</span> }</div>
<div class="line"><span class="lineno"> 197</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 203</span> {</div>
<div class="line"><span class="lineno"> 204</span> <span class="comment">// Going through each element in the list</span></div>
<div class="line"><span class="lineno"> 205</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="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><span class="lineno"> 206</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; top; i++) {</div>
<div class="line"><span class="lineno"> 207</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; data[i] &lt;&lt; <span class="stringliteral">&quot; &quot;</span>; <span class="comment">// print the element</span></div>
<div class="line"><span class="lineno"> 208</span> }</div>
<div class="line"><span class="lineno"> 209</span> }</div>
</div><!-- fragment -->
</div>
</div>
@@ -519,22 +525,22 @@ template&lt;uint64_t N&gt; </div>
<p>Sort the list. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 111</span> {</div>
<div class="line"><span class="lineno"> 112</span> <span class="comment">//Going through each element in the list</span></div>
<div class="line"><span class="lineno"> 113</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; top; i++) {</div>
<div class="line"><span class="lineno"> 114</span> uint64_t min_idx = i; <span class="comment">// Initialize the min variable</span></div>
<div class="line"><span class="lineno"> 115</span> <span class="keywordflow">for</span> (uint64_t j = i + 1; j &lt; top; j++) {</div>
<div class="line"><span class="lineno"> 116</span> <span class="comment">// check whether any element less than current min value</span></div>
<div class="line"><span class="lineno"> 117</span> <span class="keywordflow">if</span> (data[j] &lt; data[min_idx]) {</div>
<div class="line"><span class="lineno"> 118</span> min_idx = j; <span class="comment">// update index accordingly</span></div>
<div class="line"><span class="lineno"> 119</span> }</div>
<div class="line"><span class="lineno"> 120</span> }</div>
<div class="line"><span class="lineno"> 121</span> <span class="comment">// swap min value and element at the ith index</span></div>
<div class="line"><span class="lineno"> 122</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>(data[min_idx], data[i]);</div>
<div class="line"><span class="lineno"> 123</span> }</div>
<div class="line"><span class="lineno"> 124</span> <span class="comment">// mark isSorted variable as true</span></div>
<div class="line"><span class="lineno"> 125</span> isSorted = <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 126</span> }</div>
<div class="fragment"><div class="line"><span class="lineno"> 121</span> {</div>
<div class="line"><span class="lineno"> 122</span> <span class="comment">// Going through each element in the list</span></div>
<div class="line"><span class="lineno"> 123</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; top; i++) {</div>
<div class="line"><span class="lineno"> 124</span> uint64_t min_idx = i; <span class="comment">// Initialize the min variable</span></div>
<div class="line"><span class="lineno"> 125</span> <span class="keywordflow">for</span> (uint64_t j = i + 1; j &lt; top; j++) {</div>
<div class="line"><span class="lineno"> 126</span> <span class="comment">// check whether any element less than current min value</span></div>
<div class="line"><span class="lineno"> 127</span> <span class="keywordflow">if</span> (data[j] &lt; data[min_idx]) {</div>
<div class="line"><span class="lineno"> 128</span> min_idx = j; <span class="comment">// update index accordingly</span></div>
<div class="line"><span class="lineno"> 129</span> }</div>
<div class="line"><span class="lineno"> 130</span> }</div>
<div class="line"><span class="lineno"> 131</span> <span class="comment">// swap min value and element at the ith index</span></div>
<div class="line"><span class="lineno"> 132</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>(data[min_idx], data[i]);</div>
<div class="line"><span class="lineno"> 133</span> }</div>
<div class="line"><span class="lineno"> 134</span> <span class="comment">// mark isSorted variable as true</span></div>
<div class="line"><span class="lineno"> 135</span> isSorted = <span class="keyword">true</span>;</div>
<div class="line"><span class="lineno"> 136</span> }</div>
<div class="ttc" id="aswap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a></div><div class="ttdeci">T swap(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -558,7 +564,7 @@ template&lt;uint64_t N&gt; </div>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><span class="lineno"> 34</span>{}; <span class="comment">// Array that implement list</span></div>
<div class="fragment"><div class="line"><span class="lineno"> 38</span>{}; <span class="comment">// Array that implement list</span></div>
</div><!-- fragment -->
</div>
</div>

View File

@@ -1,7 +1,9 @@
<map id="math/magic_number.cpp" name="math/magic_number.cpp">
<area shape="rect" id="Node000001" title="A simple program to check if the given number is a magic number or not. A number is said to be a magi..." alt="" coords="5,5,169,31"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="10,79,74,105"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="82,33,60,67,55,64,77,30"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="98,79,169,105"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="97,30,120,64,115,67,92,33"/>
<area shape="rect" id="Node000001" title="A simple program to check if the given number is a magic number or not. A number is said to be a magi..." alt="" coords="42,5,206,31"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="5,79,70,105"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="111,34,65,71,62,67,108,29"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="94,79,154,105"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="127,31,127,63,122,63,122,31"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="178,79,249,105"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="141,29,188,67,185,71,138,34"/>
</map>

View File

@@ -1 +1 @@
0d116aa3dda0f78e5cfc7e2ec0b45846
a2f2787970244cf64e5df1c4220227a7

View File

@@ -4,8 +4,8 @@
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
-->
<!-- Title: math/magic_number.cpp Pages: 1 -->
<svg width="131pt" height="83pt"
viewBox="0.00 0.00 131.00 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="191pt" height="83pt"
viewBox="0.00 0.00 190.88 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
@@ -23,8 +23,8 @@
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="A simple program to check if the given number is a magic number or not. A number is said to be a magi...">
<polygon fill="#999999" stroke="#666666" points="122.5,-74.5 0,-74.5 0,-55.25 122.5,-55.25 122.5,-74.5"/>
<text text-anchor="middle" x="61.25" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/magic_number.cpp</text>
<polygon fill="#999999" stroke="#666666" points="150.38,-74.5 27.88,-74.5 27.88,-55.25 150.38,-55.25 150.38,-74.5"/>
<text text-anchor="middle" x="89.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/magic_number.cpp</text>
</a>
</g>
</g>
@@ -32,8 +32,8 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="51.38,-19.25 3.12,-19.25 3.12,0 51.38,0 51.38,-19.25"/>
<text text-anchor="middle" x="27.25" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cassert</text>
<polygon fill="#e0e0e0" stroke="#999999" points="48.25,-19.25 0,-19.25 0,0 48.25,0 48.25,-19.25"/>
<text text-anchor="middle" x="24.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cassert</text>
</a>
</g>
</g>
@@ -41,8 +41,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M55.64,-55.08C51.13,-48.03 44.66,-37.9 39.04,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="42.13,-27.43 33.8,-20.88 36.23,-31.2 42.13,-27.43"/>
<path fill="none" stroke="#63b8ff" d="M78.1,-54.84C68.7,-47.15 54.98,-35.9 43.72,-26.68"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="46.11,-24.11 36.16,-20.48 41.68,-29.53 46.11,-24.11"/>
</a>
</g>
</g>
@@ -50,8 +50,8 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="123,-19.25 69.5,-19.25 69.5,0 123,0 123,-19.25"/>
<text text-anchor="middle" x="96.25" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="111.75,-19.25 66.5,-19.25 66.5,0 111.75,0 111.75,-19.25"/>
<text text-anchor="middle" x="89.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cstdint</text>
</a>
</g>
</g>
@@ -59,8 +59,26 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M67.03,-55.08C71.66,-48.03 78.32,-37.9 84.12,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="86.95,-31.15 89.51,-20.87 81.1,-27.31 86.95,-31.15"/>
<path fill="none" stroke="#63b8ff" d="M89.12,-55.08C89.12,-48.57 89.12,-39.42 89.12,-31.12"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="92.63,-31.12 89.13,-21.12 85.63,-31.12 92.63,-31.12"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="182.88,-19.25 129.38,-19.25 129.38,0 182.88,0 182.88,-19.25"/>
<text text-anchor="middle" x="156.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M100.49,-54.84C110.17,-47.15 124.32,-35.9 135.93,-26.68"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="138.09,-29.43 143.74,-20.47 133.74,-23.95 138.09,-29.43"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -4,16 +4,16 @@
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
-->
<!-- Title: math/magic_number.cpp Pages: 1 -->
<svg width="131pt" height="83pt"
viewBox="0.00 0.00 131.00 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="191pt" height="83pt"
viewBox="0.00 0.00 190.88 82.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 78.5)">
<title>math/magic_number.cpp</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="A simple program to check if the given number is a magic number or not. A number is said to be a magi...">
<polygon fill="#999999" stroke="#666666" points="122.5,-74.5 0,-74.5 0,-55.25 122.5,-55.25 122.5,-74.5"/>
<text text-anchor="middle" x="61.25" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/magic_number.cpp</text>
<polygon fill="#999999" stroke="#666666" points="150.38,-74.5 27.88,-74.5 27.88,-55.25 150.38,-55.25 150.38,-74.5"/>
<text text-anchor="middle" x="89.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/magic_number.cpp</text>
</a>
</g>
</g>
@@ -21,8 +21,8 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="51.38,-19.25 3.12,-19.25 3.12,0 51.38,0 51.38,-19.25"/>
<text text-anchor="middle" x="27.25" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cassert</text>
<polygon fill="#e0e0e0" stroke="#999999" points="48.25,-19.25 0,-19.25 0,0 48.25,0 48.25,-19.25"/>
<text text-anchor="middle" x="24.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cassert</text>
</a>
</g>
</g>
@@ -30,8 +30,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M55.64,-55.08C51.13,-48.03 44.66,-37.9 39.04,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="42.13,-27.43 33.8,-20.88 36.23,-31.2 42.13,-27.43"/>
<path fill="none" stroke="#63b8ff" d="M78.1,-54.84C68.7,-47.15 54.98,-35.9 43.72,-26.68"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="46.11,-24.11 36.16,-20.48 41.68,-29.53 46.11,-24.11"/>
</a>
</g>
</g>
@@ -39,8 +39,8 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="123,-19.25 69.5,-19.25 69.5,0 123,0 123,-19.25"/>
<text text-anchor="middle" x="96.25" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="111.75,-19.25 66.5,-19.25 66.5,0 111.75,0 111.75,-19.25"/>
<text text-anchor="middle" x="89.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cstdint</text>
</a>
</g>
</g>
@@ -48,8 +48,26 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M67.03,-55.08C71.66,-48.03 78.32,-37.9 84.12,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="86.95,-31.15 89.51,-20.87 81.1,-27.31 86.95,-31.15"/>
<path fill="none" stroke="#63b8ff" d="M89.12,-55.08C89.12,-48.57 89.12,-39.42 89.12,-31.12"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="92.63,-31.12 89.13,-21.12 85.63,-31.12 92.63,-31.12"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="182.88,-19.25 129.38,-19.25 129.38,0 182.88,0 182.88,-19.25"/>
<text text-anchor="middle" x="156.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M100.49,-54.84C110.17,-47.15 124.32,-35.9 135.93,-26.68"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="138.09,-29.43 143.74,-20.47 133.74,-23.95 138.09,-29.43"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -211,8 +211,8 @@ Variables</h2></td></tr>
<div class="line"><span class="lineno"> 378</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="adsu__path__compression_8cpp_html_a45d94ead4cf4e1ff9f87c38bc99f59ae"><div class="ttname"><a href="../../d3/dae/dsu__path__compression_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae">test2</a></div><div class="ttdeci">static void test2()</div><div class="ttdoc">Self-implementations, 2nd test.</div><div class="ttdef"><b>Definition</b> dsu_path_compression.cpp:186</div></div>
<div class="ttc" id="adsu__path__compression_8cpp_html_ae7880ce913f3058a35ff106d5be9e243"><div class="ttname"><a href="../../d3/dae/dsu__path__compression_8cpp.html#ae7880ce913f3058a35ff106d5be9e243">test1</a></div><div class="ttdeci">static void test1()</div><div class="ttdoc">Self-test implementations, 1st test.</div><div class="ttdef"><b>Definition</b> dsu_path_compression.cpp:169</div></div>
<div class="ttc" id="adsu__path__compression_8cpp_html_a45d94ead4cf4e1ff9f87c38bc99f59ae"><div class="ttname"><a href="../../d3/dae/dsu__path__compression_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae">test2</a></div><div class="ttdeci">static void test2()</div><div class="ttdoc">Self-implementations, 2nd test.</div><div class="ttdef"><b>Definition</b> dsu_path_compression.cpp:187</div></div>
<div class="ttc" id="adsu__path__compression_8cpp_html_ae7880ce913f3058a35ff106d5be9e243"><div class="ttname"><a href="../../d3/dae/dsu__path__compression_8cpp.html#ae7880ce913f3058a35ff106d5be9e243">test1</a></div><div class="ttdeci">static void test1()</div><div class="ttdoc">Self-test implementations, 1st test.</div><div class="ttdef"><b>Definition</b> dsu_path_compression.cpp:170</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="ahamiltons__cycle_8cpp_html_a0cc94918b6831f308d4fe4fa27f08299"><div class="ttname"><a href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0cc94918b6831f308d4fe4fa27f08299">test3</a></div><div class="ttdeci">static void test3()</div><div class="ttdef"><b>Definition</b> hamiltons_cycle.cpp:122</div></div>
<div class="ttc" id="asrand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a></div><div class="ttdeci">T srand(T... args)</div></div>
@@ -278,7 +278,7 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 253</span>}</div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></div>
<div class="ttc" id="aclassmachine__learning_1_1adaline_html"><div class="ttname"><a href="../../d6/d30/classmachine__learning_1_1adaline.html">machine_learning::adaline</a></div><div class="ttdef"><b>Definition</b> adaline_learning.cpp:46</div></div>
<div class="ttc" id="adata__structures_2sparse__table_8cpp_html_a10f3ffb3f6f7e1b83d556b9c8de89a5d"><div class="ttname"><a href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">data_structures::sparse_table::N</a></div><div class="ttdeci">constexpr uint32_t N</div><div class="ttdoc">A struct to represent sparse table for min() as their invariant function, for the given array A....</div><div class="ttdef"><b>Definition</b> sparse_table.cpp:47</div></div>
<div class="ttc" id="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:48</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>

View File

@@ -114,17 +114,18 @@ $(function(){initNavTree('d5/db5/set__kth__bit_8cpp.html','../../'); initResizab
<p>Implementation to [From the right, set the Kth bit in the binary representation of N] (<a href="https://practice.geeksforgeeks.org/problems/set-kth-bit3724/1/">https://practice.geeksforgeeks.org/problems/set-kth-bit3724/1/</a>) in an integer.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for set_kth_bit.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d9/d43/set__kth__bit_8cpp__incl.svg" width="171" height="126"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d9/d43/set__kth__bit_8cpp__incl.svg" width="255" height="126"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d81/namespacebit__manipulation.html">bit_manipulation</a></td></tr>
<tr class="memdesc:d7/d81/namespacebit__manipulation"><td class="mdescLeft">&#160;</td><td class="mdescRight">for IO operations <br /></td></tr>
<tr class="memdesc:d7/d81/namespacebit__manipulation"><td class="mdescLeft">&#160;</td><td class="mdescRight">for assert <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d88/namespaceset_kth_bit.html">setKthBit</a></td></tr>
<tr class="memdesc:d8/d88/namespaceset_kth_bit"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for the [From the right, set the Kth bit in the binary representation of N] (<a href="https://practice.geeksforgeeks.org/problems/set-kth-bit3724/1/">https://practice.geeksforgeeks.org/problems/set-kth-bit3724/1/</a>) implementation. <br /></td></tr>
@@ -165,11 +166,11 @@ Functions</h2></td></tr>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 76</span> {</div>
<div class="line"><span class="lineno"> 77</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 78</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 79</span>}</div>
<div class="ttc" id="aset__kth__bit_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> set_kth_bit.cpp:60</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 77</span> {</div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// run self-test implementations</span></div>
<div class="line"><span class="lineno"> 79</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><span class="lineno"> 80</span>}</div>
<div class="ttc" id="aset__kth__bit_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> set_kth_bit.cpp:61</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -205,18 +206,18 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>returns an integer after setting the K'th bit in N </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 43</span> { <span class="comment">// int64_t is preferred over int so</span></div>
<div class="line"><span class="lineno"> 44</span> <span class="comment">// that no Overflow can be there.</span></div>
<div class="line"><span class="lineno"> 45</span> </div>
<div class="line"><span class="lineno"> 46</span> <span class="keywordtype">int</span> pos =</div>
<div class="line"><span class="lineno"> 47</span> 1 &lt;&lt; <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a>; <span class="comment">// &quot;pos&quot; variable is used to store 1 at kth postion and</span></div>
<div class="line"><span class="lineno"> 48</span> <span class="comment">// rest bits are 0. in binary representation of number &#39;n&#39;</span></div>
<div class="line"><span class="lineno"> 49</span> </div>
<div class="line"><span class="lineno"> 50</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a> | pos; <span class="comment">// by taking or with the pos and the N we set the bit of N</span></div>
<div class="line"><span class="lineno"> 51</span> <span class="comment">// at kth position.</span></div>
<div class="line"><span class="lineno"> 52</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 44</span> { <span class="comment">// int64_t is preferred over int so</span></div>
<div class="line"><span class="lineno"> 45</span> <span class="comment">// that no Overflow can be there.</span></div>
<div class="line"><span class="lineno"> 46</span> </div>
<div class="line"><span class="lineno"> 47</span> <span class="keywordtype">int</span> pos =</div>
<div class="line"><span class="lineno"> 48</span> 1 &lt;&lt; <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">k</a>; <span class="comment">// &quot;pos&quot; variable is used to store 1 at kth postion and</span></div>
<div class="line"><span class="lineno"> 49</span> <span class="comment">// rest bits are 0. in binary representation of number &#39;n&#39;</span></div>
<div class="line"><span class="lineno"> 50</span> </div>
<div class="line"><span class="lineno"> 51</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a> | pos; <span class="comment">// by taking or with the pos and the N we set the bit of N</span></div>
<div class="line"><span class="lineno"> 52</span> <span class="comment">// at kth position.</span></div>
<div class="line"><span class="lineno"> 53</span>}</div>
<div class="ttc" id="acomposite__simpson__rule_8cpp_html_a1b74d828b33760094906797042b89442"><div class="ttname"><a href="../../d4/d18/composite__simpson__rule_8cpp.html#a1b74d828b33760094906797042b89442">numerical_methods::simpson_method::k</a></div><div class="ttdeci">double k(double x)</div><div class="ttdoc">Another test function.</div><div class="ttdef"><b>Definition</b> composite_simpson_rule.cpp:117</div></div>
<div class="ttc" id="adata__structures_2sparse__table_8cpp_html_a10f3ffb3f6f7e1b83d556b9c8de89a5d"><div class="ttname"><a href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">data_structures::sparse_table::N</a></div><div class="ttdeci">constexpr uint32_t N</div><div class="ttdoc">A struct to represent sparse table for min() as their invariant function, for the given array A....</div><div class="ttdef"><b>Definition</b> sparse_table.cpp:47</div></div>
<div class="ttc" id="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:48</div></div>
</div><!-- fragment -->
</div>
</div>
@@ -245,18 +246,18 @@ 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"><span class="lineno"> 60</span> {</div>
<div class="line"><span class="lineno"> 61</span> <span class="comment">// n = 10,2 return 14</span></div>
<div class="line"><span class="lineno"> 62</span> assert(bit_manipulation::set_kth_bit::setKthBit(10, 2) == 14);</div>
<div class="line"><span class="lineno"> 63</span> <span class="comment">// n = 25,1 return 27</span></div>
<div class="line"><span class="lineno"> 64</span> assert(bit_manipulation::set_kth_bit::setKthBit(25, 1) == 27);</div>
<div class="line"><span class="lineno"> 65</span> <span class="comment">// n = 400001,5 return 400033</span></div>
<div class="line"><span class="lineno"> 66</span> assert(bit_manipulation::set_kth_bit::setKthBit(400001, 5) == 400033);</div>
<div class="line"><span class="lineno"> 67</span> <span class="comment">// n = 123 return 123</span></div>
<div class="line"><span class="lineno"> 68</span> assert(bit_manipulation::set_kth_bit::setKthBit(123, 3) == 123);</div>
<div class="line"><span class="lineno"> 69</span> </div>
<div class="line"><span class="lineno"> 70</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All test cases successfully passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 71</span>}</div>
<div class="fragment"><div class="line"><span class="lineno"> 61</span> {</div>
<div class="line"><span class="lineno"> 62</span> <span class="comment">// n = 10,2 return 14</span></div>
<div class="line"><span class="lineno"> 63</span> assert(bit_manipulation::set_kth_bit::setKthBit(10, 2) == 14);</div>
<div class="line"><span class="lineno"> 64</span> <span class="comment">// n = 25,1 return 27</span></div>
<div class="line"><span class="lineno"> 65</span> assert(bit_manipulation::set_kth_bit::setKthBit(25, 1) == 27);</div>
<div class="line"><span class="lineno"> 66</span> <span class="comment">// n = 400001,5 return 400033</span></div>
<div class="line"><span class="lineno"> 67</span> assert(bit_manipulation::set_kth_bit::setKthBit(400001, 5) == 400033);</div>
<div class="line"><span class="lineno"> 68</span> <span class="comment">// n = 123 return 123</span></div>
<div class="line"><span class="lineno"> 69</span> assert(bit_manipulation::set_kth_bit::setKthBit(123, 3) == 123);</div>
<div class="line"><span class="lineno"> 70</span> </div>
<div class="line"><span class="lineno"> 71</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;All test cases successfully passed!&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><span class="lineno"> 72</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><!-- fragment --><div class="dynheader">

View File

@@ -1,11 +1,13 @@
<map id="math/integral_approximation.cpp" name="math/integral_approximation.cpp">
<area shape="rect" id="Node000001" title="Compute integral approximation of the function using Riemann sum" alt="" coords="64,5,273,31"/>
<area shape="rect" id="Node000001" title="Compute integral approximation of the function using Riemann sum" alt="" coords="101,5,310,31"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="5,79,70,105"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="147,34,74,74,71,69,145,29"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="178,34,81,75,79,70,176,29"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="94,79,152,105"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="163,33,141,67,136,64,158,30"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="176,79,254,105"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="178,30,201,64,196,67,174,33"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="278,79,349,105"/>
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="194,29,276,69,274,74,192,34"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="193,34,150,71,146,67,190,30"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="175,79,236,105"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="208,31,208,63,203,63,203,31"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="260,79,338,105"/>
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="223,29,273,67,270,72,220,34"/>
<area shape="rect" id="Node000006" title=" " alt="" coords="362,79,433,105"/>
<area shape="poly" id="edge5_Node000001_Node000006" title=" " alt="" coords="239,29,352,71,350,76,237,34"/>
</map>

View File

@@ -1 +1 @@
bbc215eb0d5989611a6c6d85aae850e2
f001cc2facb430a91e427eafd1fa5242

View File

@@ -4,8 +4,8 @@
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
-->
<!-- Title: math/integral_approximation.cpp Pages: 1 -->
<svg width="266pt" height="83pt"
viewBox="0.00 0.00 265.88 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="329pt" height="83pt"
viewBox="0.00 0.00 328.88 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
@@ -23,8 +23,8 @@
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Compute integral approximation of the function using Riemann sum">
<polygon fill="#999999" stroke="#666666" points="200.62,-74.5 43.62,-74.5 43.62,-55.25 200.62,-55.25 200.62,-74.5"/>
<text text-anchor="middle" x="122.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/integral_approximation.cpp</text>
<polygon fill="#999999" stroke="#666666" points="228.62,-74.5 71.62,-74.5 71.62,-55.25 228.62,-55.25 228.62,-74.5"/>
<text text-anchor="middle" x="150.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/integral_approximation.cpp</text>
</a>
</g>
</g>
@@ -41,8 +41,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M105.5,-54.84C90.44,-46.66 67.98,-34.46 50.47,-24.94"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="52.62,-22.12 42.16,-20.43 49.28,-28.27 52.62,-22.12"/>
<path fill="none" stroke="#63b8ff" d="M128.75,-54.84C108.84,-46.43 78.89,-33.77 56.12,-24.15"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="57.57,-20.96 47,-20.29 54.85,-27.41 57.57,-20.96"/>
</a>
</g>
</g>
@@ -59,8 +59,8 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M116.51,-55.08C112.01,-48.03 105.54,-37.9 99.91,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="103.01,-27.43 94.68,-20.88 97.11,-31.2 103.01,-27.43"/>
<path fill="none" stroke="#63b8ff" d="M139.61,-54.84C130.74,-47.22 117.81,-36.12 107.14,-26.95"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="109.5,-24.37 99.64,-20.51 104.94,-29.68 109.5,-24.37"/>
</a>
</g>
</g>
@@ -68,8 +68,8 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="186.12,-19.25 128.12,-19.25 128.12,0 186.12,0 186.12,-19.25"/>
<text text-anchor="middle" x="157.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
<polygon fill="#e0e0e0" stroke="#999999" points="172.75,-19.25 127.5,-19.25 127.5,0 172.75,0 172.75,-19.25"/>
<text text-anchor="middle" x="150.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cstdint</text>
</a>
</g>
</g>
@@ -77,8 +77,8 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M127.9,-55.08C132.54,-48.03 139.2,-37.9 144.99,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="147.82,-31.15 150.39,-20.87 141.97,-27.31 147.82,-31.15"/>
<path fill="none" stroke="#63b8ff" d="M150.12,-55.08C150.12,-48.57 150.12,-39.42 150.12,-31.12"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="153.63,-31.12 150.13,-21.12 146.63,-31.12 153.63,-31.12"/>
</a>
</g>
</g>
@@ -86,8 +86,8 @@
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="257.88,-19.25 204.38,-19.25 204.38,0 257.88,0 257.88,-19.25"/>
<text text-anchor="middle" x="231.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="249.12,-19.25 191.12,-19.25 191.12,0 249.12,0 249.12,-19.25"/>
<text text-anchor="middle" x="220.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
</a>
</g>
</g>
@@ -95,8 +95,26 @@
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M140.62,-54.84C157.53,-46.58 182.81,-34.23 202.36,-24.68"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="203.74,-27.9 211.18,-20.37 200.66,-21.61 203.74,-27.9"/>
<path fill="none" stroke="#63b8ff" d="M162,-54.84C172.22,-47.07 187.2,-35.67 199.39,-26.4"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="201.38,-29.28 207.22,-20.44 197.14,-23.71 201.38,-29.28"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="320.88,-19.25 267.38,-19.25 267.38,0 320.88,0 320.88,-19.25"/>
<text text-anchor="middle" x="294.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M174.55,-54.84C197.72,-46.27 232.79,-33.31 258.96,-23.63"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="259.99,-26.98 268.16,-20.23 257.56,-20.41 259.99,-26.98"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -4,16 +4,16 @@
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
-->
<!-- Title: math/integral_approximation.cpp Pages: 1 -->
<svg width="266pt" height="83pt"
viewBox="0.00 0.00 265.88 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="329pt" height="83pt"
viewBox="0.00 0.00 328.88 82.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 78.5)">
<title>math/integral_approximation.cpp</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Compute integral approximation of the function using Riemann sum">
<polygon fill="#999999" stroke="#666666" points="200.62,-74.5 43.62,-74.5 43.62,-55.25 200.62,-55.25 200.62,-74.5"/>
<text text-anchor="middle" x="122.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/integral_approximation.cpp</text>
<polygon fill="#999999" stroke="#666666" points="228.62,-74.5 71.62,-74.5 71.62,-55.25 228.62,-55.25 228.62,-74.5"/>
<text text-anchor="middle" x="150.12" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">math/integral_approximation.cpp</text>
</a>
</g>
</g>
@@ -30,8 +30,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M105.5,-54.84C90.44,-46.66 67.98,-34.46 50.47,-24.94"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="52.62,-22.12 42.16,-20.43 49.28,-28.27 52.62,-22.12"/>
<path fill="none" stroke="#63b8ff" d="M128.75,-54.84C108.84,-46.43 78.89,-33.77 56.12,-24.15"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="57.57,-20.96 47,-20.29 54.85,-27.41 57.57,-20.96"/>
</a>
</g>
</g>
@@ -48,8 +48,8 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M116.51,-55.08C112.01,-48.03 105.54,-37.9 99.91,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="103.01,-27.43 94.68,-20.88 97.11,-31.2 103.01,-27.43"/>
<path fill="none" stroke="#63b8ff" d="M139.61,-54.84C130.74,-47.22 117.81,-36.12 107.14,-26.95"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="109.5,-24.37 99.64,-20.51 104.94,-29.68 109.5,-24.37"/>
</a>
</g>
</g>
@@ -57,8 +57,8 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="186.12,-19.25 128.12,-19.25 128.12,0 186.12,0 186.12,-19.25"/>
<text text-anchor="middle" x="157.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
<polygon fill="#e0e0e0" stroke="#999999" points="172.75,-19.25 127.5,-19.25 127.5,0 172.75,0 172.75,-19.25"/>
<text text-anchor="middle" x="150.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">cstdint</text>
</a>
</g>
</g>
@@ -66,8 +66,8 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M127.9,-55.08C132.54,-48.03 139.2,-37.9 144.99,-29.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="147.82,-31.15 150.39,-20.87 141.97,-27.31 147.82,-31.15"/>
<path fill="none" stroke="#63b8ff" d="M150.12,-55.08C150.12,-48.57 150.12,-39.42 150.12,-31.12"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="153.63,-31.12 150.13,-21.12 146.63,-31.12 153.63,-31.12"/>
</a>
</g>
</g>
@@ -75,8 +75,8 @@
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="257.88,-19.25 204.38,-19.25 204.38,0 257.88,0 257.88,-19.25"/>
<text text-anchor="middle" x="231.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="249.12,-19.25 191.12,-19.25 191.12,0 249.12,0 249.12,-19.25"/>
<text text-anchor="middle" x="220.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
</a>
</g>
</g>
@@ -84,8 +84,26 @@
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M140.62,-54.84C157.53,-46.58 182.81,-34.23 202.36,-24.68"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="203.74,-27.9 211.18,-20.37 200.66,-21.61 203.74,-27.9"/>
<path fill="none" stroke="#63b8ff" d="M162,-54.84C172.22,-47.07 187.2,-35.67 199.39,-26.4"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="201.38,-29.28 207.22,-20.44 197.14,-23.71 201.38,-29.28"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="320.88,-19.25 267.38,-19.25 267.38,0 320.88,0 320.88,-19.25"/>
<text text-anchor="middle" x="294.12" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M174.55,-54.84C197.72,-46.27 232.79,-33.31 258.96,-23.63"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="259.99,-26.98 268.16,-20.23 257.56,-20.41 259.99,-26.98"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -124,7 +124,7 @@ Include dependency graph for check_amicable_pair.cpp:</div>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html">math</a></td></tr>
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft">&#160;</td><td class="mdescRight">for IO operations <br /></td></tr>
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft">&#160;</td><td class="mdescRight">for assert <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 id="func-members" name="func-members"></a>