mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-05-02 23:00:52 +08:00
Documentation for c6af943508
This commit is contained in:
@@ -125,7 +125,7 @@ Include dependency graph for modular_inverse_fermat_little_theorem.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  </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"> </td><td class="mdescRight">for IO operations <br /></td></tr>
|
||||
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft"> </td><td class="mdescRight">for assert <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d50/namespacemodular__inverse__fermat.html">modular_inverse_fermat</a></td></tr>
|
||||
<tr class="memdesc:d7/d50/namespacemodular__inverse__fermat"><td class="mdescLeft"> </td><td class="mdescRight">Calculate modular inverse using Fermat's Little Theorem. <br /></td></tr>
|
||||
|
||||
@@ -115,12 +115,13 @@ $(function(){initNavTree('d8/d61/radix__sort2_8cpp.html','../../'); initResizabl
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <algorithm></code><br />
|
||||
<code>#include <cassert></code><br />
|
||||
<code>#include <cstdint></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
<code>#include <vector></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for radix_sort2.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d8/de0/radix__sort2_8cpp__incl.svg" width="350" 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="../../d8/de0/radix__sort2_8cpp__incl.svg" width="434" 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>
|
||||
@@ -172,11 +173,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"> 117</span> {</div>
|
||||
<div class="line"><span class="lineno"> 118</span> <a class="code hl_function" href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// execute the tests</span></div>
|
||||
<div class="line"><span class="lineno"> 119</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 120</span>}</div>
|
||||
<div class="ttc" id="aradix__sort2_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Function to test the above algorithm.</div><div class="ttdef"><b>Definition</b> radix_sort2.cpp:102</div></div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 119</span> {</div>
|
||||
<div class="line"><span class="lineno"> 120</span> <a class="code hl_function" href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// execute the tests</span></div>
|
||||
<div class="line"><span class="lineno"> 121</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 122</span>}</div>
|
||||
<div class="ttc" id="aradix__sort2_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Function to test the above algorithm.</div><div class="ttdef"><b>Definition</b> radix_sort2.cpp:104</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -208,26 +209,26 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>sorted vector </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 80</span> {</div>
|
||||
<div class="line"><span class="lineno"> 81</span> uint64_t max_ele =</div>
|
||||
<div class="line"><span class="lineno"> 82</span> *<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max_element.html">max_element</a>(ar.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), ar.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>()); <span class="comment">// returns the max element.</span></div>
|
||||
<div class="line"><span class="lineno"> 83</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint64_t></a> temp = ar;</div>
|
||||
<div class="line"><span class="lineno"> 84</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; max_ele / i > 0;</div>
|
||||
<div class="line"><span class="lineno"> 85</span> i *= 10) { <span class="comment">// loop breaks when i > max_ele because no further digits</span></div>
|
||||
<div class="line"><span class="lineno"> 86</span> <span class="comment">// left to makes changes in aray.</span></div>
|
||||
<div class="line"><span class="lineno"> 87</span> temp = <a class="code hl_function" href="#a98ead7d43b11505398daf9a894f122f9">step_ith</a>(i, temp);</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 : temp) {</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> << i << <span class="stringliteral">" "</span>;</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> << <span class="stringliteral">"\n"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 93</span> <span class="keywordflow">return</span> temp;</div>
|
||||
<div class="line"><span class="lineno"> 94</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 82</span> {</div>
|
||||
<div class="line"><span class="lineno"> 83</span> uint64_t max_ele =</div>
|
||||
<div class="line"><span class="lineno"> 84</span> *<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max_element.html">max_element</a>(ar.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), ar.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>()); <span class="comment">// returns the max element.</span></div>
|
||||
<div class="line"><span class="lineno"> 85</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint64_t></a> temp = ar;</div>
|
||||
<div class="line"><span class="lineno"> 86</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; max_ele / i > 0;</div>
|
||||
<div class="line"><span class="lineno"> 87</span> i *= 10) { <span class="comment">// loop breaks when i > max_ele because no further digits</span></div>
|
||||
<div class="line"><span class="lineno"> 88</span> <span class="comment">// left to makes changes in aray.</span></div>
|
||||
<div class="line"><span class="lineno"> 89</span> temp = <a class="code hl_function" href="#a98ead7d43b11505398daf9a894f122f9">step_ith</a>(i, temp);</div>
|
||||
<div class="line"><span class="lineno"> 90</span> }</div>
|
||||
<div class="line"><span class="lineno"> 91</span> <span class="keywordflow">for</span> (uint64_t i : temp) {</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> << i << <span class="stringliteral">" "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 93</span> }</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> << <span class="stringliteral">"\n"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 95</span> <span class="keywordflow">return</span> temp;</div>
|
||||
<div class="line"><span class="lineno"> 96</span>}</div>
|
||||
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
|
||||
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/begin.html">std::vector::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
|
||||
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/end.html">std::vector::end</a></div><div class="ttdeci">T end(T... args)</div></div>
|
||||
<div class="ttc" id="amax_element_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max_element.html">std::max_element</a></div><div class="ttdeci">T max_element(T... args)</div></div>
|
||||
<div class="ttc" id="aradix__sort2_8cpp_html_a98ead7d43b11505398daf9a894f122f9"><div class="ttname"><a href="#a98ead7d43b11505398daf9a894f122f9">sorting::radix_sort::step_ith</a></div><div class="ttdeci">std::vector< uint64_t > step_ith(uint16_t cur_digit, const std::vector< uint64_t > &ar)</div><div class="ttdoc">Function to sort vector according to current digit using stable sorting.</div><div class="ttdef"><b>Definition</b> radix_sort2.cpp:49</div></div>
|
||||
<div class="ttc" id="aradix__sort2_8cpp_html_a98ead7d43b11505398daf9a894f122f9"><div class="ttname"><a href="#a98ead7d43b11505398daf9a894f122f9">sorting::radix_sort::step_ith</a></div><div class="ttdeci">std::vector< uint64_t > step_ith(uint16_t cur_digit, const std::vector< uint64_t > &ar)</div><div class="ttdoc">Function to sort vector according to current digit using stable sorting.</div><div class="ttdef"><b>Definition</b> radix_sort2.cpp:51</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>
|
||||
@@ -265,30 +266,30 @@ 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/container/vector.html">std::vector</a> sorted till ith digit </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 51</span> { <span class="comment">// sorting according to current digit.</span></div>
|
||||
<div class="line"><span class="lineno"> 52</span> <span class="keywordtype">int</span> n = ar.<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"> 53</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint32_t></a> position(10, 0);</div>
|
||||
<div class="line"><span class="lineno"> 54</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; ++i) {</div>
|
||||
<div class="line"><span class="lineno"> 55</span> position[(ar[i] / cur_digit) %</div>
|
||||
<div class="line"><span class="lineno"> 56</span> 10]++; <span class="comment">// counting frequency of 0-9 at cur_digit.</span></div>
|
||||
<div class="line"><span class="lineno"> 57</span> }</div>
|
||||
<div class="line"><span class="lineno"> 58</span> <span class="keywordtype">int</span> cur = 0;</div>
|
||||
<div class="line"><span class="lineno"> 59</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 10; ++i) {</div>
|
||||
<div class="line"><span class="lineno"> 60</span> <span class="keywordtype">int</span> a = position[i];</div>
|
||||
<div class="line"><span class="lineno"> 61</span> position[i] = cur; <span class="comment">// assingning starting position of 0-9.</span></div>
|
||||
<div class="line"><span class="lineno"> 62</span> cur += a;</div>
|
||||
<div class="line"><span class="lineno"> 63</span> }</div>
|
||||
<div class="line"><span class="lineno"> 64</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint64_t></a> temp(n);</div>
|
||||
<div class="line"><span class="lineno"> 65</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; ++i) {</div>
|
||||
<div class="line"><span class="lineno"> 66</span> temp[position[(ar[i] / cur_digit) % 10]] =</div>
|
||||
<div class="line"><span class="lineno"> 67</span> ar[i]; <span class="comment">// storing ar[i] in ar[i]'s cur_digit expected position of</span></div>
|
||||
<div class="line"><span class="lineno"> 68</span> <span class="comment">// this step.</span></div>
|
||||
<div class="line"><span class="lineno"> 69</span> position[(ar[i] / cur_digit) %</div>
|
||||
<div class="line"><span class="lineno"> 70</span> 10]++; <span class="comment">// incrementing ar[i]'s cur_digit position by 1, as</span></div>
|
||||
<div class="line"><span class="lineno"> 71</span> <span class="comment">// current place used by ar[i].</span></div>
|
||||
<div class="line"><span class="lineno"> 72</span> }</div>
|
||||
<div class="line"><span class="lineno"> 73</span> <span class="keywordflow">return</span> temp;</div>
|
||||
<div class="line"><span class="lineno"> 74</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 53</span> { <span class="comment">// sorting according to current digit.</span></div>
|
||||
<div class="line"><span class="lineno"> 54</span> <span class="keywordtype">int</span> n = ar.<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"> 55</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint32_t></a> position(10, 0);</div>
|
||||
<div class="line"><span class="lineno"> 56</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; ++i) {</div>
|
||||
<div class="line"><span class="lineno"> 57</span> position[(ar[i] / cur_digit) %</div>
|
||||
<div class="line"><span class="lineno"> 58</span> 10]++; <span class="comment">// counting frequency of 0-9 at cur_digit.</span></div>
|
||||
<div class="line"><span class="lineno"> 59</span> }</div>
|
||||
<div class="line"><span class="lineno"> 60</span> <span class="keywordtype">int</span> cur = 0;</div>
|
||||
<div class="line"><span class="lineno"> 61</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 10; ++i) {</div>
|
||||
<div class="line"><span class="lineno"> 62</span> <span class="keywordtype">int</span> a = position[i];</div>
|
||||
<div class="line"><span class="lineno"> 63</span> position[i] = cur; <span class="comment">// assingning starting position of 0-9.</span></div>
|
||||
<div class="line"><span class="lineno"> 64</span> cur += a;</div>
|
||||
<div class="line"><span class="lineno"> 65</span> }</div>
|
||||
<div class="line"><span class="lineno"> 66</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint64_t></a> temp(n);</div>
|
||||
<div class="line"><span class="lineno"> 67</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; ++i) {</div>
|
||||
<div class="line"><span class="lineno"> 68</span> temp[position[(ar[i] / cur_digit) % 10]] =</div>
|
||||
<div class="line"><span class="lineno"> 69</span> ar[i]; <span class="comment">// storing ar[i] in ar[i]'s cur_digit expected position of</span></div>
|
||||
<div class="line"><span class="lineno"> 70</span> <span class="comment">// this step.</span></div>
|
||||
<div class="line"><span class="lineno"> 71</span> position[(ar[i] / cur_digit) %</div>
|
||||
<div class="line"><span class="lineno"> 72</span> 10]++; <span class="comment">// incrementing ar[i]'s cur_digit position by 1, as</span></div>
|
||||
<div class="line"><span class="lineno"> 73</span> <span class="comment">// current place used by ar[i].</span></div>
|
||||
<div class="line"><span class="lineno"> 74</span> }</div>
|
||||
<div class="line"><span class="lineno"> 75</span> <span class="keywordflow">return</span> temp;</div>
|
||||
<div class="line"><span class="lineno"> 76</span>}</div>
|
||||
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
@@ -325,19 +326,19 @@ Here is the call graph for this function:</div>
|
||||
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
|
||||
<p>Test 1</p>
|
||||
<p>Test 2</p>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 102</span> {<span class="comment"></span></div>
|
||||
<div class="line"><span class="lineno"> 103</span><span class="comment"> /// Test 1</span></div>
|
||||
<div class="line"><span class="lineno"> 104</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint64_t></a> ar1 = {432, 234, 143, 332, 123};</div>
|
||||
<div class="line"><span class="lineno"> 105</span> ar1 = <a class="code hl_function" href="#ae0cfd94fa3765b53d4ec7893ffaee5f8">sorting::radix_sort::radix</a>(ar1);</div>
|
||||
<div class="line"><span class="lineno"> 106</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(ar1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), ar1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>()));<span class="comment"></span></div>
|
||||
<div class="line"><span class="lineno"> 107</span><span class="comment"> /// Test 2</span></div>
|
||||
<div class="line"><span class="lineno"> 108</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint64_t></a> ar2 = {213, 3214, 123, 111, 112, 142,</div>
|
||||
<div class="line"><span class="lineno"> 109</span> 133, 132, 32, 12, 113};</div>
|
||||
<div class="line"><span class="lineno"> 110</span> ar2 = <a class="code hl_function" href="#ae0cfd94fa3765b53d4ec7893ffaee5f8">sorting::radix_sort::radix</a>(ar2);</div>
|
||||
<div class="line"><span class="lineno"> 111</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(ar2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), ar2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>()));</div>
|
||||
<div class="line"><span class="lineno"> 112</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 104</span> {<span class="comment"></span></div>
|
||||
<div class="line"><span class="lineno"> 105</span><span class="comment"> /// Test 1</span></div>
|
||||
<div class="line"><span class="lineno"> 106</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint64_t></a> ar1 = {432, 234, 143, 332, 123};</div>
|
||||
<div class="line"><span class="lineno"> 107</span> ar1 = <a class="code hl_function" href="#ae0cfd94fa3765b53d4ec7893ffaee5f8">sorting::radix_sort::radix</a>(ar1);</div>
|
||||
<div class="line"><span class="lineno"> 108</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(ar1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), ar1.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>()));<span class="comment"></span></div>
|
||||
<div class="line"><span class="lineno"> 109</span><span class="comment"> /// Test 2</span></div>
|
||||
<div class="line"><span class="lineno"> 110</span><span class="comment"></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint64_t></a> ar2 = {213, 3214, 123, 111, 112, 142,</div>
|
||||
<div class="line"><span class="lineno"> 111</span> 133, 132, 32, 12, 113};</div>
|
||||
<div class="line"><span class="lineno"> 112</span> ar2 = <a class="code hl_function" href="#ae0cfd94fa3765b53d4ec7893ffaee5f8">sorting::radix_sort::radix</a>(ar2);</div>
|
||||
<div class="line"><span class="lineno"> 113</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(ar2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/begin.html">begin</a>(), ar2.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/end.html">end</a>()));</div>
|
||||
<div class="line"><span class="lineno"> 114</span>}</div>
|
||||
<div class="ttc" id="ais_sorted_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a></div><div class="ttdeci">T is_sorted(T... args)</div></div>
|
||||
<div class="ttc" id="aradix__sort2_8cpp_html_ae0cfd94fa3765b53d4ec7893ffaee5f8"><div class="ttname"><a href="#ae0cfd94fa3765b53d4ec7893ffaee5f8">sorting::radix_sort::radix</a></div><div class="ttdeci">std::vector< uint64_t > radix(const std::vector< uint64_t > &ar)</div><div class="ttdoc">Function to sort vector digit by digit.</div><div class="ttdef"><b>Definition</b> radix_sort2.cpp:80</div></div>
|
||||
<div class="ttc" id="aradix__sort2_8cpp_html_ae0cfd94fa3765b53d4ec7893ffaee5f8"><div class="ttname"><a href="#ae0cfd94fa3765b53d4ec7893ffaee5f8">sorting::radix_sort::radix</a></div><div class="ttdeci">std::vector< uint64_t > radix(const std::vector< uint64_t > &ar)</div><div class="ttdoc">Function to sort vector digit by digit.</div><div class="ttdef"><b>Definition</b> radix_sort2.cpp:82</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
|
||||
@@ -446,7 +446,7 @@ Here is the call graph for this function:</div>
|
||||
<div class="line"><span class="lineno"> 124</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>;</div>
|
||||
<div class="line"><span class="lineno"> 125</span>}</div>
|
||||
<div class="ttc" id="aclassgraph_1_1_h_k_graph_html_a7491add14d9fc04f679114ca6d6f0f93"><div class="ttname"><a href="#a7491add14d9fc04f679114ca6d6f0f93">graph::HKGraph::bfs</a></div><div class="ttdeci">bool bfs()</div><div class="ttdoc">This function checks for the possibility of augmented path availability.</div><div class="ttdef"><b>Definition</b> hopcroft_karp.cpp:133</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><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
|
||||
@@ -116,6 +116,7 @@ $(function(){initNavTree('d8/d7a/sha1_8cpp.html','../../'); initResizable(true);
|
||||
<div class="textblock"><code>#include <algorithm></code><br />
|
||||
<code>#include <array></code><br />
|
||||
<code>#include <cassert></code><br />
|
||||
<code>#include <cstdint></code><br />
|
||||
<code>#include <cstring></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
<code>#include <string></code><br />
|
||||
@@ -123,13 +124,13 @@ $(function(){initNavTree('d8/d7a/sha1_8cpp.html','../../'); initResizable(true);
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for sha1.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d3/d4c/sha1_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="../../d3/d4c/sha1_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  </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"> </td><td class="mdescRight">Hashing algorithms. <br /></td></tr>
|
||||
<tr class="memdesc:d6/d0c/namespacehashing"><td class="mdescLeft"> </td><td class="mdescRight">Used for assert. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dd3/namespace_s_h_a.html">SHA</a></td></tr>
|
||||
<tr class="memdesc:de/dd3/namespace_s_h_a"><td class="mdescLeft"> </td><td class="mdescRight">Functions for the <a href="https://en.wikipedia.org/wiki/SHA-1" target="_blank">SHA-1</a> algorithm implementation. <br /></td></tr>
|
||||
@@ -191,10 +192,10 @@ Algorithm</h3>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void* Pointer to the SHA-1 signature </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 210</span> {</div>
|
||||
<div class="line"><span class="lineno"> 211</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d5/d96/md5_8cpp.html#a5341431cef7fcfc33794326e1deb2425">hash_bs</a>(&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"> 212</span>}</div>
|
||||
<div class="ttc" id="amd5_8cpp_html_a5341431cef7fcfc33794326e1deb2425"><div class="ttname"><a href="../../d5/d96/md5_8cpp.html#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"> 211</span> {</div>
|
||||
<div class="line"><span class="lineno"> 212</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d5/d96/md5_8cpp.html#a5341431cef7fcfc33794326e1deb2425">hash_bs</a>(&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"> 213</span>}</div>
|
||||
<div class="ttc" id="amd5_8cpp_html_a5341431cef7fcfc33794326e1deb2425"><div class="ttname"><a href="../../d5/d96/md5_8cpp.html#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>
|
||||
@@ -232,131 +233,131 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void* Pointer to the 160-bit signature </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 83</span> {</div>
|
||||
<div class="line"><span class="lineno"> 84</span> <span class="keyword">auto</span>* input = <span class="keyword">static_cast<</span><span class="keyword">const </span>uint8_t*<span class="keyword">></span>(input_bs);</div>
|
||||
<div class="line"><span class="lineno"> 85</span> </div>
|
||||
<div class="line"><span class="lineno"> 86</span> <span class="comment">// Step 0: The initial 160-bit state</span></div>
|
||||
<div class="line"><span class="lineno"> 87</span> uint32_t h0 = 0x67452301, a = 0;</div>
|
||||
<div class="line"><span class="lineno"> 88</span> uint32_t h1 = 0xEFCDAB89, b = 0;</div>
|
||||
<div class="line"><span class="lineno"> 89</span> uint32_t h2 = 0x98BADCFE, c = 0;</div>
|
||||
<div class="line"><span class="lineno"> 90</span> uint32_t h3 = 0x10325476, d = 0;</div>
|
||||
<div class="line"><span class="lineno"> 91</span> uint32_t h4 = 0xC3D2E1F0, e = 0;</div>
|
||||
<div class="line"><span class="lineno"> 92</span> </div>
|
||||
<div class="line"><span class="lineno"> 93</span> <span class="comment">// Step 1: Processing the bytestring</span></div>
|
||||
<div class="line"><span class="lineno"> 94</span> <span class="comment">// First compute the size the padded message will have</span></div>
|
||||
<div class="line"><span class="lineno"> 95</span> <span class="comment">// so it is possible to allocate the right amount of memory</span></div>
|
||||
<div class="line"><span class="lineno"> 96</span> uint64_t padded_message_size = 0;</div>
|
||||
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">if</span> (input_size % 64 < 56) {</div>
|
||||
<div class="line"><span class="lineno"> 98</span> padded_message_size = input_size + 64 - (input_size % 64);</div>
|
||||
<div class="line"><span class="lineno"> 99</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><span class="lineno"> 100</span> padded_message_size = input_size + 128 - (input_size % 64);</div>
|
||||
<div class="line"><span class="lineno"> 101</span> }</div>
|
||||
<div class="line"><span class="lineno"> 102</span> </div>
|
||||
<div class="line"><span class="lineno"> 103</span> <span class="comment">// Allocate the memory for the padded message</span></div>
|
||||
<div class="line"><span class="lineno"> 104</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint8_t></a> padded_message(padded_message_size);</div>
|
||||
<div class="line"><span class="lineno"> 105</span> </div>
|
||||
<div class="line"><span class="lineno"> 106</span> <span class="comment">// Beginning of the padded message is the original message</span></div>
|
||||
<div class="line"><span class="lineno"> 107</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"> 108</span> </div>
|
||||
<div class="line"><span class="lineno"> 109</span> <span class="comment">// Afterwards comes a single 1 bit and then only zeroes</span></div>
|
||||
<div class="line"><span class="lineno"> 110</span> padded_message[input_size] = 1 << 7; <span class="comment">// 10000000</span></div>
|
||||
<div class="line"><span class="lineno"> 111</span> <span class="keywordflow">for</span> (uint64_t i = input_size; i % 64 != 56; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 112</span> <span class="keywordflow">if</span> (i == input_size) {</div>
|
||||
<div class="line"><span class="lineno"> 113</span> <span class="keywordflow">continue</span>; <span class="comment">// pass first iteration</span></div>
|
||||
<div class="line"><span class="lineno"> 114</span> }</div>
|
||||
<div class="line"><span class="lineno"> 115</span> padded_message[i] = 0;</div>
|
||||
<div class="line"><span class="lineno"> 116</span> }</div>
|
||||
<div class="line"><span class="lineno"> 117</span> </div>
|
||||
<div class="line"><span class="lineno"> 118</span> <span class="comment">// We then have to add the 64-bit size of the message in bits (hence the</span></div>
|
||||
<div class="line"><span class="lineno"> 119</span> <span class="comment">// times 8) in the last 8 bytes</span></div>
|
||||
<div class="line"><span class="lineno"> 120</span> uint64_t input_bitsize = input_size * 8;</div>
|
||||
<div class="line"><span class="lineno"> 121</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < 8; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 122</span> padded_message[padded_message_size - 8 + i] =</div>
|
||||
<div class="line"><span class="lineno"> 123</span> (input_bitsize >> (56 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 124</span> }</div>
|
||||
<div class="line"><span class="lineno"> 125</span> </div>
|
||||
<div class="line"><span class="lineno"> 126</span> <span class="comment">// Already allocate memory for blocks</span></div>
|
||||
<div class="line"><span class="lineno"> 127</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array<uint32_t, 80></a> blocks{};</div>
|
||||
<div class="line"><span class="lineno"> 128</span> </div>
|
||||
<div class="line"><span class="lineno"> 129</span> <span class="comment">// Rounds</span></div>
|
||||
<div class="line"><span class="lineno"> 130</span> <span class="keywordflow">for</span> (uint64_t chunk = 0; chunk * 64 < padded_message_size; chunk++) {</div>
|
||||
<div class="line"><span class="lineno"> 131</span> <span class="comment">// First, build 16 32-bits blocks from the chunk</span></div>
|
||||
<div class="line"><span class="lineno"> 132</span> <span class="keywordflow">for</span> (uint8_t bid = 0; bid < 16; bid++) {</div>
|
||||
<div class="line"><span class="lineno"> 133</span> blocks[bid] = 0;</div>
|
||||
<div class="line"><span class="lineno"> 134</span> </div>
|
||||
<div class="line"><span class="lineno"> 135</span> <span class="comment">// Having to build a 32-bit word from 4-bit words</span></div>
|
||||
<div class="line"><span class="lineno"> 136</span> <span class="comment">// Add each and shift them to the left</span></div>
|
||||
<div class="line"><span class="lineno"> 137</span> <span class="keywordflow">for</span> (uint8_t cid = 0; cid < 4; cid++) {</div>
|
||||
<div class="line"><span class="lineno"> 138</span> blocks[bid] = (blocks[bid] << 8) +</div>
|
||||
<div class="line"><span class="lineno"> 139</span> padded_message[chunk * 64 + bid * 4 + cid];</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="comment">// Extend the 16 32-bit words into 80 32-bit words</span></div>
|
||||
<div class="line"><span class="lineno"> 143</span> <span class="keywordflow">for</span> (uint8_t i = 16; i < 80; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 144</span> blocks[i] =</div>
|
||||
<div class="line"><span class="lineno"> 145</span> <a class="code hl_function" href="../../d5/d96/md5_8cpp.html#add2bf982d5dd64a45d13cba52c2b371d">leftRotate32bits</a>(blocks[i - 3] ^ blocks[i - 8] ^</div>
|
||||
<div class="line"><span class="lineno"> 146</span> blocks[i - 14] ^ blocks[i - 16],</div>
|
||||
<div class="line"><span class="lineno"> 147</span> 1);</div>
|
||||
<div class="line"><span class="lineno"> 148</span> }</div>
|
||||
<div class="line"><span class="lineno"> 149</span> }</div>
|
||||
<div class="line"><span class="lineno"> 150</span> </div>
|
||||
<div class="line"><span class="lineno"> 151</span> a = h0;</div>
|
||||
<div class="line"><span class="lineno"> 152</span> b = h1;</div>
|
||||
<div class="line"><span class="lineno"> 153</span> c = h2;</div>
|
||||
<div class="line"><span class="lineno"> 154</span> d = h3;</div>
|
||||
<div class="line"><span class="lineno"> 155</span> e = h4;</div>
|
||||
<div class="line"><span class="lineno"> 156</span> </div>
|
||||
<div class="line"><span class="lineno"> 157</span> <span class="comment">// Main "hashing" loop</span></div>
|
||||
<div class="line"><span class="lineno"> 158</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < 80; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 159</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"> 160</span> <span class="keywordflow">if</span> (i < 20) {</div>
|
||||
<div class="line"><span class="lineno"> 161</span> F = (b & c) | ((~b) & d);</div>
|
||||
<div class="line"><span class="lineno"> 162</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0x5A827999;</div>
|
||||
<div class="line"><span class="lineno"> 163</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i < 40) {</div>
|
||||
<div class="line"><span class="lineno"> 164</span> F = b ^ c ^ d;</div>
|
||||
<div class="line"><span class="lineno"> 165</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0x6ED9EBA1;</div>
|
||||
<div class="line"><span class="lineno"> 166</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i < 60) {</div>
|
||||
<div class="line"><span class="lineno"> 167</span> F = (b & c) | (b & d) | (c & d);</div>
|
||||
<div class="line"><span class="lineno"> 168</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0x8F1BBCDC;</div>
|
||||
<div class="line"><span class="lineno"> 169</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><span class="lineno"> 170</span> F = b ^ c ^ d;</div>
|
||||
<div class="line"><span class="lineno"> 171</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0xCA62C1D6;</div>
|
||||
<div class="line"><span class="lineno"> 172</span> }</div>
|
||||
<div class="line"><span class="lineno"> 173</span> </div>
|
||||
<div class="line"><span class="lineno"> 174</span> <span class="comment">// Update the accumulators</span></div>
|
||||
<div class="line"><span class="lineno"> 175</span> uint32_t temp = <a class="code hl_function" href="../../d5/d96/md5_8cpp.html#add2bf982d5dd64a45d13cba52c2b371d">leftRotate32bits</a>(a, 5) + F + e + <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> + blocks[i];</div>
|
||||
<div class="line"><span class="lineno"> 176</span> e = d;</div>
|
||||
<div class="line"><span class="lineno"> 177</span> d = c;</div>
|
||||
<div class="line"><span class="lineno"> 178</span> c = <a class="code hl_function" href="../../d5/d96/md5_8cpp.html#add2bf982d5dd64a45d13cba52c2b371d">leftRotate32bits</a>(b, 30);</div>
|
||||
<div class="line"><span class="lineno"> 179</span> b = a;</div>
|
||||
<div class="line"><span class="lineno"> 180</span> a = temp;</div>
|
||||
<div class="line"><span class="lineno"> 181</span> }</div>
|
||||
<div class="line"><span class="lineno"> 182</span> <span class="comment">// Update the state with this chunk's hash</span></div>
|
||||
<div class="line"><span class="lineno"> 183</span> h0 += a;</div>
|
||||
<div class="line"><span class="lineno"> 184</span> h1 += b;</div>
|
||||
<div class="line"><span class="lineno"> 185</span> h2 += c;</div>
|
||||
<div class="line"><span class="lineno"> 186</span> h3 += d;</div>
|
||||
<div class="line"><span class="lineno"> 187</span> h4 += e;</div>
|
||||
<div class="line"><span class="lineno"> 188</span> }</div>
|
||||
<div class="line"><span class="lineno"> 189</span> </div>
|
||||
<div class="line"><span class="lineno"> 190</span> <span class="comment">// Build signature from state</span></div>
|
||||
<div class="line"><span class="lineno"> 191</span> <span class="comment">// Note, any type could be used for the signature</span></div>
|
||||
<div class="line"><span class="lineno"> 192</span> <span class="comment">// uint8_t was used to make the 20 bytes obvious</span></div>
|
||||
<div class="line"><span class="lineno"> 193</span> <span class="keyword">auto</span>* sig = <span class="keyword">new</span> uint8_t[20];</div>
|
||||
<div class="line"><span class="lineno"> 194</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < 4; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 195</span> sig[i] = (h0 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 196</span> sig[i + 4] = (h1 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 197</span> sig[i + 8] = (h2 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 198</span> sig[i + 12] = (h3 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 199</span> sig[i + 16] = (h4 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 200</span> }</div>
|
||||
<div class="line"><span class="lineno"> 201</span> </div>
|
||||
<div class="line"><span class="lineno"> 202</span> <span class="keywordflow">return</span> sig;</div>
|
||||
<div class="line"><span class="lineno"> 203</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 84</span> {</div>
|
||||
<div class="line"><span class="lineno"> 85</span> <span class="keyword">auto</span>* input = <span class="keyword">static_cast<</span><span class="keyword">const </span>uint8_t*<span class="keyword">></span>(input_bs);</div>
|
||||
<div class="line"><span class="lineno"> 86</span> </div>
|
||||
<div class="line"><span class="lineno"> 87</span> <span class="comment">// Step 0: The initial 160-bit state</span></div>
|
||||
<div class="line"><span class="lineno"> 88</span> uint32_t h0 = 0x67452301, a = 0;</div>
|
||||
<div class="line"><span class="lineno"> 89</span> uint32_t h1 = 0xEFCDAB89, b = 0;</div>
|
||||
<div class="line"><span class="lineno"> 90</span> uint32_t h2 = 0x98BADCFE, c = 0;</div>
|
||||
<div class="line"><span class="lineno"> 91</span> uint32_t h3 = 0x10325476, d = 0;</div>
|
||||
<div class="line"><span class="lineno"> 92</span> uint32_t h4 = 0xC3D2E1F0, e = 0;</div>
|
||||
<div class="line"><span class="lineno"> 93</span> </div>
|
||||
<div class="line"><span class="lineno"> 94</span> <span class="comment">// Step 1: Processing the bytestring</span></div>
|
||||
<div class="line"><span class="lineno"> 95</span> <span class="comment">// First compute the size the padded message will have</span></div>
|
||||
<div class="line"><span class="lineno"> 96</span> <span class="comment">// so it is possible to allocate the right amount of memory</span></div>
|
||||
<div class="line"><span class="lineno"> 97</span> uint64_t padded_message_size = 0;</div>
|
||||
<div class="line"><span class="lineno"> 98</span> <span class="keywordflow">if</span> (input_size % 64 < 56) {</div>
|
||||
<div class="line"><span class="lineno"> 99</span> padded_message_size = input_size + 64 - (input_size % 64);</div>
|
||||
<div class="line"><span class="lineno"> 100</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><span class="lineno"> 101</span> padded_message_size = input_size + 128 - (input_size % 64);</div>
|
||||
<div class="line"><span class="lineno"> 102</span> }</div>
|
||||
<div class="line"><span class="lineno"> 103</span> </div>
|
||||
<div class="line"><span class="lineno"> 104</span> <span class="comment">// Allocate the memory for the padded message</span></div>
|
||||
<div class="line"><span class="lineno"> 105</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<uint8_t></a> padded_message(padded_message_size);</div>
|
||||
<div class="line"><span class="lineno"> 106</span> </div>
|
||||
<div class="line"><span class="lineno"> 107</span> <span class="comment">// Beginning of the padded message is the original message</span></div>
|
||||
<div class="line"><span class="lineno"> 108</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"> 109</span> </div>
|
||||
<div class="line"><span class="lineno"> 110</span> <span class="comment">// Afterwards comes a single 1 bit and then only zeroes</span></div>
|
||||
<div class="line"><span class="lineno"> 111</span> padded_message[input_size] = 1 << 7; <span class="comment">// 10000000</span></div>
|
||||
<div class="line"><span class="lineno"> 112</span> <span class="keywordflow">for</span> (uint64_t i = input_size; i % 64 != 56; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 113</span> <span class="keywordflow">if</span> (i == input_size) {</div>
|
||||
<div class="line"><span class="lineno"> 114</span> <span class="keywordflow">continue</span>; <span class="comment">// pass first iteration</span></div>
|
||||
<div class="line"><span class="lineno"> 115</span> }</div>
|
||||
<div class="line"><span class="lineno"> 116</span> padded_message[i] = 0;</div>
|
||||
<div class="line"><span class="lineno"> 117</span> }</div>
|
||||
<div class="line"><span class="lineno"> 118</span> </div>
|
||||
<div class="line"><span class="lineno"> 119</span> <span class="comment">// We then have to add the 64-bit size of the message in bits (hence the</span></div>
|
||||
<div class="line"><span class="lineno"> 120</span> <span class="comment">// times 8) in the last 8 bytes</span></div>
|
||||
<div class="line"><span class="lineno"> 121</span> uint64_t input_bitsize = input_size * 8;</div>
|
||||
<div class="line"><span class="lineno"> 122</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < 8; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 123</span> padded_message[padded_message_size - 8 + i] =</div>
|
||||
<div class="line"><span class="lineno"> 124</span> (input_bitsize >> (56 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 125</span> }</div>
|
||||
<div class="line"><span class="lineno"> 126</span> </div>
|
||||
<div class="line"><span class="lineno"> 127</span> <span class="comment">// Already allocate memory for blocks</span></div>
|
||||
<div class="line"><span class="lineno"> 128</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array<uint32_t, 80></a> blocks{};</div>
|
||||
<div class="line"><span class="lineno"> 129</span> </div>
|
||||
<div class="line"><span class="lineno"> 130</span> <span class="comment">// Rounds</span></div>
|
||||
<div class="line"><span class="lineno"> 131</span> <span class="keywordflow">for</span> (uint64_t chunk = 0; chunk * 64 < padded_message_size; chunk++) {</div>
|
||||
<div class="line"><span class="lineno"> 132</span> <span class="comment">// First, build 16 32-bits blocks from the chunk</span></div>
|
||||
<div class="line"><span class="lineno"> 133</span> <span class="keywordflow">for</span> (uint8_t bid = 0; bid < 16; bid++) {</div>
|
||||
<div class="line"><span class="lineno"> 134</span> blocks[bid] = 0;</div>
|
||||
<div class="line"><span class="lineno"> 135</span> </div>
|
||||
<div class="line"><span class="lineno"> 136</span> <span class="comment">// Having to build a 32-bit word from 4-bit words</span></div>
|
||||
<div class="line"><span class="lineno"> 137</span> <span class="comment">// Add each and shift them to the left</span></div>
|
||||
<div class="line"><span class="lineno"> 138</span> <span class="keywordflow">for</span> (uint8_t cid = 0; cid < 4; cid++) {</div>
|
||||
<div class="line"><span class="lineno"> 139</span> blocks[bid] = (blocks[bid] << 8) +</div>
|
||||
<div class="line"><span class="lineno"> 140</span> padded_message[chunk * 64 + bid * 4 + cid];</div>
|
||||
<div class="line"><span class="lineno"> 141</span> }</div>
|
||||
<div class="line"><span class="lineno"> 142</span> </div>
|
||||
<div class="line"><span class="lineno"> 143</span> <span class="comment">// Extend the 16 32-bit words into 80 32-bit words</span></div>
|
||||
<div class="line"><span class="lineno"> 144</span> <span class="keywordflow">for</span> (uint8_t i = 16; i < 80; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 145</span> blocks[i] =</div>
|
||||
<div class="line"><span class="lineno"> 146</span> <a class="code hl_function" href="../../d5/d96/md5_8cpp.html#add2bf982d5dd64a45d13cba52c2b371d">leftRotate32bits</a>(blocks[i - 3] ^ blocks[i - 8] ^</div>
|
||||
<div class="line"><span class="lineno"> 147</span> blocks[i - 14] ^ blocks[i - 16],</div>
|
||||
<div class="line"><span class="lineno"> 148</span> 1);</div>
|
||||
<div class="line"><span class="lineno"> 149</span> }</div>
|
||||
<div class="line"><span class="lineno"> 150</span> }</div>
|
||||
<div class="line"><span class="lineno"> 151</span> </div>
|
||||
<div class="line"><span class="lineno"> 152</span> a = h0;</div>
|
||||
<div class="line"><span class="lineno"> 153</span> b = h1;</div>
|
||||
<div class="line"><span class="lineno"> 154</span> c = h2;</div>
|
||||
<div class="line"><span class="lineno"> 155</span> d = h3;</div>
|
||||
<div class="line"><span class="lineno"> 156</span> e = h4;</div>
|
||||
<div class="line"><span class="lineno"> 157</span> </div>
|
||||
<div class="line"><span class="lineno"> 158</span> <span class="comment">// Main "hashing" loop</span></div>
|
||||
<div class="line"><span class="lineno"> 159</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < 80; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 160</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"> 161</span> <span class="keywordflow">if</span> (i < 20) {</div>
|
||||
<div class="line"><span class="lineno"> 162</span> F = (b & c) | ((~b) & d);</div>
|
||||
<div class="line"><span class="lineno"> 163</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0x5A827999;</div>
|
||||
<div class="line"><span class="lineno"> 164</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i < 40) {</div>
|
||||
<div class="line"><span class="lineno"> 165</span> F = b ^ c ^ d;</div>
|
||||
<div class="line"><span class="lineno"> 166</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0x6ED9EBA1;</div>
|
||||
<div class="line"><span class="lineno"> 167</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i < 60) {</div>
|
||||
<div class="line"><span class="lineno"> 168</span> F = (b & c) | (b & d) | (c & d);</div>
|
||||
<div class="line"><span class="lineno"> 169</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0x8F1BBCDC;</div>
|
||||
<div class="line"><span class="lineno"> 170</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><span class="lineno"> 171</span> F = b ^ c ^ d;</div>
|
||||
<div class="line"><span class="lineno"> 172</span> <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> = 0xCA62C1D6;</div>
|
||||
<div class="line"><span class="lineno"> 173</span> }</div>
|
||||
<div class="line"><span class="lineno"> 174</span> </div>
|
||||
<div class="line"><span class="lineno"> 175</span> <span class="comment">// Update the accumulators</span></div>
|
||||
<div class="line"><span class="lineno"> 176</span> uint32_t temp = <a class="code hl_function" href="../../d5/d96/md5_8cpp.html#add2bf982d5dd64a45d13cba52c2b371d">leftRotate32bits</a>(a, 5) + F + e + <a class="code hl_function" href="../../d4/d18/composite__simpson__rule_8cpp.html#a2f67508d5f392b0321772169342c98ad">g</a> + blocks[i];</div>
|
||||
<div class="line"><span class="lineno"> 177</span> e = d;</div>
|
||||
<div class="line"><span class="lineno"> 178</span> d = c;</div>
|
||||
<div class="line"><span class="lineno"> 179</span> c = <a class="code hl_function" href="../../d5/d96/md5_8cpp.html#add2bf982d5dd64a45d13cba52c2b371d">leftRotate32bits</a>(b, 30);</div>
|
||||
<div class="line"><span class="lineno"> 180</span> b = a;</div>
|
||||
<div class="line"><span class="lineno"> 181</span> a = temp;</div>
|
||||
<div class="line"><span class="lineno"> 182</span> }</div>
|
||||
<div class="line"><span class="lineno"> 183</span> <span class="comment">// Update the state with this chunk's hash</span></div>
|
||||
<div class="line"><span class="lineno"> 184</span> h0 += a;</div>
|
||||
<div class="line"><span class="lineno"> 185</span> h1 += b;</div>
|
||||
<div class="line"><span class="lineno"> 186</span> h2 += c;</div>
|
||||
<div class="line"><span class="lineno"> 187</span> h3 += d;</div>
|
||||
<div class="line"><span class="lineno"> 188</span> h4 += e;</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> <span class="comment">// Build signature from state</span></div>
|
||||
<div class="line"><span class="lineno"> 192</span> <span class="comment">// Note, any type could be used for the signature</span></div>
|
||||
<div class="line"><span class="lineno"> 193</span> <span class="comment">// uint8_t was used to make the 20 bytes obvious</span></div>
|
||||
<div class="line"><span class="lineno"> 194</span> <span class="keyword">auto</span>* sig = <span class="keyword">new</span> uint8_t[20];</div>
|
||||
<div class="line"><span class="lineno"> 195</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < 4; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 196</span> sig[i] = (h0 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 197</span> sig[i + 4] = (h1 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 198</span> sig[i + 8] = (h2 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 199</span> sig[i + 12] = (h3 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 200</span> sig[i + 16] = (h4 >> (24 - 8 * i)) & 0xFF;</div>
|
||||
<div class="line"><span class="lineno"> 201</span> }</div>
|
||||
<div class="line"><span class="lineno"> 202</span> </div>
|
||||
<div class="line"><span class="lineno"> 203</span> <span class="keywordflow">return</span> sig;</div>
|
||||
<div class="line"><span class="lineno"> 204</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_add2bf982d5dd64a45d13cba52c2b371d"><div class="ttname"><a href="../../d5/d96/md5_8cpp.html#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_add2bf982d5dd64a45d13cba52c2b371d"><div class="ttname"><a href="../../d5/d96/md5_8cpp.html#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>
|
||||
@@ -391,34 +392,34 @@ Here is the call graph for this function:</div>
|
||||
|
||||
<p>Puts user in a loop where inputs can be given and SHA-1 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"> 274</span> {</div>
|
||||
<div class="line"><span class="lineno"> 275</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
|
||||
<div class="line"><span class="lineno"> 276</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"> 277</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter a message to be hashed (Ctrl-C to exit): "</span></div>
|
||||
<div class="line"><span class="lineno"> 278</span> << <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"> 279</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"> 280</span> <span class="keywordtype">void</span>* sig = <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(input);</div>
|
||||
<div class="line"><span class="lineno"> 281</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Hash is: "</span> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig) << <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"> 282</span> </div>
|
||||
<div class="line"><span class="lineno"> 283</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
|
||||
<div class="line"><span class="lineno"> 284</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Want to enter another message? (y/n) "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 285</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"> 286</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">"y"</span>) == 0) {</div>
|
||||
<div class="line"><span class="lineno"> 287</span> <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><span class="lineno"> 288</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">"n"</span>) == 0) {</div>
|
||||
<div class="line"><span class="lineno"> 289</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><span class="lineno"> 290</span> }</div>
|
||||
<div class="line"><span class="lineno"> 291</span> }</div>
|
||||
<div class="line"><span class="lineno"> 292</span> }</div>
|
||||
<div class="line"><span class="lineno"> 293</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 275</span> {</div>
|
||||
<div class="line"><span class="lineno"> 276</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
|
||||
<div class="line"><span class="lineno"> 277</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"> 278</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Enter a message to be hashed (Ctrl-C to exit): "</span></div>
|
||||
<div class="line"><span class="lineno"> 279</span> << <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"> 280</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"> 281</span> <span class="keywordtype">void</span>* sig = <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(input);</div>
|
||||
<div class="line"><span class="lineno"> 282</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Hash is: "</span> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig) << <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"> 283</span> </div>
|
||||
<div class="line"><span class="lineno"> 284</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
|
||||
<div class="line"><span class="lineno"> 285</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Want to enter another message? (y/n) "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 286</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"> 287</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">"y"</span>) == 0) {</div>
|
||||
<div class="line"><span class="lineno"> 288</span> <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><span class="lineno"> 289</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">"n"</span>) == 0) {</div>
|
||||
<div class="line"><span class="lineno"> 290</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><span class="lineno"> 291</span> }</div>
|
||||
<div class="line"><span class="lineno"> 292</span> }</div>
|
||||
<div class="line"><span class="lineno"> 293</span> }</div>
|
||||
<div class="line"><span class="lineno"> 294</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="asha1_8cpp_html_a2397f2444a05e4d1487c67e215410d3c"><div class="ttname"><a href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a></div><div class="ttdeci">void * hash(const std::string &message)</div><div class="ttdoc">Converts the string to bytestring and calls the main algorithm.</div><div class="ttdef"><b>Definition</b> sha1.cpp:210</div></div>
|
||||
<div class="ttc" id="asha1_8cpp_html_aada0803ef851d831b7a290a924e3c228"><div class="ttname"><a href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a></div><div class="ttdeci">std::string sig2hex(void *sig)</div><div class="ttdoc">Transforms the 160-bit SHA-1 signature into a 40 char hex string.</div><div class="ttdef"><b>Definition</b> sha1.cpp:66</div></div>
|
||||
<div class="ttc" id="asha1_8cpp_html_a2397f2444a05e4d1487c67e215410d3c"><div class="ttname"><a href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a></div><div class="ttdeci">void * hash(const std::string &message)</div><div class="ttdoc">Converts the string to bytestring and calls the main algorithm.</div><div class="ttdef"><b>Definition</b> sha1.cpp:211</div></div>
|
||||
<div class="ttc" id="asha1_8cpp_html_aada0803ef851d831b7a290a924e3c228"><div class="ttname"><a href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a></div><div class="ttdeci">std::string sig2hex(void *sig)</div><div class="ttdoc">Transforms the 160-bit SHA-1 signature into a 40 char hex string.</div><div class="ttdef"><b>Definition</b> sha1.cpp:67</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -455,9 +456,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"> 57</span> {</div>
|
||||
<div class="line"><span class="lineno"> 58</span> <span class="keywordflow">return</span> (n << rotate) | (n >> (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"> 59</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">return</span> (n << rotate) | (n >> (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"> 60</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>
|
||||
@@ -479,16 +480,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"> 299</span> {</div>
|
||||
<div class="line"><span class="lineno"> 300</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"> 301</span> </div>
|
||||
<div class="line"><span class="lineno"> 302</span> <span class="comment">// Launch interactive mode where user can input messages and see</span></div>
|
||||
<div class="line"><span class="lineno"> 303</span> <span class="comment">// their hash</span></div>
|
||||
<div class="line"><span class="lineno"> 304</span> <a class="code hl_function" href="#ac9e1a11f44135b890dd10a00e73b5661">interactive</a>();</div>
|
||||
<div class="line"><span class="lineno"> 305</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 306</span>}</div>
|
||||
<div class="ttc" id="asha1_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 SHA-1 hashes.</div><div class="ttdef"><b>Definition</b> sha1.cpp:220</div></div>
|
||||
<div class="ttc" id="asha1_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 SHA-1 hash will be computed and printed.</div><div class="ttdef"><b>Definition</b> sha1.cpp:274</div></div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 300</span> {</div>
|
||||
<div class="line"><span class="lineno"> 301</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"> 302</span> </div>
|
||||
<div class="line"><span class="lineno"> 303</span> <span class="comment">// Launch interactive mode where user can input messages and see</span></div>
|
||||
<div class="line"><span class="lineno"> 304</span> <span class="comment">// their hash</span></div>
|
||||
<div class="line"><span class="lineno"> 305</span> <a class="code hl_function" href="#ac9e1a11f44135b890dd10a00e73b5661">interactive</a>();</div>
|
||||
<div class="line"><span class="lineno"> 306</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 307</span>}</div>
|
||||
<div class="ttc" id="asha1_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 SHA-1 hashes.</div><div class="ttdef"><b>Definition</b> sha1.cpp:221</div></div>
|
||||
<div class="ttc" id="asha1_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 SHA-1 hash will be computed and printed.</div><div class="ttdef"><b>Definition</b> sha1.cpp:275</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -520,16 +521,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"> 66</span> {</div>
|
||||
<div class="line"><span class="lineno"> 67</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* hexChars = <span class="stringliteral">"0123456789abcdef"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 68</span> <span class="keyword">auto</span>* intsig = <span class="keyword">static_cast<</span>uint8_t*<span class="keyword">></span>(sig);</div>
|
||||
<div class="line"><span class="lineno"> 69</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">""</span>;</div>
|
||||
<div class="line"><span class="lineno"> 70</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < 20; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 71</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] >> 4) & 0xF]);</div>
|
||||
<div class="line"><span class="lineno"> 72</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]) & 0xF]);</div>
|
||||
<div class="line"><span class="lineno"> 73</span> }</div>
|
||||
<div class="line"><span class="lineno"> 74</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"> 75</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 67</span> {</div>
|
||||
<div class="line"><span class="lineno"> 68</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* hexChars = <span class="stringliteral">"0123456789abcdef"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 69</span> <span class="keyword">auto</span>* intsig = <span class="keyword">static_cast<</span>uint8_t*<span class="keyword">></span>(sig);</div>
|
||||
<div class="line"><span class="lineno"> 70</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">""</span>;</div>
|
||||
<div class="line"><span class="lineno"> 71</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < 20; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 72</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] >> 4) & 0xF]);</div>
|
||||
<div class="line"><span class="lineno"> 73</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]) & 0xF]);</div>
|
||||
<div class="line"><span class="lineno"> 74</span> }</div>
|
||||
<div class="line"><span class="lineno"> 75</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"> 76</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>
|
||||
@@ -559,54 +560,54 @@ Here is the call graph for this function:</div>
|
||||
|
||||
<p>Self-test implementations of well-known SHA-1 hashes. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 220</span> {</div>
|
||||
<div class="line"><span class="lineno"> 221</span> <span class="comment">// Hashes empty string and stores signature</span></div>
|
||||
<div class="line"><span class="lineno"> 222</span> <span class="keywordtype">void</span>* sig = <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(<span class="stringliteral">""</span>);</div>
|
||||
<div class="line"><span class="lineno"> 223</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Hashing empty string"</span> << <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"> 224</span> <span class="comment">// Prints signature hex representation</span></div>
|
||||
<div class="line"><span class="lineno"> 225</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <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"> 226</span> <span class="comment">// Test with cassert wether sig is correct from expected value</span></div>
|
||||
<div class="line"><span class="lineno"> 227</span> assert(hashing::sha1::sig2hex(sig).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
|
||||
<div class="line"><span class="lineno"> 228</span> <span class="stringliteral">"da39a3ee5e6b4b0d3255bfef95601890afd80709"</span>) == 0);</div>
|
||||
<div class="line"><span class="lineno"> 229</span> </div>
|
||||
<div class="line"><span class="lineno"> 230</span> <span class="comment">// Hashes "The quick brown fox jumps over the lazy dog" and stores signature</span></div>
|
||||
<div class="line"><span class="lineno"> 231</span> <span class="keywordtype">void</span>* sig2 =</div>
|
||||
<div class="line"><span class="lineno"> 232</span> <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(<span class="stringliteral">"The quick brown fox jumps over the lazy dog"</span>);</div>
|
||||
<div class="line"><span class="lineno"> 233</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Hashing The quick brown fox jumps over the lazy dog"</span></div>
|
||||
<div class="line"><span class="lineno"> 234</span> << <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"> 235</span> <span class="comment">// Prints signature hex representation</span></div>
|
||||
<div class="line"><span class="lineno"> 236</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig2) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <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"> 237</span> <span class="comment">// Test with cassert wether sig is correct from expected value</span></div>
|
||||
<div class="line"><span class="lineno"> 238</span> assert(hashing::sha1::sig2hex(sig2).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
|
||||
<div class="line"><span class="lineno"> 239</span> <span class="stringliteral">"2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"</span>) == 0);</div>
|
||||
<div class="line"><span class="lineno"> 240</span> </div>
|
||||
<div class="line"><span class="lineno"> 241</span> <span class="comment">// Hashes "The quick brown fox jumps over the lazy dog." (notice the</span></div>
|
||||
<div class="line"><span class="lineno"> 242</span> <span class="comment">// additional period) and stores signature</span></div>
|
||||
<div class="line"><span class="lineno"> 243</span> <span class="keywordtype">void</span>* sig3 =</div>
|
||||
<div class="line"><span class="lineno"> 244</span> <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(<span class="stringliteral">"The quick brown fox jumps over the lazy dog."</span>);</div>
|
||||
<div class="line"><span class="lineno"> 245</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Hashing "</span></div>
|
||||
<div class="line"><span class="lineno"> 246</span> <span class="stringliteral">"The quick brown fox jumps over the lazy dog."</span></div>
|
||||
<div class="line"><span class="lineno"> 247</span> << <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"> 248</span> <span class="comment">// Prints signature hex representation</span></div>
|
||||
<div class="line"><span class="lineno"> 249</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig3) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <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"> 250</span> <span class="comment">// Test with cassert wether sig is correct from expected value</span></div>
|
||||
<div class="line"><span class="lineno"> 251</span> assert(hashing::sha1::sig2hex(sig3).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
|
||||
<div class="line"><span class="lineno"> 252</span> <span class="stringliteral">"408d94384216f890ff7a0c3528e8bed1e0b01621"</span>) == 0);</div>
|
||||
<div class="line"><span class="lineno"> 253</span> </div>
|
||||
<div class="line"><span class="lineno"> 254</span> <span class="comment">// Hashes "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span></div>
|
||||
<div class="line"><span class="lineno"> 255</span> <span class="comment">// and stores signature</span></div>
|
||||
<div class="line"><span class="lineno"> 256</span> <span class="keywordtype">void</span>* sig4 = <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(</div>
|
||||
<div class="line"><span class="lineno"> 257</span> <span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span>);</div>
|
||||
<div class="line"><span class="lineno"> 258</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"> 259</span> << <span class="stringliteral">"Hashing "</span></div>
|
||||
<div class="line"><span class="lineno"> 260</span> <span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span></div>
|
||||
<div class="line"><span class="lineno"> 261</span> << <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"> 262</span> <span class="comment">// Prints signature hex representation</span></div>
|
||||
<div class="line"><span class="lineno"> 263</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig4) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <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"> 264</span> <span class="comment">// Test with cassert wether sig is correct from expected value</span></div>
|
||||
<div class="line"><span class="lineno"> 265</span> assert(hashing::sha1::sig2hex(sig4).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
|
||||
<div class="line"><span class="lineno"> 266</span> <span class="stringliteral">"761c457bf73b14d27e9e9265c46f4b4dda11f940"</span>) == 0);</div>
|
||||
<div class="line"><span class="lineno"> 267</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 221</span> {</div>
|
||||
<div class="line"><span class="lineno"> 222</span> <span class="comment">// Hashes empty string and stores signature</span></div>
|
||||
<div class="line"><span class="lineno"> 223</span> <span class="keywordtype">void</span>* sig = <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(<span class="stringliteral">""</span>);</div>
|
||||
<div class="line"><span class="lineno"> 224</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Hashing empty string"</span> << <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"> 225</span> <span class="comment">// Prints signature hex representation</span></div>
|
||||
<div class="line"><span class="lineno"> 226</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <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"> 227</span> <span class="comment">// Test with cassert wether sig is correct from expected value</span></div>
|
||||
<div class="line"><span class="lineno"> 228</span> assert(hashing::sha1::sig2hex(sig).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
|
||||
<div class="line"><span class="lineno"> 229</span> <span class="stringliteral">"da39a3ee5e6b4b0d3255bfef95601890afd80709"</span>) == 0);</div>
|
||||
<div class="line"><span class="lineno"> 230</span> </div>
|
||||
<div class="line"><span class="lineno"> 231</span> <span class="comment">// Hashes "The quick brown fox jumps over the lazy dog" and stores signature</span></div>
|
||||
<div class="line"><span class="lineno"> 232</span> <span class="keywordtype">void</span>* sig2 =</div>
|
||||
<div class="line"><span class="lineno"> 233</span> <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(<span class="stringliteral">"The quick brown fox jumps over the lazy dog"</span>);</div>
|
||||
<div class="line"><span class="lineno"> 234</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Hashing The quick brown fox jumps over the lazy dog"</span></div>
|
||||
<div class="line"><span class="lineno"> 235</span> << <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"> 236</span> <span class="comment">// Prints signature hex representation</span></div>
|
||||
<div class="line"><span class="lineno"> 237</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig2) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <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"> 238</span> <span class="comment">// Test with cassert wether sig is correct from expected value</span></div>
|
||||
<div class="line"><span class="lineno"> 239</span> assert(hashing::sha1::sig2hex(sig2).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
|
||||
<div class="line"><span class="lineno"> 240</span> <span class="stringliteral">"2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"</span>) == 0);</div>
|
||||
<div class="line"><span class="lineno"> 241</span> </div>
|
||||
<div class="line"><span class="lineno"> 242</span> <span class="comment">// Hashes "The quick brown fox jumps over the lazy dog." (notice the</span></div>
|
||||
<div class="line"><span class="lineno"> 243</span> <span class="comment">// additional period) and stores signature</span></div>
|
||||
<div class="line"><span class="lineno"> 244</span> <span class="keywordtype">void</span>* sig3 =</div>
|
||||
<div class="line"><span class="lineno"> 245</span> <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(<span class="stringliteral">"The quick brown fox jumps over the lazy dog."</span>);</div>
|
||||
<div class="line"><span class="lineno"> 246</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"Hashing "</span></div>
|
||||
<div class="line"><span class="lineno"> 247</span> <span class="stringliteral">"The quick brown fox jumps over the lazy dog."</span></div>
|
||||
<div class="line"><span class="lineno"> 248</span> << <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"> 249</span> <span class="comment">// Prints signature hex representation</span></div>
|
||||
<div class="line"><span class="lineno"> 250</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig3) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <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"> 251</span> <span class="comment">// Test with cassert wether sig is correct from expected value</span></div>
|
||||
<div class="line"><span class="lineno"> 252</span> assert(hashing::sha1::sig2hex(sig3).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
|
||||
<div class="line"><span class="lineno"> 253</span> <span class="stringliteral">"408d94384216f890ff7a0c3528e8bed1e0b01621"</span>) == 0);</div>
|
||||
<div class="line"><span class="lineno"> 254</span> </div>
|
||||
<div class="line"><span class="lineno"> 255</span> <span class="comment">// Hashes "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span></div>
|
||||
<div class="line"><span class="lineno"> 256</span> <span class="comment">// and stores signature</span></div>
|
||||
<div class="line"><span class="lineno"> 257</span> <span class="keywordtype">void</span>* sig4 = <a class="code hl_function" href="#a2397f2444a05e4d1487c67e215410d3c">hashing::sha1::hash</a>(</div>
|
||||
<div class="line"><span class="lineno"> 258</span> <span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span>);</div>
|
||||
<div class="line"><span class="lineno"> 259</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"> 260</span> << <span class="stringliteral">"Hashing "</span></div>
|
||||
<div class="line"><span class="lineno"> 261</span> <span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span></div>
|
||||
<div class="line"><span class="lineno"> 262</span> << <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"> 263</span> <span class="comment">// Prints signature hex representation</span></div>
|
||||
<div class="line"><span class="lineno"> 264</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <a class="code hl_function" href="#aada0803ef851d831b7a290a924e3c228">hashing::sha1::sig2hex</a>(sig4) << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a> << <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"> 265</span> <span class="comment">// Test with cassert wether sig is correct from expected value</span></div>
|
||||
<div class="line"><span class="lineno"> 266</span> assert(hashing::sha1::sig2hex(sig4).<a class="code hl_function" href="../../d4/d7a/shell__sort2_8cpp.html#a7eb77daed2cf1513f6d68c47a1c2db1c">compare</a>(</div>
|
||||
<div class="line"><span class="lineno"> 267</span> <span class="stringliteral">"761c457bf73b14d27e9e9265c46f4b4dda11f940"</span>) == 0);</div>
|
||||
<div class="line"><span class="lineno"> 268</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>
|
||||
|
||||
@@ -238,7 +238,7 @@ Here is the call graph for this function:</div>
|
||||
<div class="line"><span class="lineno"> 196</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="auint128__t_8hpp_html_a3ff77262ffd6743df5b808d41382a6f3"><div class="ttname"><a href="../../da/d41/uint128__t_8hpp.html#a3ff77262ffd6743df5b808d41382a6f3">add</a></div><div class="ttdeci">std::string add(const std::string &first, const std::string &second)</div><div class="ttdoc">Adding two string.</div><div class="ttdef"><b>Definition</b> uint128_t.hpp:37</div></div>
|
||||
<div class="ttc" id="auint128__t_8hpp_html_a3ff77262ffd6743df5b808d41382a6f3"><div class="ttname"><a href="../../da/d41/uint128__t_8hpp.html#a3ff77262ffd6743df5b808d41382a6f3">add</a></div><div class="ttdeci">std::string add(const std::string &first, const std::string &second)</div><div class="ttdoc">Adding two string.</div><div class="ttdef"><b>Definition</b> uint128_t.hpp:38</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
|
||||
@@ -114,12 +114,12 @@ $(function(){initNavTree('d8/d8a/exponential__search_8cpp.html','../../'); initR
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <cassert></code><br />
|
||||
<code>#include <cmath></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
<code>#include <cstdint></code><br />
|
||||
<code>#include <cstring></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for exponential_search.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../df/d3c/exponential__search_8cpp__incl.svg" width="336" 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="../../df/d3c/exponential__search_8cpp__incl.svg" width="326" 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="func-members" name="func-members"></a>
|
||||
|
||||
@@ -296,8 +296,8 @@ Iterative Inorder Traversal of a tree</h3>
|
||||
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
|
||||
<div class="ttc" id="aclassothers_1_1iterative__tree__traversals_1_1_binary_tree_html"><div class="ttname"><a href="../../d9/d12/classothers_1_1iterative__tree__traversals_1_1_binary_tree.html">others::iterative_tree_traversals::BinaryTree</a></div><div class="ttdoc">defines the functions associated with the binary tree</div><div class="ttdef"><b>Definition</b> iterative_tree_traversals.cpp:67</div></div>
|
||||
<div class="ttc" id="aclassothers_1_1iterative__tree__traversals_1_1_binary_tree_html_a3078a5ccf45d6a7031dcf46e43de65b6"><div class="ttname"><a href="../../d9/d12/classothers_1_1iterative__tree__traversals_1_1_binary_tree.html#a3078a5ccf45d6a7031dcf46e43de65b6">others::iterative_tree_traversals::BinaryTree::createNewNode</a></div><div class="ttdeci">Node * createNewNode(int64_t)</div><div class="ttdoc">function that will create new node for insertion.</div><div class="ttdef"><b>Definition</b> iterative_tree_traversals.cpp:88</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="aiterative__tree__traversals_8cpp_html_a038b236fe900f7bb7e57164f5bed66c2"><div class="ttname"><a href="#a038b236fe900f7bb7e57164f5bed66c2">test4</a></div><div class="ttdeci">static void test4(others::iterative_tree_traversals::BinaryTree binaryTree, others::iterative_tree_traversals::Node *root)</div><div class="ttdoc">Test the computed preorder with the actual preorder on negative value.</div><div class="ttdef"><b>Definition</b> iterative_tree_traversals.cpp:291</div></div>
|
||||
@@ -369,7 +369,7 @@ Here is the call graph for this function:</div>
|
||||
<div class="line"><span class="lineno"> 229</span> }</div>
|
||||
<div class="line"><span class="lineno"> 230</span>}</div>
|
||||
<div class="ttc" id="aclassothers_1_1iterative__tree__traversals_1_1_binary_tree_html_ad4c6a8e67fb8267a65439b035666b5ae"><div class="ttname"><a href="../../d9/d12/classothers_1_1iterative__tree__traversals_1_1_binary_tree.html#ad4c6a8e67fb8267a65439b035666b5ae">others::iterative_tree_traversals::BinaryTree::preOrderIterative</a></div><div class="ttdeci">std::vector< int64_t > preOrderIterative(Node *)</div><div class="ttdoc">preOrderIterative() function that will perform the preorder traversal iteratively,...</div><div class="ttdef"><b>Definition</b> iterative_tree_traversals.cpp:102</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="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>
|
||||
|
||||
@@ -114,13 +114,14 @@ $(function(){initNavTree('d8/d99/connected__components__with__dsu_8cpp.html','..
|
||||
|
||||
<p><a href="https://en.wikipedia.org/wiki/Disjoint_union" target="_blank">Disjoint union</a>
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <iostream></code><br />
|
||||
<div class="textblock"><code>#include <cstdint></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
<code>#include <set></code><br />
|
||||
<code>#include <vector></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for connected_components_with_dsu.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/d74/connected__components__with__dsu_8cpp__incl.svg" width="227" 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="../../da/d74/connected__components__with__dsu_8cpp__incl.svg" width="311" 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>
|
||||
@@ -199,13 +200,13 @@ Algorithm</h3>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>parent of val </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 49</span> {</div>
|
||||
<div class="line"><span class="lineno"> 50</span> <span class="keywordflow">while</span> (parent[val] != val) {</div>
|
||||
<div class="line"><span class="lineno"> 51</span> parent[val] = parent[parent[val]];</div>
|
||||
<div class="line"><span class="lineno"> 52</span> val = parent[val];</div>
|
||||
<div class="line"><span class="lineno"> 53</span> }</div>
|
||||
<div class="line"><span class="lineno"> 54</span> <span class="keywordflow">return</span> val;</div>
|
||||
<div class="line"><span class="lineno"> 55</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 54</span> {</div>
|
||||
<div class="line"><span class="lineno"> 55</span> <span class="keywordflow">while</span> (parent[val] != val) {</div>
|
||||
<div class="line"><span class="lineno"> 56</span> parent[val] = parent[parent[val]];</div>
|
||||
<div class="line"><span class="lineno"> 57</span> val = parent[val];</div>
|
||||
<div class="line"><span class="lineno"> 58</span> }</div>
|
||||
<div class="line"><span class="lineno"> 59</span> <span class="keywordflow">return</span> val;</div>
|
||||
<div class="line"><span class="lineno"> 60</span>}</div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -231,11 +232,11 @@ 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"> 112</span> {</div>
|
||||
<div class="line"><span class="lineno"> 113</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// Execute the tests</span></div>
|
||||
<div class="line"><span class="lineno"> 114</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 115</span>}</div>
|
||||
<div class="ttc" id="aconnected__components__with__dsu_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Test Implementations.</div><div class="ttdef"><b>Definition</b> connected_components_with_dsu.cpp:92</div></div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 117</span> {</div>
|
||||
<div class="line"><span class="lineno"> 118</span> <a class="code hl_function" href="#aa8dca7b867074164d5f45b0f3851269d">test</a>(); <span class="comment">// Execute the tests</span></div>
|
||||
<div class="line"><span class="lineno"> 119</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 120</span>}</div>
|
||||
<div class="ttc" id="aconnected__components__with__dsu_8cpp_html_aa8dca7b867074164d5f45b0f3851269d"><div class="ttname"><a href="#aa8dca7b867074164d5f45b0f3851269d">test</a></div><div class="ttdeci">static void test()</div><div class="ttdoc">Test Implementations.</div><div class="ttdef"><b>Definition</b> connected_components_with_dsu.cpp:97</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -261,12 +262,12 @@ Here is the call graph for this function:</div>
|
||||
|
||||
<p>function the initialize every node as it's own parent </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 38</span> {</div>
|
||||
<div class="line"><span class="lineno"> 39</span> <span class="keywordflow">for</span> (uint32_t i = 1; i <= number_of_nodes; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 40</span> parent[i] = i;</div>
|
||||
<div class="line"><span class="lineno"> 41</span> connected_set_size[i] = 1;</div>
|
||||
<div class="line"><span class="lineno"> 42</span> }</div>
|
||||
<div class="line"><span class="lineno"> 43</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 43</span> {</div>
|
||||
<div class="line"><span class="lineno"> 44</span> <span class="keywordflow">for</span> (uint32_t i = 1; i <= number_of_nodes; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 45</span> parent[i] = i;</div>
|
||||
<div class="line"><span class="lineno"> 46</span> connected_set_size[i] = 1;</div>
|
||||
<div class="line"><span class="lineno"> 47</span> }</div>
|
||||
<div class="line"><span class="lineno"> 48</span>}</div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -292,12 +293,12 @@ Here is the call graph for this function:</div>
|
||||
|
||||
<p>Find total no. of connected components. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Number of connected components </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 80</span> {</div>
|
||||
<div class="line"><span class="lineno"> 81</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/set.html">std::set<int64_t></a> temp; <span class="comment">// temp set to count number of connected components</span></div>
|
||||
<div class="line"><span class="lineno"> 82</span> <span class="keywordflow">for</span> (uint32_t i = 1; i <= number_of_nodes; i++) temp.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/set/insert.html">insert</a>(<a class="code hl_function" href="#a469384d8a4197a9b24482ce7c321a85e">find_set</a>(i));</div>
|
||||
<div class="line"><span class="lineno"> 83</span> <span class="keywordflow">return</span> temp.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/set/size.html">size</a>(); <span class="comment">// return the size of temp set</span></div>
|
||||
<div class="line"><span class="lineno"> 84</span>}</div>
|
||||
<div class="ttc" id="aconnected__components__with__dsu_8cpp_html_a469384d8a4197a9b24482ce7c321a85e"><div class="ttname"><a href="#a469384d8a4197a9b24482ce7c321a85e">graph::disjoint_union::find_set</a></div><div class="ttdeci">int64_t find_set(int64_t val)</div><div class="ttdoc">Find the component where following node belongs to.</div><div class="ttdef"><b>Definition</b> connected_components_with_dsu.cpp:49</div></div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 85</span> {</div>
|
||||
<div class="line"><span class="lineno"> 86</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/set.html">std::set<int64_t></a> temp; <span class="comment">// temp set to count number of connected components</span></div>
|
||||
<div class="line"><span class="lineno"> 87</span> <span class="keywordflow">for</span> (uint32_t i = 1; i <= number_of_nodes; i++) temp.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/set/insert.html">insert</a>(<a class="code hl_function" href="#a469384d8a4197a9b24482ce7c321a85e">find_set</a>(i));</div>
|
||||
<div class="line"><span class="lineno"> 88</span> <span class="keywordflow">return</span> temp.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/set/size.html">size</a>(); <span class="comment">// return the size of temp set</span></div>
|
||||
<div class="line"><span class="lineno"> 89</span>}</div>
|
||||
<div class="ttc" id="aconnected__components__with__dsu_8cpp_html_a469384d8a4197a9b24482ce7c321a85e"><div class="ttname"><a href="#a469384d8a4197a9b24482ce7c321a85e">graph::disjoint_union::find_set</a></div><div class="ttdeci">int64_t find_set(int64_t val)</div><div class="ttdoc">Find the component where following node belongs to.</div><div class="ttdef"><b>Definition</b> connected_components_with_dsu.cpp:54</div></div>
|
||||
<div class="ttc" id="ainsert_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/set/insert.html">std::set::insert</a></div><div class="ttdeci">T insert(T... args)</div></div>
|
||||
<div class="ttc" id="aset_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/set.html">std::set</a></div></div>
|
||||
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/set/size.html">std::set::size</a></div><div class="ttdeci">T size(T... args)</div></div>
|
||||
@@ -334,24 +335,24 @@ Here is the call graph for this function:</div>
|
||||
|
||||
<p>Test Implementations. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 92</span> {</div>
|
||||
<div class="line"><span class="lineno"> 93</span> <span class="keyword">namespace </span><a class="code hl_class" href="../../dd/d1f/classdsu.html">dsu</a> = graph::disjoint_union;</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_istream.html">std::cin</a> >> dsu::number_of_nodes;</div>
|
||||
<div class="line"><span class="lineno"> 95</span> dsu::parent.resize(dsu::number_of_nodes + 1);</div>
|
||||
<div class="line"><span class="lineno"> 96</span> dsu::connected_set_size.resize(dsu::number_of_nodes + 1);</div>
|
||||
<div class="line"><span class="lineno"> 97</span> dsu::make_set();</div>
|
||||
<div class="line"><span class="lineno"> 98</span> uint32_t edges = 0;</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_istream.html">std::cin</a> >> edges; <span class="comment">// no of edges in the graph</span></div>
|
||||
<div class="line"><span class="lineno"> 100</span> <span class="keywordflow">while</span> (edges--) {</div>
|
||||
<div class="line"><span class="lineno"> 101</span> int64_t node_a = 0, node_b = 0;</div>
|
||||
<div class="line"><span class="lineno"> 102</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> node_a >> node_b;</div>
|
||||
<div class="line"><span class="lineno"> 103</span> dsu::union_sets(node_a, node_b);</div>
|
||||
<div class="line"><span class="lineno"> 104</span> }</div>
|
||||
<div class="line"><span class="lineno"> 105</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << dsu::no_of_connected_components() << <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"> 106</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 97</span> {</div>
|
||||
<div class="line"><span class="lineno"> 98</span> <span class="keyword">namespace </span><a class="code hl_class" href="../../dd/d1f/classdsu.html">dsu</a> = graph::disjoint_union;</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_istream.html">std::cin</a> >> dsu::number_of_nodes;</div>
|
||||
<div class="line"><span class="lineno"> 100</span> dsu::parent.resize(dsu::number_of_nodes + 1);</div>
|
||||
<div class="line"><span class="lineno"> 101</span> dsu::connected_set_size.resize(dsu::number_of_nodes + 1);</div>
|
||||
<div class="line"><span class="lineno"> 102</span> dsu::make_set();</div>
|
||||
<div class="line"><span class="lineno"> 103</span> uint32_t edges = 0;</div>
|
||||
<div class="line"><span class="lineno"> 104</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> edges; <span class="comment">// no of edges in the graph</span></div>
|
||||
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">while</span> (edges--) {</div>
|
||||
<div class="line"><span class="lineno"> 106</span> int64_t node_a = 0, node_b = 0;</div>
|
||||
<div class="line"><span class="lineno"> 107</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> node_a >> node_b;</div>
|
||||
<div class="line"><span class="lineno"> 108</span> dsu::union_sets(node_a, node_b);</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/io/basic_ostream.html">std::cout</a> << dsu::no_of_connected_components() << <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
||||
<div class="line"><span class="lineno"> 111</span>}</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="aclassdsu_html"><div class="ttname"><a href="../../dd/d1f/classdsu.html">dsu</a></div><div class="ttdoc">Disjoint sets union data structure, class based representation.</div><div class="ttdef"><b>Definition</b> dsu_path_compression.cpp:33</div></div>
|
||||
<div class="ttc" id="aclassdsu_html"><div class="ttname"><a href="../../dd/d1f/classdsu.html">dsu</a></div><div class="ttdoc">Disjoint sets union data structure, class based representation.</div><div class="ttdef"><b>Definition</b> dsu_path_compression.cpp:34</div></div>
|
||||
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
@@ -389,20 +390,20 @@ 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"> 62</span> {</div>
|
||||
<div class="line"><span class="lineno"> 63</span> node1 = <a class="code hl_function" href="#a469384d8a4197a9b24482ce7c321a85e">find_set</a>(node1); <span class="comment">// find the parent of node1</span></div>
|
||||
<div class="line"><span class="lineno"> 64</span> node2 = <a class="code hl_function" href="#a469384d8a4197a9b24482ce7c321a85e">find_set</a>(node2); <span class="comment">// find the parent of node2</span></div>
|
||||
<div class="line"><span class="lineno"> 65</span> </div>
|
||||
<div class="line"><span class="lineno"> 66</span> <span class="comment">// If parents of both nodes are not same, combine them</span></div>
|
||||
<div class="line"><span class="lineno"> 67</span> <span class="keywordflow">if</span> (node1 != node2) {</div>
|
||||
<div class="line"><span class="lineno"> 68</span> <span class="keywordflow">if</span> (connected_set_size[node1] < connected_set_size[node2]) {</div>
|
||||
<div class="line"><span class="lineno"> 69</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>(node1, node2); <span class="comment">// swap both components</span></div>
|
||||
<div class="line"><span class="lineno"> 70</span> }</div>
|
||||
<div class="line"><span class="lineno"> 71</span> parent[node2] = node1; <span class="comment">// make node1 as parent of node2.</span></div>
|
||||
<div class="line"><span class="lineno"> 72</span> connected_set_size[node1] +=</div>
|
||||
<div class="line"><span class="lineno"> 73</span> connected_set_size[node2]; <span class="comment">// sum the size of both as they combined</span></div>
|
||||
<div class="line"><span class="lineno"> 74</span> }</div>
|
||||
<div class="line"><span class="lineno"> 75</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 67</span> {</div>
|
||||
<div class="line"><span class="lineno"> 68</span> node1 = <a class="code hl_function" href="#a469384d8a4197a9b24482ce7c321a85e">find_set</a>(node1); <span class="comment">// find the parent of node1</span></div>
|
||||
<div class="line"><span class="lineno"> 69</span> node2 = <a class="code hl_function" href="#a469384d8a4197a9b24482ce7c321a85e">find_set</a>(node2); <span class="comment">// find the parent of node2</span></div>
|
||||
<div class="line"><span class="lineno"> 70</span> </div>
|
||||
<div class="line"><span class="lineno"> 71</span> <span class="comment">// If parents of both nodes are not same, combine them</span></div>
|
||||
<div class="line"><span class="lineno"> 72</span> <span class="keywordflow">if</span> (node1 != node2) {</div>
|
||||
<div class="line"><span class="lineno"> 73</span> <span class="keywordflow">if</span> (connected_set_size[node1] < connected_set_size[node2]) {</div>
|
||||
<div class="line"><span class="lineno"> 74</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>(node1, node2); <span class="comment">// swap both components</span></div>
|
||||
<div class="line"><span class="lineno"> 75</span> }</div>
|
||||
<div class="line"><span class="lineno"> 76</span> parent[node2] = node1; <span class="comment">// make node1 as parent of node2.</span></div>
|
||||
<div class="line"><span class="lineno"> 77</span> connected_set_size[node1] +=</div>
|
||||
<div class="line"><span class="lineno"> 78</span> connected_set_size[node2]; <span class="comment">// sum the size of both as they combined</span></div>
|
||||
<div class="line"><span class="lineno"> 79</span> }</div>
|
||||
<div class="line"><span class="lineno"> 80</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>
|
||||
@@ -424,7 +425,7 @@ Here is the call graph for this function:</div>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 33</span>{}; <span class="comment">// size of each set</span></div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 38</span>{}; <span class="comment">// size of each set</span></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
@@ -439,7 +440,7 @@ Here is the call graph for this function:</div>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 32</span>{}; <span class="comment">// parent of each node</span></div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 37</span>{}; <span class="comment">// parent of each node</span></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -116,12 +116,13 @@ $(function(){initNavTree('d8/d9a/fast__fourier__transform_8cpp.html','../../');
|
||||
<div class="textblock"><code>#include <cassert></code><br />
|
||||
<code>#include <cmath></code><br />
|
||||
<code>#include <complex></code><br />
|
||||
<code>#include <cstdint></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
<code>#include <vector></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for fast_fourier_transform.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d0/d15/fast__fourier__transform_8cpp__incl.svg" width="428" 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="../../d0/d15/fast__fourier__transform_8cpp__incl.svg" width="512" 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>
|
||||
@@ -174,12 +175,12 @@ Functions</h2></td></tr>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 162</span> {</div>
|
||||
<div class="line"><span class="lineno"> 163</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"> 164</span> <span class="comment">// with 2 defined test cases</span></div>
|
||||
<div class="line"><span class="lineno"> 165</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 166</span>}</div>
|
||||
<div class="ttc" id="afast__fourier__transform_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> fast_fourier_transform.cpp:104</div></div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 163</span> {</div>
|
||||
<div class="line"><span class="lineno"> 164</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"> 165</span> <span class="comment">// with 2 defined test cases</span></div>
|
||||
<div class="line"><span class="lineno"> 166</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 167</span>}</div>
|
||||
<div class="ttc" id="afast__fourier__transform_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> fast_fourier_transform.cpp:105</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -221,59 +222,59 @@ Here is the call graph for this function:</div>
|
||||
<p>Temporary variable used to delete memory location of o2</p>
|
||||
<p>Comparing for both real and imaginary values for test case 1</p>
|
||||
<p>Comparing for both real and imaginary values for test case 2</p>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 104</span> {</div>
|
||||
<div class="line"><span class="lineno"> 105</span> <span class="comment">/* descriptions of the following test */</span></div>
|
||||
<div class="line"><span class="lineno"> 106</span> </div>
|
||||
<div class="line"><span class="lineno"> 107</span> <span class="keyword">auto</span> *t1 = <span class="keyword">new</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a>[2]; <span class="comment">/// Test case 1</span></div>
|
||||
<div class="line"><span class="lineno"> 108</span> <span class="keyword">auto</span> *t2 = <span class="keyword">new</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a>[4]; <span class="comment">/// Test case 2</span></div>
|
||||
<div class="line"><span class="lineno"> 109</span> </div>
|
||||
<div class="line"><span class="lineno"> 110</span> t1[0] = {1, 0};</div>
|
||||
<div class="line"><span class="lineno"> 111</span> t1[1] = {2, 0};</div>
|
||||
<div class="line"><span class="lineno"> 112</span> t2[0] = {1, 0};</div>
|
||||
<div class="line"><span class="lineno"> 113</span> t2[1] = {2, 0};</div>
|
||||
<div class="line"><span class="lineno"> 114</span> t2[2] = {3, 0};</div>
|
||||
<div class="line"><span class="lineno"> 115</span> t2[3] = {4, 0};</div>
|
||||
<div class="line"><span class="lineno"> 116</span> </div>
|
||||
<div class="line"><span class="lineno"> 117</span> uint8_t n1 = 2;</div>
|
||||
<div class="line"><span class="lineno"> 118</span> uint8_t n2 = 4;</div>
|
||||
<div class="line"><span class="lineno"> 119</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::complex<double></a>> r1 = {</div>
|
||||
<div class="line"><span class="lineno"> 120</span> {3, 0}, {-1, 0}}; <span class="comment">/// True Answer for test case 1</span></div>
|
||||
<div class="line"><span class="lineno"> 121</span> </div>
|
||||
<div class="line"><span class="lineno"> 122</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::complex<double></a>> r2 = {</div>
|
||||
<div class="line"><span class="lineno"> 123</span> {10, 0}, {-2, -2}, {-2, 0}, {-2, 2}}; <span class="comment">/// True Answer for test case 2</span></div>
|
||||
<div class="line"><span class="lineno"> 124</span> </div>
|
||||
<div class="line"><span class="lineno"> 125</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a> *o1 = <a class="code hl_function" href="../../d1/de0/namespacenumerical__methods.html#a158fd271b9a53e8f3f60b08b18857150">numerical_methods::FastFourierTransform</a>(t1, n1);</div>
|
||||
<div class="line"><span class="lineno"> 126</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a> *t3 =</div>
|
||||
<div class="line"><span class="lineno"> 127</span> o1; <span class="comment">/// Temporary variable used to delete memory location of o1</span></div>
|
||||
<div class="line"><span class="lineno"> 128</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a> *o2 = <a class="code hl_function" href="../../d1/de0/namespacenumerical__methods.html#a158fd271b9a53e8f3f60b08b18857150">numerical_methods::FastFourierTransform</a>(t2, n2);</div>
|
||||
<div class="line"><span class="lineno"> 129</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a> *t4 =</div>
|
||||
<div class="line"><span class="lineno"> 130</span> o2; <span class="comment">/// Temporary variable used to delete memory location of o2</span></div>
|
||||
<div class="line"><span class="lineno"> 131</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < n1; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 132</span> assert((r1[i].real() - o1-><a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex/real.html">real</a>() < 0.000000000001) &&</div>
|
||||
<div class="line"><span class="lineno"> 133</span> (r1[i].imag() - o1-><a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex/imag.html">imag</a>() <</div>
|
||||
<div class="line"><span class="lineno"> 134</span> 0.000000000001)); <span class="comment">/// Comparing for both real and imaginary</span><span class="comment"></span></div>
|
||||
<div class="line"><span class="lineno"> 135</span><span class="comment"> /// values for test case 1</span></div>
|
||||
<div class="line"><span class="lineno"> 136</span><span class="comment"></span> o1++;</div>
|
||||
<div class="line"><span class="lineno"> 137</span> }</div>
|
||||
<div class="line"><span class="lineno"> 138</span> </div>
|
||||
<div class="line"><span class="lineno"> 139</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < n2; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 140</span> assert((r2[i].real() - o2-><a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex/real.html">real</a>() < 0.000000000001) &&</div>
|
||||
<div class="line"><span class="lineno"> 141</span> (r2[i].imag() - o2-><a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex/imag.html">imag</a>() <</div>
|
||||
<div class="line"><span class="lineno"> 142</span> 0.000000000001)); <span class="comment">/// Comparing for both real and imaginary</span><span class="comment"></span></div>
|
||||
<div class="line"><span class="lineno"> 143</span><span class="comment"> /// values for test case 2</span></div>
|
||||
<div class="line"><span class="lineno"> 144</span><span class="comment"></span> o2++;</div>
|
||||
<div class="line"><span class="lineno"> 145</span> }</div>
|
||||
<div class="line"><span class="lineno"> 146</span> </div>
|
||||
<div class="line"><span class="lineno"> 147</span> <span class="keyword">delete</span>[] t1;</div>
|
||||
<div class="line"><span class="lineno"> 148</span> <span class="keyword">delete</span>[] t2;</div>
|
||||
<div class="line"><span class="lineno"> 149</span> <span class="keyword">delete</span>[] t3;</div>
|
||||
<div class="line"><span class="lineno"> 150</span> <span class="keyword">delete</span>[] t4;</div>
|
||||
<div class="line"><span class="lineno"> 151</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"All tests have successfully passed!\n"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 152</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 105</span> {</div>
|
||||
<div class="line"><span class="lineno"> 106</span> <span class="comment">/* descriptions of the following test */</span></div>
|
||||
<div class="line"><span class="lineno"> 107</span> </div>
|
||||
<div class="line"><span class="lineno"> 108</span> <span class="keyword">auto</span> *t1 = <span class="keyword">new</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a>[2]; <span class="comment">/// Test case 1</span></div>
|
||||
<div class="line"><span class="lineno"> 109</span> <span class="keyword">auto</span> *t2 = <span class="keyword">new</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a>[4]; <span class="comment">/// Test case 2</span></div>
|
||||
<div class="line"><span class="lineno"> 110</span> </div>
|
||||
<div class="line"><span class="lineno"> 111</span> t1[0] = {1, 0};</div>
|
||||
<div class="line"><span class="lineno"> 112</span> t1[1] = {2, 0};</div>
|
||||
<div class="line"><span class="lineno"> 113</span> t2[0] = {1, 0};</div>
|
||||
<div class="line"><span class="lineno"> 114</span> t2[1] = {2, 0};</div>
|
||||
<div class="line"><span class="lineno"> 115</span> t2[2] = {3, 0};</div>
|
||||
<div class="line"><span class="lineno"> 116</span> t2[3] = {4, 0};</div>
|
||||
<div class="line"><span class="lineno"> 117</span> </div>
|
||||
<div class="line"><span class="lineno"> 118</span> uint8_t n1 = 2;</div>
|
||||
<div class="line"><span class="lineno"> 119</span> uint8_t n2 = 4;</div>
|
||||
<div class="line"><span class="lineno"> 120</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::complex<double></a>> r1 = {</div>
|
||||
<div class="line"><span class="lineno"> 121</span> {3, 0}, {-1, 0}}; <span class="comment">/// True Answer for test case 1</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/container/vector.html">std::vector<std::complex<double></a>> r2 = {</div>
|
||||
<div class="line"><span class="lineno"> 124</span> {10, 0}, {-2, -2}, {-2, 0}, {-2, 2}}; <span class="comment">/// True Answer for test case 2</span></div>
|
||||
<div class="line"><span class="lineno"> 125</span> </div>
|
||||
<div class="line"><span class="lineno"> 126</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a> *o1 = <a class="code hl_function" href="../../d1/de0/namespacenumerical__methods.html#a158fd271b9a53e8f3f60b08b18857150">numerical_methods::FastFourierTransform</a>(t1, n1);</div>
|
||||
<div class="line"><span class="lineno"> 127</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a> *t3 =</div>
|
||||
<div class="line"><span class="lineno"> 128</span> o1; <span class="comment">/// Temporary variable used to delete memory location of o1</span></div>
|
||||
<div class="line"><span class="lineno"> 129</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a> *o2 = <a class="code hl_function" href="../../d1/de0/namespacenumerical__methods.html#a158fd271b9a53e8f3f60b08b18857150">numerical_methods::FastFourierTransform</a>(t2, n2);</div>
|
||||
<div class="line"><span class="lineno"> 130</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex.html">std::complex<double></a> *t4 =</div>
|
||||
<div class="line"><span class="lineno"> 131</span> o2; <span class="comment">/// Temporary variable used to delete memory location of o2</span></div>
|
||||
<div class="line"><span class="lineno"> 132</span> <span class="keywordflow">for</span> (uint8_t i = 0; i < n1; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 133</span> assert((r1[i].real() - o1-><a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex/real.html">real</a>() < 0.000000000001) &&</div>
|
||||
<div class="line"><span class="lineno"> 134</span> (r1[i].imag() - o1-><a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex/imag.html">imag</a>() <</div>
|
||||
<div class="line"><span class="lineno"> 135</span> 0.000000000001)); <span class="comment">/// Comparing for both real and imaginary</span><span class="comment"></span></div>
|
||||
<div class="line"><span class="lineno"> 136</span><span class="comment"> /// values for test case 1</span></div>
|
||||
<div class="line"><span class="lineno"> 137</span><span class="comment"></span> o1++;</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> <span class="keywordflow">for</span> (uint8_t i = 0; i < n2; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 141</span> assert((r2[i].real() - o2-><a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex/real.html">real</a>() < 0.000000000001) &&</div>
|
||||
<div class="line"><span class="lineno"> 142</span> (r2[i].imag() - o2-><a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/complex/imag.html">imag</a>() <</div>
|
||||
<div class="line"><span class="lineno"> 143</span> 0.000000000001)); <span class="comment">/// Comparing for both real and imaginary</span><span class="comment"></span></div>
|
||||
<div class="line"><span class="lineno"> 144</span><span class="comment"> /// values for test case 2</span></div>
|
||||
<div class="line"><span class="lineno"> 145</span><span class="comment"></span> o2++;</div>
|
||||
<div class="line"><span class="lineno"> 146</span> }</div>
|
||||
<div class="line"><span class="lineno"> 147</span> </div>
|
||||
<div class="line"><span class="lineno"> 148</span> <span class="keyword">delete</span>[] t1;</div>
|
||||
<div class="line"><span class="lineno"> 149</span> <span class="keyword">delete</span>[] t2;</div>
|
||||
<div class="line"><span class="lineno"> 150</span> <span class="keyword">delete</span>[] t3;</div>
|
||||
<div class="line"><span class="lineno"> 151</span> <span class="keyword">delete</span>[] t4;</div>
|
||||
<div class="line"><span class="lineno"> 152</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"All tests have successfully passed!\n"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 153</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="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="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="anamespacenumerical__methods_html_a158fd271b9a53e8f3f60b08b18857150"><div class="ttname"><a href="../../d1/de0/namespacenumerical__methods.html#a158fd271b9a53e8f3f60b08b18857150">numerical_methods::FastFourierTransform</a></div><div class="ttdeci">std::complex< double > * FastFourierTransform(std::complex< double > *p, uint8_t n)</div><div class="ttdoc">FastFourierTransform is a recursive function which returns list of complex numbers.</div><div class="ttdef"><b>Definition</b> fast_fourier_transform.cpp:41</div></div>
|
||||
<div class="ttc" id="anamespacenumerical__methods_html_a158fd271b9a53e8f3f60b08b18857150"><div class="ttname"><a href="../../d1/de0/namespacenumerical__methods.html#a158fd271b9a53e8f3f60b08b18857150">numerical_methods::FastFourierTransform</a></div><div class="ttdeci">std::complex< double > * FastFourierTransform(std::complex< double > *p, uint8_t n)</div><div class="ttdoc">FastFourierTransform is a recursive function which returns list of complex numbers.</div><div class="ttdef"><b>Definition</b> fast_fourier_transform.cpp:42</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="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">
|
||||
|
||||
@@ -126,7 +126,7 @@ Include dependency graph for binomial_calculate.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  </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"> </td><td class="mdescRight">for IO operations <br /></td></tr>
|
||||
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft"> </td><td class="mdescRight">for assert <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d7a/namespacebinomial.html">binomial</a></td></tr>
|
||||
<tr class="memdesc:d7/d7a/namespacebinomial"><td class="mdescLeft"> </td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Binomial_coefficient" target="_blank">Binomial coefficients</a> implementation. <br /></td></tr>
|
||||
@@ -194,7 +194,7 @@ Functions</h2></td></tr>
|
||||
<div class="line"><span class="lineno"> 47</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>;</div>
|
||||
<div class="line"><span class="lineno"> 48</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="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><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
|
||||
@@ -114,17 +114,18 @@ $(function(){initNavTree('d8/dd5/check__factorial_8cpp.html','../../'); initResi
|
||||
<p>A simple program to check if the given number is a <a href="https://en.wikipedia.org/wiki/Factorial" target="_blank">factorial</a> of some number or not.
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <cassert></code><br />
|
||||
<code>#include <cstdint></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for check_factorial.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d0/db1/check__factorial_8cpp__incl.svg" width="179" 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="../../d0/db1/check__factorial_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  </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"> </td><td class="mdescRight">for IO operations <br /></td></tr>
|
||||
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft"> </td><td class="mdescRight">for assert <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
@@ -163,11 +164,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"> 70</span> {</div>
|
||||
<div class="line"><span class="lineno"> 71</span> <a class="code hl_function" href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// run self-test implementations</span></div>
|
||||
<div class="line"><span class="lineno"> 72</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 73</span>}</div>
|
||||
<div class="ttc" id="acheck__factorial_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> check_factorial.cpp:55</div></div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 71</span> {</div>
|
||||
<div class="line"><span class="lineno"> 72</span> <a class="code hl_function" href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>(); <span class="comment">// run self-test implementations</span></div>
|
||||
<div class="line"><span class="lineno"> 73</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 74</span>}</div>
|
||||
<div class="ttc" id="acheck__factorial_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> check_factorial.cpp:56</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -201,19 +202,19 @@ 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"> 55</span> {</div>
|
||||
<div class="line"><span class="lineno"> 56</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(50) == <span class="keyword">false</span>);</div>
|
||||
<div class="line"><span class="lineno"> 57</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(720) == <span class="keyword">true</span>);</div>
|
||||
<div class="line"><span class="lineno"> 58</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(0) == <span class="keyword">false</span>);</div>
|
||||
<div class="line"><span class="lineno"> 59</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(1) == <span class="keyword">true</span>);</div>
|
||||
<div class="line"><span class="lineno"> 60</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(479001600) == <span class="keyword">true</span>);</div>
|
||||
<div class="line"><span class="lineno"> 61</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(-24) == <span class="keyword">false</span>);</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> << <span class="stringliteral">"All tests have successfully passed!"</span> << <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="fragment"><div class="line"><span class="lineno"> 56</span> {</div>
|
||||
<div class="line"><span class="lineno"> 57</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(50) == <span class="keyword">false</span>);</div>
|
||||
<div class="line"><span class="lineno"> 58</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(720) == <span class="keyword">true</span>);</div>
|
||||
<div class="line"><span class="lineno"> 59</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(0) == <span class="keyword">false</span>);</div>
|
||||
<div class="line"><span class="lineno"> 60</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(1) == <span class="keyword">true</span>);</div>
|
||||
<div class="line"><span class="lineno"> 61</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(479001600) == <span class="keyword">true</span>);</div>
|
||||
<div class="line"><span class="lineno"> 62</span> assert(<a class="code hl_function" href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a>(-24) == <span class="keyword">false</span>);</div>
|
||||
<div class="line"><span class="lineno"> 63</span> </div>
|
||||
<div class="line"><span class="lineno"> 64</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"All tests have successfully passed!"</span> << <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"> 65</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_a6c72f756a7bf1b9043c357e3fe7814ca"><div class="ttname"><a href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a></div><div class="ttdeci">bool is_factorial(uint64_t n)</div><div class="ttdoc">Function to check if the given number is factorial of some number or not.</div><div class="ttdef"><b>Definition</b> check_factorial.cpp:27</div></div>
|
||||
<div class="ttc" id="anamespacemath_html_a6c72f756a7bf1b9043c357e3fe7814ca"><div class="ttname"><a href="../../dd/d47/namespacemath.html#a6c72f756a7bf1b9043c357e3fe7814ca">math::is_factorial</a></div><div class="ttdeci">bool is_factorial(uint64_t n)</div><div class="ttdoc">Function to check if the given number is factorial of some number or not.</div><div class="ttdef"><b>Definition</b> check_factorial.cpp:28</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
|
||||
@@ -113,19 +113,20 @@ $(function(){initNavTree('d8/ddf/sieve__of__eratosthenes_8cpp.html','../../'); i
|
||||
|
||||
<p>Prime Numbers using <a href="https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes" target="_blank">Sieve of Eratosthenes</a>
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <cassert></code><br />
|
||||
<div class="textblock"><code>#include <cstdint></code><br />
|
||||
<code>#include <cassert></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
<code>#include <vector></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for sieve_of_eratosthenes.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/d35/sieve__of__eratosthenes_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="../../da/d35/sieve__of__eratosthenes_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  </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"> </td><td class="mdescRight">for IO operations <br /></td></tr>
|
||||
<tr class="memdesc:dd/d47/namespacemath"><td class="mdescLeft"> </td><td class="mdescRight">for assert <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/db0/namespacesieve__of__eratosthenes.html">sieve_of_eratosthenes</a></td></tr>
|
||||
<tr class="memdesc:d2/db0/namespacesieve__of__eratosthenes"><td class="mdescLeft"> </td><td class="mdescRight">Functions for finding Prime Numbers using Sieve of Eratosthenes. <br /></td></tr>
|
||||
@@ -174,7 +175,7 @@ Space Complexity : \(O(N)\)</p>
|
||||
<div class="line"><span class="lineno"> 120</span> <a class="code hl_function" href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a>();</div>
|
||||
<div class="line"><span class="lineno"> 121</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 122</span>}</div>
|
||||
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> sieve_of_eratosthenes.cpp:80</div></div>
|
||||
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_a483bb8ccf42aaf7375a83e91490eda1e"><div class="ttname"><a href="#a483bb8ccf42aaf7375a83e91490eda1e">tests</a></div><div class="ttdeci">static void tests()</div><div class="ttdoc">Self-test implementations.</div><div class="ttdef"><b>Definition</b> sieve_of_eratosthenes.cpp:81</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
@@ -210,16 +211,16 @@ Here is the call graph for this function:</div>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 64</span> {</div>
|
||||
<div class="line"><span class="lineno"> 65</span> <span class="keywordflow">for</span> (uint32_t i = 2; i <= <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 66</span> <span class="keywordflow">if</span> (is_prime[i]) {</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> << i << <span class="charliteral">' '</span>;</div>
|
||||
<div class="line"><span class="lineno"> 68</span> }</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> << <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"> 65</span> {</div>
|
||||
<div class="line"><span class="lineno"> 66</span> <span class="keywordflow">for</span> (uint32_t i = 2; i <= <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 67</span> <span class="keywordflow">if</span> (is_prime[i]) {</div>
|
||||
<div class="line"><span class="lineno"> 68</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << i << <span class="charliteral">' '</span>;</div>
|
||||
<div class="line"><span class="lineno"> 69</span> }</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> << <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="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="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
@@ -253,19 +254,19 @@ Here is the call graph for this function:</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>is_prime a vector of <code>N + 1</code> booleans identifying if <code>i</code>^th number is a prime or not </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 44</span> {</div>
|
||||
<div class="line"><span class="lineno"> 45</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>(N + 1, <span class="keyword">true</span>); <span class="comment">// Initialize all as prime numbers</span></div>
|
||||
<div class="line"><span class="lineno"> 46</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>[0] = <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>[1] = <span class="keyword">false</span>; <span class="comment">// 0 and 1 are not prime numbers</span></div>
|
||||
<div class="line"><span class="lineno"> 47</span> </div>
|
||||
<div class="line"><span class="lineno"> 48</span> <span class="keywordflow">for</span> (uint32_t i = 2; i * i <= <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 49</span> <span class="keywordflow">if</span> (is_prime[i]) {</div>
|
||||
<div class="line"><span class="lineno"> 50</span> <span class="keywordflow">for</span> (uint32_t j = i * i; j <= <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; j += i) {</div>
|
||||
<div class="line"><span class="lineno"> 51</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>[j] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><span class="lineno"> 52</span> }</div>
|
||||
<div class="line"><span class="lineno"> 53</span> }</div>
|
||||
<div class="line"><span class="lineno"> 54</span> }</div>
|
||||
<div class="line"><span class="lineno"> 55</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>;</div>
|
||||
<div class="line"><span class="lineno"> 56</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 45</span> {</div>
|
||||
<div class="line"><span class="lineno"> 46</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>(N + 1, <span class="keyword">true</span>); <span class="comment">// Initialize all as prime numbers</span></div>
|
||||
<div class="line"><span class="lineno"> 47</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>[0] = <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>[1] = <span class="keyword">false</span>; <span class="comment">// 0 and 1 are not prime numbers</span></div>
|
||||
<div class="line"><span class="lineno"> 48</span> </div>
|
||||
<div class="line"><span class="lineno"> 49</span> <span class="keywordflow">for</span> (uint32_t i = 2; i * i <= <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; i++) {</div>
|
||||
<div class="line"><span class="lineno"> 50</span> <span class="keywordflow">if</span> (is_prime[i]) {</div>
|
||||
<div class="line"><span class="lineno"> 51</span> <span class="keywordflow">for</span> (uint32_t j = i * i; j <= <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; j += i) {</div>
|
||||
<div class="line"><span class="lineno"> 52</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>[j] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><span class="lineno"> 53</span> }</div>
|
||||
<div class="line"><span class="lineno"> 54</span> }</div>
|
||||
<div class="line"><span class="lineno"> 55</span> }</div>
|
||||
<div class="line"><span class="lineno"> 56</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">is_prime</a>;</div>
|
||||
<div class="line"><span class="lineno"> 57</span>}</div>
|
||||
<div class="ttc" id="anamespacemath_html_abd8f794b2229b42876169ff841b6e444"><div class="ttname"><a href="../../dd/d47/namespacemath.html#abd8f794b2229b42876169ff841b6e444">math::is_prime</a></div><div class="ttdeci">bool is_prime(int64_t num)</div><div class="ttdoc">Function to check if the given number is prime or not.</div><div class="ttdef"><b>Definition</b> check_prime.cpp:31</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">
|
||||
@@ -301,41 +302,40 @@ 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"> 80</span> {</div>
|
||||
<div class="line"><span class="lineno"> 81</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> is_prime_1 =</div>
|
||||
<div class="line"><span class="lineno"> 82</span> <a class="code hl_function" href="#a22be949d160b26361f7e323310f7fa0c">math::sieve_of_eratosthenes::sieve</a>(<span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(10));</div>
|
||||
<div class="line"><span class="lineno"> 83</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> is_prime_2 =</div>
|
||||
<div class="line"><span class="lineno"> 84</span> <a class="code hl_function" href="#a22be949d160b26361f7e323310f7fa0c">math::sieve_of_eratosthenes::sieve</a>(<span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(20));</div>
|
||||
<div class="line"><span class="lineno"> 85</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> is_prime_3 =</div>
|
||||
<div class="line"><span class="lineno"> 86</span> <a class="code hl_function" href="#a22be949d160b26361f7e323310f7fa0c">math::sieve_of_eratosthenes::sieve</a>(<span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(100));</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/container/vector.html">std::vector<bool></a> expected_1{<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 89</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>};</div>
|
||||
<div class="line"><span class="lineno"> 90</span> assert(is_prime_1 == expected_1);</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/container/vector.html">std::vector<bool></a> expected_2{<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 93</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 81</span> {</div>
|
||||
<div class="line"><span class="lineno"> 82</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> is_prime_1 =</div>
|
||||
<div class="line"><span class="lineno"> 83</span> <a class="code hl_function" href="#a22be949d160b26361f7e323310f7fa0c">math::sieve_of_eratosthenes::sieve</a>(<span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(10));</div>
|
||||
<div class="line"><span class="lineno"> 84</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> is_prime_2 =</div>
|
||||
<div class="line"><span class="lineno"> 85</span> <a class="code hl_function" href="#a22be949d160b26361f7e323310f7fa0c">math::sieve_of_eratosthenes::sieve</a>(<span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(20));</div>
|
||||
<div class="line"><span class="lineno"> 86</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> is_prime_3 =</div>
|
||||
<div class="line"><span class="lineno"> 87</span> <a class="code hl_function" href="#a22be949d160b26361f7e323310f7fa0c">math::sieve_of_eratosthenes::sieve</a>(<span class="keyword">static_cast<</span>uint32_t<span class="keyword">></span>(100));</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/container/vector.html">std::vector<bool></a> expected_1{<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 90</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>};</div>
|
||||
<div class="line"><span class="lineno"> 91</span> assert(is_prime_1 == expected_1);</div>
|
||||
<div class="line"><span class="lineno"> 92</span> </div>
|
||||
<div class="line"><span class="lineno"> 93</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> expected_2{<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 94</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 95</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>};</div>
|
||||
<div class="line"><span class="lineno"> 96</span> assert(is_prime_2 == expected_2);</div>
|
||||
<div class="line"><span class="lineno"> 97</span> </div>
|
||||
<div class="line"><span class="lineno"> 98</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<bool></a> expected_3{</div>
|
||||
<div class="line"><span class="lineno"> 99</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 100</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 101</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 102</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 103</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 104</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 105</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 106</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 107</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 108</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 109</span> <span class="keyword">false</span>};</div>
|
||||
<div class="line"><span class="lineno"> 110</span> assert(is_prime_3 == expected_3);</div>
|
||||
<div class="line"><span class="lineno"> 111</span> </div>
|
||||
<div class="line"><span class="lineno"> 112</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"All tests have passed successfully!\n"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 95</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 96</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>};</div>
|
||||
<div class="line"><span class="lineno"> 97</span> assert(is_prime_2 == expected_2);</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/container/vector.html">std::vector<bool></a> expected_3{</div>
|
||||
<div class="line"><span class="lineno"> 100</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 101</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 102</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 103</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 104</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 105</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 106</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 107</span> <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 108</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>,</div>
|
||||
<div class="line"><span class="lineno"> 109</span> <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>,</div>
|
||||
<div class="line"><span class="lineno"> 110</span> <span class="keyword">false</span>};</div>
|
||||
<div class="line"><span class="lineno"> 111</span> assert(is_prime_3 == expected_3);</div>
|
||||
<div class="line"><span class="lineno"> 112</span> </div>
|
||||
<div class="line"><span class="lineno"> 113</span>}</div>
|
||||
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_a22be949d160b26361f7e323310f7fa0c"><div class="ttname"><a href="#a22be949d160b26361f7e323310f7fa0c">math::sieve_of_eratosthenes::sieve</a></div><div class="ttdeci">std::vector< bool > sieve(uint32_t N)</div><div class="ttdoc">Function to sieve out the primes.</div><div class="ttdef"><b>Definition</b> sieve_of_eratosthenes.cpp:44</div></div>
|
||||
<div class="ttc" id="asieve__of__eratosthenes_8cpp_html_a22be949d160b26361f7e323310f7fa0c"><div class="ttname"><a href="#a22be949d160b26361f7e323310f7fa0c">math::sieve_of_eratosthenes::sieve</a></div><div class="ttdeci">std::vector< bool > sieve(uint32_t N)</div><div class="ttdoc">Function to sieve out the primes.</div><div class="ttdef"><b>Definition</b> sieve_of_eratosthenes.cpp:45</div></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
<map id="sorting/radix_sort2.cpp" name="sorting/radix_sort2.cpp">
|
||||
<area shape="rect" id="Node000001" title="Algorithm of Radix sort" alt="" coords="104,5,258,31"/>
|
||||
<area shape="rect" id="Node000001" title="Algorithm of Radix sort" alt="" coords="146,5,299,31"/>
|
||||
<area shape="rect" id="Node000002" title=" " alt="" coords="5,79,80,105"/>
|
||||
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="159,34,81,74,79,69,156,29"/>
|
||||
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="193,34,88,75,86,70,191,29"/>
|
||||
<area shape="rect" id="Node000003" title=" " alt="" coords="104,79,168,105"/>
|
||||
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="176,33,154,67,149,64,171,30"/>
|
||||
<area shape="rect" id="Node000004" title=" " alt="" coords="192,79,264,105"/>
|
||||
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="191,30,214,64,209,67,187,33"/>
|
||||
<area shape="rect" id="Node000005" title=" " alt="" coords="287,79,344,105"/>
|
||||
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="205,29,281,69,278,74,203,34"/>
|
||||
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="209,34,164,71,160,67,206,29"/>
|
||||
<area shape="rect" id="Node000004" title=" " alt="" coords="192,79,253,105"/>
|
||||
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="225,31,225,63,220,63,220,31"/>
|
||||
<area shape="rect" id="Node000005" title=" " alt="" coords="276,79,348,105"/>
|
||||
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="239,29,287,67,283,71,236,34"/>
|
||||
<area shape="rect" id="Node000006" title=" " alt="" coords="371,79,428,105"/>
|
||||
<area shape="poly" id="edge5_Node000001_Node000006" title=" " alt="" coords="254,29,358,71,356,76,252,34"/>
|
||||
</map>
|
||||
|
||||
@@ -1 +1 @@
|
||||
90f1bd85f3814e84c2862815467539fd
|
||||
8d3a1876caa7461c98ac6c3ea5064a6c
|
||||
@@ -4,8 +4,8 @@
|
||||
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
|
||||
-->
|
||||
<!-- Title: sorting/radix_sort2.cpp Pages: 1 -->
|
||||
<svg width="262pt" height="83pt"
|
||||
viewBox="0.00 0.00 262.38 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<svg width="325pt" height="83pt"
|
||||
viewBox="0.00 0.00 325.38 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="Algorithm of Radix sort">
|
||||
<polygon fill="#999999" stroke="#666666" points="189.38,-74.5 74.38,-74.5 74.38,-55.25 189.38,-55.25 189.38,-74.5"/>
|
||||
<text text-anchor="middle" x="131.88" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">sorting/radix_sort2.cpp</text>
|
||||
<polygon fill="#999999" stroke="#666666" points="220.38,-74.5 105.38,-74.5 105.38,-55.25 220.38,-55.25 220.38,-74.5"/>
|
||||
<text text-anchor="middle" x="162.88" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">sorting/radix_sort2.cpp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
@@ -41,8 +41,8 @@
|
||||
<g id="edge1_Node000001_Node000002" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M114.23,-54.84C98.25,-46.66 74.42,-34.46 55.84,-24.94"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="57.45,-21.83 46.95,-20.39 54.26,-28.07 57.45,-21.83"/>
|
||||
<path fill="none" stroke="#63b8ff" d="M139.97,-54.84C118.45,-46.35 85.96,-33.54 61.5,-23.89"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="62.88,-20.67 52.3,-20.26 60.31,-27.18 62.88,-20.67"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
@@ -59,8 +59,8 @@
|
||||
<g id="edge2_Node000001_Node000003" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M126.26,-55.08C121.76,-48.03 115.29,-37.9 109.66,-29.08"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="112.76,-27.43 104.43,-20.88 106.86,-31.2 112.76,-27.43"/>
|
||||
<path fill="none" stroke="#63b8ff" d="M151.85,-54.84C142.45,-47.15 128.73,-35.9 117.47,-26.68"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="119.86,-24.11 109.91,-20.48 115.43,-29.53 119.86,-24.11"/>
|
||||
</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="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>
|
||||
@@ -77,8 +77,8 @@
|
||||
<g id="edge3_Node000001_Node000004" class="edge">
|
||||
<title>Node1->Node4</title>
|
||||
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M137.65,-55.08C142.29,-48.03 148.95,-37.9 154.74,-29.08"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="157.57,-31.15 160.14,-20.87 151.72,-27.31 157.57,-31.15"/>
|
||||
<path fill="none" stroke="#63b8ff" d="M162.88,-55.08C162.88,-48.57 162.88,-39.42 162.88,-31.12"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="166.38,-31.12 162.88,-21.12 159.38,-31.12 166.38,-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="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>
|
||||
@@ -95,8 +95,26 @@
|
||||
<g id="edge4_Node000001_Node000005" class="edge">
|
||||
<title>Node1->Node5</title>
|
||||
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M149.01,-54.84C164.53,-46.66 187.68,-34.46 205.72,-24.94"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="207.11,-28.17 214.32,-20.41 203.84,-21.98 207.11,-28.17"/>
|
||||
<path fill="none" stroke="#63b8ff" d="M174.24,-54.84C183.92,-47.15 198.07,-35.9 209.68,-26.68"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="211.84,-29.43 217.49,-20.47 207.49,-23.95 211.84,-29.43"/>
|
||||
</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->Node6 -->
|
||||
<g id="edge5_Node000001_Node000006" class="edge">
|
||||
<title>Node1->Node6</title>
|
||||
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M185.44,-54.84C206.9,-46.25 239.42,-33.23 263.62,-23.54"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="264.7,-26.88 272.68,-19.91 262.1,-20.38 264.7,-26.88"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 5.3 KiB |
@@ -4,16 +4,16 @@
|
||||
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
|
||||
-->
|
||||
<!-- Title: sorting/radix_sort2.cpp Pages: 1 -->
|
||||
<svg width="262pt" height="83pt"
|
||||
viewBox="0.00 0.00 262.38 82.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<svg width="325pt" height="83pt"
|
||||
viewBox="0.00 0.00 325.38 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>sorting/radix_sort2.cpp</title>
|
||||
<!-- Node1 -->
|
||||
<g id="Node000001" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_Node000001"><a xlink:title="Algorithm of Radix sort">
|
||||
<polygon fill="#999999" stroke="#666666" points="189.38,-74.5 74.38,-74.5 74.38,-55.25 189.38,-55.25 189.38,-74.5"/>
|
||||
<text text-anchor="middle" x="131.88" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">sorting/radix_sort2.cpp</text>
|
||||
<polygon fill="#999999" stroke="#666666" points="220.38,-74.5 105.38,-74.5 105.38,-55.25 220.38,-55.25 220.38,-74.5"/>
|
||||
<text text-anchor="middle" x="162.88" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">sorting/radix_sort2.cpp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
@@ -30,8 +30,8 @@
|
||||
<g id="edge1_Node000001_Node000002" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M114.23,-54.84C98.25,-46.66 74.42,-34.46 55.84,-24.94"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="57.45,-21.83 46.95,-20.39 54.26,-28.07 57.45,-21.83"/>
|
||||
<path fill="none" stroke="#63b8ff" d="M139.97,-54.84C118.45,-46.35 85.96,-33.54 61.5,-23.89"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="62.88,-20.67 52.3,-20.26 60.31,-27.18 62.88,-20.67"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
@@ -48,8 +48,8 @@
|
||||
<g id="edge2_Node000001_Node000003" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M126.26,-55.08C121.76,-48.03 115.29,-37.9 109.66,-29.08"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="112.76,-27.43 104.43,-20.88 106.86,-31.2 112.76,-27.43"/>
|
||||
<path fill="none" stroke="#63b8ff" d="M151.85,-54.84C142.45,-47.15 128.73,-35.9 117.47,-26.68"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="119.86,-24.11 109.91,-20.48 115.43,-29.53 119.86,-24.11"/>
|
||||
</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="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>
|
||||
@@ -66,8 +66,8 @@
|
||||
<g id="edge3_Node000001_Node000004" class="edge">
|
||||
<title>Node1->Node4</title>
|
||||
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M137.65,-55.08C142.29,-48.03 148.95,-37.9 154.74,-29.08"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="157.57,-31.15 160.14,-20.87 151.72,-27.31 157.57,-31.15"/>
|
||||
<path fill="none" stroke="#63b8ff" d="M162.88,-55.08C162.88,-48.57 162.88,-39.42 162.88,-31.12"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="166.38,-31.12 162.88,-21.12 159.38,-31.12 166.38,-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="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>
|
||||
@@ -84,8 +84,26 @@
|
||||
<g id="edge4_Node000001_Node000005" class="edge">
|
||||
<title>Node1->Node5</title>
|
||||
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M149.01,-54.84C164.53,-46.66 187.68,-34.46 205.72,-24.94"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="207.11,-28.17 214.32,-20.41 203.84,-21.98 207.11,-28.17"/>
|
||||
<path fill="none" stroke="#63b8ff" d="M174.24,-54.84C183.92,-47.15 198.07,-35.9 209.68,-26.68"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="211.84,-29.43 217.49,-20.47 207.49,-23.95 211.84,-29.43"/>
|
||||
</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->Node6 -->
|
||||
<g id="edge5_Node000001_Node000006" class="edge">
|
||||
<title>Node1->Node6</title>
|
||||
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
|
||||
<path fill="none" stroke="#63b8ff" d="M185.44,-54.84C206.9,-46.25 239.42,-33.23 263.62,-23.54"/>
|
||||
<polygon fill="#63b8ff" stroke="#63b8ff" points="264.7,-26.88 272.68,-19.91 262.1,-20.38 264.7,-26.88"/>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -116,11 +116,12 @@ $(function(){initNavTree('d8/df0/queue__using__array_8cpp.html','../../'); initR
|
||||
<p>Implementation of Linear [<a class="el" href="../../dc/db5/struct_queue.html">Queue</a> using array] (<a href="https://www.geeksforgeeks.org/array-implementation-of-queue-simple/">https://www.geeksforgeeks.org/array-implementation-of-queue-simple/</a>).
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <array></code><br />
|
||||
<code>#include <cstdint></code><br />
|
||||
<code>#include <iostream></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for queue_using_array.cpp:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d1/d6d/queue__using__array_8cpp__incl.svg" width="164" 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="../../d1/d6d/queue__using__array_8cpp__incl.svg" width="242" 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="nested-classes" name="nested-classes"></a>
|
||||
@@ -147,7 +148,7 @@ Functions</h2></td></tr>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
|
||||
Variables</h2></td></tr>
|
||||
<tr class="memitem:a2d49e79bd164c298912db252970520d8" id="r_a2d49e79bd164c298912db252970520d8"><td class="memItemLeft" align="right" valign="top">constexpr uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2d49e79bd164c298912db252970520d8">max_size</a> {10}</td></tr>
|
||||
<tr class="memdesc:a2d49e79bd164c298912db252970520d8"><td class="mdescLeft"> </td><td class="mdescRight">for io operations <br /></td></tr>
|
||||
<tr class="memdesc:a2d49e79bd164c298912db252970520d8"><td class="mdescLeft"> </td><td class="mdescRight">for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a> <br /></td></tr>
|
||||
<tr class="separator:a2d49e79bd164c298912db252970520d8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
@@ -178,41 +179,41 @@ Algorithm</h3>
|
||||
|
||||
<p>Main function. </p>
|
||||
<p>Allows the user to add and delete values from the queue. Also allows user to display values in the queue. </p><dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 111</span> {</div>
|
||||
<div class="line"><span class="lineno"> 112</span> <span class="keywordtype">int</span> op{0}, <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>{0};</div>
|
||||
<div class="line"><span class="lineno"> 113</span> <a class="code hl_class" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html">data_structures::queue_using_array::Queue_Array</a> ob;</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/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\n1. enqueue(Insertion) "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 116</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\n2. dequeue(Deletion)"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 117</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\n3. Display"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 118</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\n4. Exit"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 119</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
|
||||
<div class="line"><span class="lineno"> 120</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\nEnter your choice "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 121</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> op;</div>
|
||||
<div class="line"><span class="lineno"> 122</span> <span class="keywordflow">if</span> (op == 1) {</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> << <span class="stringliteral">"Enter data "</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_istream.html">std::cin</a> >> <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>;</div>
|
||||
<div class="line"><span class="lineno"> 125</span> ob.<a class="code hl_function" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a4dc64488c36f84d927365fa8d1933663">enqueue</a>(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><span class="lineno"> 126</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (op == 2) {</div>
|
||||
<div class="line"><span class="lineno"> 127</span> <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a> = ob.<a class="code hl_function" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2aaf88c9954ef3ab686f8e4bfbd87622">dequeue</a>();</div>
|
||||
<div class="line"><span class="lineno"> 128</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\ndequeue element is:\t"</span> << <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>;</div>
|
||||
<div class="line"><span class="lineno"> 129</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (op == 3) {</div>
|
||||
<div class="line"><span class="lineno"> 130</span> ob.<a class="code hl_function" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a688b7ea064739ea9fa66bf64bf4ae631">display</a>();</div>
|
||||
<div class="line"><span class="lineno"> 131</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (op == 4) {</div>
|
||||
<div class="line"><span class="lineno"> 132</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/program/exit.html">exit</a>(0);</div>
|
||||
<div class="line"><span class="lineno"> 133</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><span class="lineno"> 134</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\nWrong choice "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 135</span> }</div>
|
||||
<div class="line"><span class="lineno"> 136</span> }</div>
|
||||
<div class="line"><span class="lineno"> 137</span> </div>
|
||||
<div class="line"><span class="lineno"> 138</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 139</span>}</div>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 112</span> {</div>
|
||||
<div class="line"><span class="lineno"> 113</span> <span class="keywordtype">int</span> op{0}, <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>{0};</div>
|
||||
<div class="line"><span class="lineno"> 114</span> <a class="code hl_class" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html">data_structures::queue_using_array::Queue_Array</a> ob;</div>
|
||||
<div class="line"><span class="lineno"> 115</span> </div>
|
||||
<div class="line"><span class="lineno"> 116</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\n1. enqueue(Insertion) "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 117</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\n2. dequeue(Deletion)"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 118</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\n3. Display"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 119</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\n4. Exit"</span>;</div>
|
||||
<div class="line"><span class="lineno"> 120</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
|
||||
<div class="line"><span class="lineno"> 121</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\nEnter your choice "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 122</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> op;</div>
|
||||
<div class="line"><span class="lineno"> 123</span> <span class="keywordflow">if</span> (op == 1) {</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> << <span class="stringliteral">"Enter data "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 125</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> >> <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>;</div>
|
||||
<div class="line"><span class="lineno"> 126</span> ob.<a class="code hl_function" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a4dc64488c36f84d927365fa8d1933663">enqueue</a>(<a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>);</div>
|
||||
<div class="line"><span class="lineno"> 127</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (op == 2) {</div>
|
||||
<div class="line"><span class="lineno"> 128</span> <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a> = ob.<a class="code hl_function" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2aaf88c9954ef3ab686f8e4bfbd87622">dequeue</a>();</div>
|
||||
<div class="line"><span class="lineno"> 129</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\ndequeue element is:\t"</span> << <a class="code hl_variable" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>;</div>
|
||||
<div class="line"><span class="lineno"> 130</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (op == 3) {</div>
|
||||
<div class="line"><span class="lineno"> 131</span> ob.<a class="code hl_function" href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a688b7ea064739ea9fa66bf64bf4ae631">display</a>();</div>
|
||||
<div class="line"><span class="lineno"> 132</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (op == 4) {</div>
|
||||
<div class="line"><span class="lineno"> 133</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/program/exit.html">exit</a>(0);</div>
|
||||
<div class="line"><span class="lineno"> 134</span> } <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><span class="lineno"> 135</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\nWrong choice "</span>;</div>
|
||||
<div class="line"><span class="lineno"> 136</span> }</div>
|
||||
<div class="line"><span class="lineno"> 137</span> }</div>
|
||||
<div class="line"><span class="lineno"> 138</span> </div>
|
||||
<div class="line"><span class="lineno"> 139</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><span class="lineno"> 140</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="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html">data_structures::queue_using_array::Queue_Array</a></div><div class="ttdoc">Queue_Array class containing the main data and also index of head and tail of the array.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:43</div></div>
|
||||
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a2aaf88c9954ef3ab686f8e4bfbd87622"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2aaf88c9954ef3ab686f8e4bfbd87622">data_structures::queue_using_array::Queue_Array::dequeue</a></div><div class="ttdeci">int dequeue()</div><div class="ttdoc">Delete element from back of the queue.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:75</div></div>
|
||||
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a4dc64488c36f84d927365fa8d1933663"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a4dc64488c36f84d927365fa8d1933663">data_structures::queue_using_array::Queue_Array::enqueue</a></div><div class="ttdeci">void enqueue(const int16_t &)</div><div class="ttdoc">Add element to the first of the queue.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:58</div></div>
|
||||
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a688b7ea064739ea9fa66bf64bf4ae631"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a688b7ea064739ea9fa66bf64bf4ae631">data_structures::queue_using_array::Queue_Array::display</a></div><div class="ttdeci">void display() const</div><div class="ttdoc">Show all saved data.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:93</div></div>
|
||||
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html">data_structures::queue_using_array::Queue_Array</a></div><div class="ttdoc">Queue_Array class containing the main data and also index of head and tail of the array.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:44</div></div>
|
||||
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a2aaf88c9954ef3ab686f8e4bfbd87622"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a2aaf88c9954ef3ab686f8e4bfbd87622">data_structures::queue_using_array::Queue_Array::dequeue</a></div><div class="ttdeci">int dequeue()</div><div class="ttdoc">Delete element from back of the queue.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:76</div></div>
|
||||
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a4dc64488c36f84d927365fa8d1933663"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a4dc64488c36f84d927365fa8d1933663">data_structures::queue_using_array::Queue_Array::enqueue</a></div><div class="ttdeci">void enqueue(const int16_t &)</div><div class="ttdoc">Add element to the first of the queue.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:59</div></div>
|
||||
<div class="ttc" id="aclassdata__structures_1_1queue__using__array_1_1_queue___array_html_a688b7ea064739ea9fa66bf64bf4ae631"><div class="ttname"><a href="../../d6/d04/classdata__structures_1_1queue__using__array_1_1_queue___array.html#a688b7ea064739ea9fa66bf64bf4ae631">data_structures::queue_using_array::Queue_Array::display</a></div><div class="ttdeci">void display() const</div><div class="ttdoc">Show all saved data.</div><div class="ttdef"><b>Definition</b> queue_using_array.cpp:94</div></div>
|
||||
<div class="ttc" id="aexit_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a></div><div class="ttdeci">T exit(T... args)</div></div>
|
||||
<div class="ttc" id="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><!-- fragment --><div class="dynheader">
|
||||
@@ -244,9 +245,9 @@ Here is the call graph for this function:</div>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>for io operations </p>
|
||||
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a> Maximum size of the queue </p>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 23</span>{10}; <span class="comment">///< Maximum size of the queue</span></div>
|
||||
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a> </p>
|
||||
<p>for io operations Maximum size of the queue </p>
|
||||
<div class="fragment"><div class="line"><span class="lineno"> 24</span>{10}; <span class="comment">///< Maximum size of the queue</span></div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -131,7 +131,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  </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"> </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"> </td><td class="mdescRight">for std::assert <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd4/namespacemedian__search.html">median_search</a></td></tr>
|
||||
<tr class="memdesc:da/dd4/namespacemedian__search"><td class="mdescLeft"> </td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Median_search" target="_blank">Median search</a> algorithm. <br /></td></tr>
|
||||
|
||||
Reference in New Issue
Block a user