Documentation for 341ed50da8

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

View File

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

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: graph/hamiltons_cycle.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d0c/hamiltons__cycle_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,12 +92,11 @@ $(document).ready(function(){initNavTree('dd/d0c/hamiltons__cycle_8cpp.html','..
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">hamiltons_cycle.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">hamiltons_cycle.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>The implementation of <a href="https://en.wikipedia.org/wiki/Hamiltonian_path">Hamilton's cycle</a> dynamic solution for vertices number less than 20.
<p>The implementation of <a href="https://en.wikipedia.org/wiki/Hamiltonian_path" target="_blank">Hamilton's cycle</a> dynamic solution for vertices number less than 20.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -109,10 +108,10 @@ Include dependency graph for hamiltons_cycle.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0ceb473236b5dc53a85e281ef528dd96"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96">hamilton_cycle</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt;&gt; &amp;routes)</td></tr>
<tr class="separator:a0ceb473236b5dc53a85e281ef528dd96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcf824e347eecfeeb69ea0280f34f3e4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4">hamilton_cycle</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt; &gt; &amp;routes)</td></tr>
<tr class="separator:abcf824e347eecfeeb69ea0280f34f3e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7880ce913f3058a35ff106d5be9e243"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#ae7880ce913f3058a35ff106d5be9e243">test1</a> ()</td></tr>
<tr class="separator:ae7880ce913f3058a35ff106d5be9e243"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45d94ead4cf4e1ff9f87c38bc99f59ae"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae">test2</a> ()</td></tr>
@@ -123,15 +122,15 @@ Functions</h2></td></tr>
<tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The implementation of <a href="https://en.wikipedia.org/wiki/Hamiltonian_path">Hamilton's cycle</a> dynamic solution for vertices number less than 20. </p>
<p>I use \(2^n\times n\) matrix and for every \([i, j]\) ( \(i &lt; 2^n\) and \(j &lt; n\)) in the matrix I store <code>true</code> if it is possible to get to all vertices on which position in <code>i</code>'s binary representation is <code>1</code> so as \(j\) would be the last one.</p>
<p>In the the end if any cell in \((2^n - 1)^{\mbox{th}}\) row is <code>true</code> there exists hamiltonian cycle.</p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/vakhokoto">vakhokoto</a> </dd>
<div class="textblock"><p >The implementation of <a href="https://en.wikipedia.org/wiki/Hamiltonian_path" target="_blank">Hamilton's cycle</a> dynamic solution for vertices number less than 20. </p>
<p >I use \(2^n\times n\) matrix and for every \([i, j]\) ( \(i &lt; 2^n\) and \(j &lt; n\)) in the matrix I store <code>true</code> if it is possible to get to all vertices on which position in <code>i</code>'s binary representation is <code>1</code> so as \(j\) would be the last one.</p>
<p >In the the end if any cell in \((2^n - 1)^{\mbox{th}}\) row is <code>true</code> there exists hamiltonian cycle.</p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/vakhokoto" target="_blank">vakhokoto</a> </dd>
<dd>
<a href="https://github.com/kvedala">Krishna Vedala</a> </dd></dl>
<a href="https://github.com/kvedala" target="_blank">Krishna Vedala</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a0ceb473236b5dc53a85e281ef528dd96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ceb473236b5dc53a85e281ef528dd96">&#9670;&nbsp;</a></span>hamilton_cycle()</h2>
<a id="abcf824e347eecfeeb69ea0280f34f3e4" name="abcf824e347eecfeeb69ea0280f34f3e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcf824e347eecfeeb69ea0280f34f3e4">&#9670;&nbsp;</a></span>hamilton_cycle()</h2>
<div class="memitem">
<div class="memproto">
@@ -139,13 +138,13 @@ Functions</h2></td></tr>
<tr>
<td class="memname">bool hamilton_cycle </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt;&gt; &amp;&#160;</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>routes</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The function determines if there is a hamilton's cycle in the graph</p>
<p >The function determines if there is a hamilton's cycle in the graph</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">routes</td><td>nxn boolean matrix of \([i, j]\) where \([i, j]\) is <code>true</code> if there is a road from \(i\) to \(j\) </td></tr>
@@ -155,51 +154,51 @@ Functions</h2></td></tr>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if there is Hamiltonian cycle in the graph </dd>
<dd>
<code>false</code> if there is no Hamiltonian cycle in the graph </dd></dl>
<div class="fragment"><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; {</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> n = routes.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// height of dp array which is 2^n</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="../../d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83">height</a> = 1 &lt;&lt; n;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; dp(<a class="code" href="../../d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83">height</a>, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(n, <span class="keyword">false</span>));</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// to fill in the [2^i, i] cells with true</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; dp[1 &lt;&lt; i][i] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt; <a class="code" href="../../d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83">height</a>; i++) {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> zeros, ones;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// finding positions with 1s and 0s and separate them</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> pos = 0; pos &lt; n; ++pos) {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">if</span> ((1 &lt;&lt; pos) &amp; i) {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; ones.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(pos);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; zeros.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(pos);</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;o : ones) {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (!dp[i][o]) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;z : zeros) {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span> (!routes[o][z]) {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; dp[i + (1 &lt;&lt; z)][z] = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">bool</span> is_cycle = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; is_cycle |= dp[<a class="code" href="../../d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83">height</a> - 1][i];</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span> (is_cycle) { <span class="comment">// if true, all subsequent loop will be true. hence</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// break</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> is_cycle;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> n = routes.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// height of dp array which is 2^n</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="../../d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83">height</a> = 1 &lt;&lt; n;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; dp(<a class="code hl_function" href="../../d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83">height</a>, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>(n, <span class="keyword">false</span>));</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// to fill in the [2^i, i] cells with true</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> dp[1 &lt;&lt; i][i] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> }</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 1; i &lt; <a class="code hl_function" href="../../d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83">height</a>; i++) {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;size_t&gt;</a> zeros, ones;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// finding positions with 1s and 0s and separate them</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> pos = 0; pos &lt; n; ++pos) {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> ((1 &lt;&lt; pos) &amp; i) {</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> ones.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(pos);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> zeros.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(pos);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;o : ones) {</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">if</span> (!dp[i][o]) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;z : zeros) {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">if</span> (!routes[o][z]) {</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> dp[i + (1 &lt;&lt; z)][z] = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> }</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordtype">bool</span> is_cycle = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> is_cycle |= dp[<a class="code hl_function" href="../../d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83">height</a> - 1][i];</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">if</span> (is_cycle) { <span class="comment">// if true, all subsequent loop will be true. hence</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// break</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> }</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> is_cycle;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>}</div>
<div class="ttc" id="aavltree_8cpp_html_ae4a66d8b0c2b0d626aea45977e358c83"><div class="ttname"><a href="../../d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83">height</a></div><div class="ttdeci">int height(node *root)</div><div class="ttdef"><b>Definition:</b> avltree.cpp:31</div></div>
<div class="ttc" id="apush_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">std::vector::push_back</a></div><div class="ttdeci">T push_back(T... args)</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
@@ -207,13 +206,13 @@ Functions</h2></td></tr>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d0c/hamiltons__cycle_8cpp_a0ceb473236b5dc53a85e281ef528dd96_cgraph.svg" width="326" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d0c/hamiltons__cycle_8cpp_abcf824e347eecfeeb69ea0280f34f3e4_cgraph.svg" width="326" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
<a id="a3c04138a5bfe5d72780bb7e82a18e627" name="a3c04138a5bfe5d72780bb7e82a18e627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -238,7 +237,7 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Main function</p>
<p >Main function</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">argc</td><td>commandline argument count (ignored) </td></tr>
@@ -246,12 +245,12 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="../../dd/d0c/hamiltons__cycle_8cpp.html#ae7880ce913f3058a35ff106d5be9e243">test1</a>();</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae">test2</a>();</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0cc94918b6831f308d4fe4fa27f08299">test3</a>();</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_function" href="../../dd/d0c/hamiltons__cycle_8cpp.html#ae7880ce913f3058a35ff106d5be9e243">test1</a>();</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <a class="code hl_function" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae">test2</a>();</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <a class="code hl_function" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0cc94918b6831f308d4fe4fa27f08299">test3</a>();</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span>}</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="ahamiltons__cycle_8cpp_html_a45d94ead4cf4e1ff9f87c38bc99f59ae"><div class="ttname"><a href="../../dd/d0c/hamiltons__cycle_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae">test2</a></div><div class="ttdeci">static void test2()</div><div class="ttdef"><b>Definition:</b> hamiltons_cycle.cpp:103</div></div>
<div class="ttc" id="ahamiltons__cycle_8cpp_html_ae7880ce913f3058a35ff106d5be9e243"><div class="ttname"><a href="../../dd/d0c/hamiltons__cycle_8cpp.html#ae7880ce913f3058a35ff106d5be9e243">test1</a></div><div class="ttdeci">static void test1()</div><div class="ttdef"><b>Definition:</b> hamiltons_cycle.cpp:81</div></div>
@@ -264,7 +263,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae7880ce913f3058a35ff106d5be9e243"></a>
<a id="ae7880ce913f3058a35ff106d5be9e243" name="ae7880ce913f3058a35ff106d5be9e243"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7880ce913f3058a35ff106d5be9e243">&#9670;&nbsp;</a></span>test1()</h2>
<div class="memitem">
@@ -286,21 +285,21 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>this test is testing if <a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96">hamilton_cycle</a> returns <code>true</code> for graph: <code>1 -&gt; 2 -&gt; 3 -&gt; 4</code> </p><dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<div class="fragment"><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; arr{</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>}),</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>}),</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>})};</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96">hamilton_cycle</a>(arr);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1... &quot;</span>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; assert(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div>
<p >this test is testing if <a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4">hamilton_cycle</a> returns <code>true</code> for graph: <code>1 -&gt; 2 -&gt; 3 -&gt; 4</code> </p><dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<div class="fragment"><div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> {</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; arr{</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>}),</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>}),</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>})};</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code hl_function" href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4">hamilton_cycle</a>(arr);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1... &quot;</span>;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> assert(<a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>);</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</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="ahamiltons__cycle_8cpp_html_a0ceb473236b5dc53a85e281ef528dd96"><div class="ttname"><a href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96">hamilton_cycle</a></div><div class="ttdeci">bool hamilton_cycle(const std::vector&lt; std::vector&lt; bool &gt;&gt; &amp;routes)</div><div class="ttdef"><b>Definition:</b> hamiltons_cycle.cpp:30</div></div>
<div class="ttc" id="ahamiltons__cycle_8cpp_html_abcf824e347eecfeeb69ea0280f34f3e4"><div class="ttname"><a href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4">hamilton_cycle</a></div><div class="ttdeci">bool hamilton_cycle(const std::vector&lt; std::vector&lt; bool &gt; &gt; &amp;routes)</div><div class="ttdef"><b>Definition:</b> hamiltons_cycle.cpp:30</div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_ad8389ed58fd0ec66df248014775ad1fa"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a></div><div class="ttdeci">ll ans(ll n)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:91</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -311,7 +310,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a45d94ead4cf4e1ff9f87c38bc99f59ae"></a>
<a id="a45d94ead4cf4e1ff9f87c38bc99f59ae" name="a45d94ead4cf4e1ff9f87c38bc99f59ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45d94ead4cf4e1ff9f87c38bc99f59ae">&#9670;&nbsp;</a></span>test2()</h2>
<div class="memitem">
@@ -333,25 +332,25 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>this test is testing if <a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96">hamilton_cycle</a> returns <code>false</code> for <br />
<p >this test is testing if <a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4">hamilton_cycle</a> returns <code>false</code> for <br />
graph:</p><pre>
1 -&gt; 2 -&gt; 3
|
V
4</pre> <dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<div class="fragment"><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; arr{</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>}),</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>}),</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>})};</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96">hamilton_cycle</a>(arr);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2... &quot;</span>;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; assert(!<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>); <span class="comment">// not a cycle</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; arr{</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>}),</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>}),</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>})};</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code hl_function" href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4">hamilton_cycle</a>(arr);</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2... &quot;</span>;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> assert(!<a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>); <span class="comment">// not a cycle</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -361,7 +360,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a0cc94918b6831f308d4fe4fa27f08299"></a>
<a id="a0cc94918b6831f308d4fe4fa27f08299" name="a0cc94918b6831f308d4fe4fa27f08299"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0cc94918b6831f308d4fe4fa27f08299">&#9670;&nbsp;</a></span>test3()</h2>
<div class="memitem">
@@ -383,20 +382,20 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>this test is testing if <a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96">hamilton_cycle</a> returns <code>true</code> for clique with 4 vertices </p><dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; arr{</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>})};</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code" href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96">hamilton_cycle</a>(arr);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3... &quot;</span>;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; assert(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div>
<p >this test is testing if <a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4">hamilton_cycle</a> returns <code>true</code> for clique with 4 vertices </p><dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<div class="fragment"><div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;bool&gt;</a>&gt; arr{</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>}),</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;bool&gt;</a>({<span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <span class="keyword">true</span>})};</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = <a class="code hl_function" href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4">hamilton_cycle</a>(arr);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3... &quot;</span>;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> assert(<a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>);</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -412,7 +411,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_12552d7fa429bf94a2e32e5cf39f7e69.html">graph</a></li><li class="navelem"><a class="el" href="../../dd/d0c/hamiltons__cycle_8cpp.html">hamiltons_cycle.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,6 @@
var hamiltons__cycle_8cpp =
[
[ "hamilton_cycle", "dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96", null ],
[ "hamilton_cycle", "dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4", null ],
[ "main", "dd/d0c/hamiltons__cycle_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627", null ],
[ "test1", "dd/d0c/hamiltons__cycle_8cpp.html#ae7880ce913f3058a35ff106d5be9e243", null ],
[ "test2", "dd/d0c/hamiltons__cycle_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae", null ],

View File

@@ -1,7 +1,7 @@
<map id="test3" name="test3">
<area shape="rect" id="node1" title=" " alt="" coords="5,31,56,57"/>
<area shape="rect" id="node2" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="137,5,181,32"/>
<area shape="rect" id="node3" href="$dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96" title=" " alt="" coords="104,56,215,83"/>
<area shape="rect" id="node3" href="$dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4" title=" " alt="" coords="104,56,215,83"/>
<area shape="rect" id="node4" href="$d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83" title=" " alt="" coords="311,31,370,57"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/push_back.html#" title=" " alt="" coords="263,81,419,108"/>
</map>

View File

@@ -1 +1 @@
c9fb64687827805178b579a7cad80005
d74592d45bac4bbf819145821fc34328

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test3 Pages: 1 -->
<svg width="318pt" height="85pt"
@@ -36,7 +36,7 @@
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96" target="_top" xlink:title=" ">
<g id="a_node3"><a xlink:href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-19.5 74,-38.5 157,-38.5 157,-19.5 74,-19.5"/>
<text text-anchor="middle" x="115.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">hamilton_cycle</text>
</a>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -4,7 +4,7 @@
<area shape="rect" id="node7" href="$dd/d0c/hamiltons__cycle_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae" title=" " alt="" coords="104,56,155,83"/>
<area shape="rect" id="node8" href="$dd/d0c/hamiltons__cycle_8cpp.html#a0cc94918b6831f308d4fe4fa27f08299" title=" " alt="" coords="104,107,155,133"/>
<area shape="rect" id="node3" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="236,31,280,57"/>
<area shape="rect" id="node4" href="$dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96" title=" " alt="" coords="203,81,313,108"/>
<area shape="rect" id="node4" href="$dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4" title=" " alt="" coords="203,81,313,108"/>
<area shape="rect" id="node5" href="$d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83" title=" " alt="" coords="410,56,469,83"/>
<area shape="rect" id="node6" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/push_back.html#" title=" " alt="" coords="361,107,517,133"/>
</map>

View File

@@ -1 +1 @@
00c9c17264adce893482d6408df8ecfc
b7b656fde3f2a3f77f93166856457702

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: main Pages: 1 -->
<svg width="392pt" height="104pt"
@@ -81,7 +81,7 @@
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96" target="_top" xlink:title=" ">
<g id="a_node4"><a xlink:href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="148,-19.5 148,-38.5 231,-38.5 231,-19.5 148,-19.5"/>
<text text-anchor="middle" x="189.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">hamilton_cycle</text>
</a>

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -1,7 +1,7 @@
<map id="test2" name="test2">
<area shape="rect" id="node1" title=" " alt="" coords="5,31,56,57"/>
<area shape="rect" id="node2" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="137,5,181,32"/>
<area shape="rect" id="node3" href="$dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96" title=" " alt="" coords="104,56,215,83"/>
<area shape="rect" id="node3" href="$dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4" title=" " alt="" coords="104,56,215,83"/>
<area shape="rect" id="node4" href="$d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83" title=" " alt="" coords="311,31,370,57"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/push_back.html#" title=" " alt="" coords="263,81,419,108"/>
</map>

View File

@@ -1 +1 @@
0f682526c23cd458b370ed83d29d90e9
752e3edf7c4679a2b2e93734bd55b6b1

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test2 Pages: 1 -->
<svg width="318pt" height="85pt"
@@ -36,7 +36,7 @@
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96" target="_top" xlink:title=" ">
<g id="a_node3"><a xlink:href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-19.5 74,-38.5 157,-38.5 157,-19.5 74,-19.5"/>
<text text-anchor="middle" x="115.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">hamilton_cycle</text>
</a>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

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

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1,7 +1,7 @@
<map id="test1" name="test1">
<area shape="rect" id="node1" title=" " alt="" coords="5,31,56,57"/>
<area shape="rect" id="node2" href="$d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa" title=" " alt="" coords="137,5,181,32"/>
<area shape="rect" id="node3" href="$dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96" title=" " alt="" coords="104,56,215,83"/>
<area shape="rect" id="node3" href="$dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4" title=" " alt="" coords="104,56,215,83"/>
<area shape="rect" id="node4" href="$d8/dee/avltree_8cpp.html#ae4a66d8b0c2b0d626aea45977e358c83" title=" " alt="" coords="311,31,370,57"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/push_back.html#" title=" " alt="" coords="263,81,419,108"/>
</map>

View File

@@ -1 +1 @@
6a09d43074bc45c5d9af24f72de91ab9
4dc895d429b5b134b98dc5a8bc9492ba

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: test1 Pages: 1 -->
<svg width="318pt" height="85pt"
@@ -36,7 +36,7 @@
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../dd/d0c/hamiltons__cycle_8cpp.html#a0ceb473236b5dc53a85e281ef528dd96" target="_top" xlink:title=" ">
<g id="a_node3"><a xlink:href="../../dd/d0c/hamiltons__cycle_8cpp.html#abcf824e347eecfeeb69ea0280f34f3e4" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-19.5 74,-38.5 157,-38.5 157,-19.5 74,-19.5"/>
<text text-anchor="middle" x="115.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">hamilton_cycle</text>
</a>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: sorting/insertion_sort.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d0d/insertion__sort_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('dd/d0d/insertion__sort_8cpp.html','../
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">insertion_sort.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">insertion_sort.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a href="https://en.wikipedia.org/wiki/Insertion_sort">Insertion Sort Algorithm (Insertion Sort)</a>
<p><a href="https://en.wikipedia.org/wiki/Insertion_sort" target="_blank">Insertion Sort Algorithm (Insertion Sort)</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;cassert&gt;</code><br />
@@ -111,13 +110,13 @@ Include dependency graph for insertion_sort.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d5/d91/namespacesorting"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d91/namespacesorting.html">sorting</a></td></tr>
<tr class="memitem:d5/d91/namespacesorting"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d91/namespacesorting.html">sorting</a></td></tr>
<tr class="memdesc:d5/d91/namespacesorting"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sorting algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a78cb2f3b97b6db2c062b2a1df05c9ea9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a78cb2f3b97b6db2c062b2a1df05c9ea9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a> (T *arr, int n)</td></tr>
@@ -136,16 +135,16 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a href="https://en.wikipedia.org/wiki/Insertion_sort">Insertion Sort Algorithm (Insertion Sort)</a> </p>
<p>Insertion sort is a simple sorting algorithm that builds the final sorted array one at a time. It is much less efficient compared to other sorting algorithms like heap sort, merge sort or quick sort. However it has several advantages such as</p><ol type="1">
<div class="textblock"><p ><a href="https://en.wikipedia.org/wiki/Insertion_sort" target="_blank">Insertion Sort Algorithm (Insertion Sort)</a> </p>
<p >Insertion sort is a simple sorting algorithm that builds the final sorted array one at a time. It is much less efficient compared to other sorting algorithms like heap sort, merge sort or quick sort. However it has several advantages such as</p><ol type="1">
<li>Easy to implement</li>
<li>For small set of data it is quite efficient</li>
<li>More efficient that other Quadratic complexity algorithms like Selection sort or bubble sort.</li>
<li>It's stable that is it does not change the relative order of elements with equal keys</li>
<li>Works on hand means it can sort the array or list as it receives.</li>
</ol>
<p>It is based on the same idea that people use to sort the playing cards in their hands. the algorithms goes in the manner that we start iterating over the array of elements as soon as we find a unsorted element that is a misplaced element we place it at a sorted position.</p>
<p>Example execution steps:</p><ol type="1">
<p >It is based on the same idea that people use to sort the playing cards in their hands. the algorithms goes in the manner that we start iterating over the array of elements as soon as we find a unsorted element that is a misplaced element we place it at a sorted position.</p>
<p >Example execution steps:</p><ol type="1">
<li>Suppose initially we have <p class="formulaDsp">
\begin{bmatrix}4 &amp;3 &amp;2 &amp;5 &amp;1\end{bmatrix}
</p>
@@ -164,7 +163,7 @@ Functions</h2></td></tr>
</li>
</ol>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a59914553f24088342c139645a02a8a49"></a>
<a id="a59914553f24088342c139645a02a8a49" name="a59914553f24088342c139645a02a8a49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59914553f24088342c139645a02a8a49">&#9670;&nbsp;</a></span>create_random_array()</h2>
<div class="memitem">
@@ -214,12 +213,12 @@ template&lt;typename T &gt; </div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">while</span> (N--) {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">double</span> r = (<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a>() % 10000 - 5000) / 100.f;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; arr[<a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>] = <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(r);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">while</span> (N--) {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">double</span> r = (<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a>() % 10000 - 5000) / 100.f;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> arr[<a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>] = <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(r);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> }</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span>}</div>
<div class="ttc" id="adata__structures_2sparse__table_8cpp_html_a10f3ffb3f6f7e1b83d556b9c8de89a5d"><div class="ttname"><a href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">data_structures::sparse_table::N</a></div><div class="ttdeci">constexpr uint32_t N</div><div class="ttdoc">A struct to represent sparse table for min() as their invariant function, for the given array A....</div><div class="ttdef"><b>Definition:</b> sparse_table.cpp:47</div></div>
<div class="ttc" id="arand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a></div><div class="ttdeci">T rand(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -231,7 +230,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -246,39 +245,39 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Main Function </p>
<p>Running predefined tests to test algorithm</p>
<p>For user insteraction</p>
<div class="fragment"><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {<span class="comment"></span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> /// Running predefined tests to test algorithm</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"></span> <a class="code" href="../../dd/d0d/insertion__sort_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> /// For user insteraction</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"></span> <span class="keywordtype">size_t</span> n;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the length of your array (0 to exit): &quot;</span>;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; n;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (n == 0) {</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">int</span> *arr = <span class="keyword">new</span> <span class="keywordtype">int</span>[n];</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter any &quot;</span> &lt;&lt; n &lt;&lt; <span class="stringliteral">&quot; Numbers for Unsorted Array : &quot;</span>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; arr[i];</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr, n);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nSorted Array : &quot;</span>;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; arr[i] &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">delete</span>[] arr;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div>
<p >Main Function </p>
<p >Running predefined tests to test algorithm</p>
<p >For user insteraction</p>
<div class="fragment"><div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> {<span class="comment"></span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="comment"> /// Running predefined tests to test algorithm</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="comment"></span> <a class="code hl_function" href="../../dd/d0d/insertion__sort_8cpp.html#a88ec9ad42717780d6caaff9d3d6977f9">tests</a>();</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="comment"></span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment"> /// For user insteraction</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="comment"></span> <span class="keywordtype">size_t</span> n;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter the length of your array (0 to exit): &quot;</span>;</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; n;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">if</span> (n == 0) {</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> }</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordtype">int</span> *arr = <span class="keyword">new</span> <span class="keywordtype">int</span>[n];</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter any &quot;</span> &lt;&lt; n &lt;&lt; <span class="stringliteral">&quot; Numbers for Unsorted Array : &quot;</span>;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; arr[i];</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> }</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_function" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr, n);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;\nSorted Array : &quot;</span>;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; i++) {</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; arr[i] &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">delete</span>[] arr;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span>}</div>
<div class="ttc" id="abasic_istream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a></div></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
@@ -293,7 +292,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a88ec9ad42717780d6caaff9d3d6977f9"></a>
<a id="a88ec9ad42717780d6caaff9d3d6977f9" name="a88ec9ad42717780d6caaff9d3d6977f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88ec9ad42717780d6caaff9d3d6977f9">&#9670;&nbsp;</a></span>tests()</h2>
<div class="memitem">
@@ -307,46 +306,46 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Test Cases to test algorithm </p>
<div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">int</span> arr1[10] = {78, 34, 35, 6, 34, 56, 3, 56, 2, 4};</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1... &quot;</span>;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr1, 10);</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(arr1, arr1 + 10));</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">int</span> arr2[5] = {5, -3, 7, -2, 1};</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2... &quot;</span>;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr2, 5);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(arr2, arr2 + 5));</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">float</span> arr3[5] = {5.6, -3.1, -3.0, -2.1, 1.8};</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3... &quot;</span>;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr3, 5);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(arr3, arr3 + 5));</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;float&gt;</a> arr4({5.6, -3.1, -3.0, -2.1, 1.8});</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 4... &quot;</span>;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(&amp;arr4);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/begin.html">std::begin</a>(arr4), <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/end.html">std::end</a>(arr4)));</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">int</span> arr5[50];</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 5... &quot;</span>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="../../dd/d0d/insertion__sort_8cpp.html#a59914553f24088342c139645a02a8a49">create_random_array</a>(arr5, 50);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr5, 50);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(arr5, arr5 + 50));</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">float</span> arr6[50];</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 6... &quot;</span>;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="../../dd/d0d/insertion__sort_8cpp.html#a59914553f24088342c139645a02a8a49">create_random_array</a>(arr6, 50);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr6, 50);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(arr6, arr6 + 50));</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div>
<p >Test Cases to test algorithm </p>
<div class="fragment"><div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">int</span> arr1[10] = {78, 34, 35, 6, 34, 56, 3, 56, 2, 4};</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1... &quot;</span>;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_function" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr1, 10);</div>
<div class="line"><a id="l00113" name="l00113"></a><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>(arr1, arr1 + 10));</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordtype">int</span> arr2[5] = {5, -3, 7, -2, 1};</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2... &quot;</span>;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <a class="code hl_function" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr2, 5);</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(arr2, arr2 + 5));</div>
<div class="line"><a id="l00120" name="l00120"></a><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> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">float</span> arr3[5] = {5.6, -3.1, -3.0, -2.1, 1.8};</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3... &quot;</span>;</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <a class="code hl_function" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr3, 5);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(arr3, arr3 + 5));</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;float&gt;</a> arr4({5.6, -3.1, -3.0, -2.1, 1.8});</div>
<div class="line"><a id="l00129" name="l00129"></a><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> &lt;&lt; <span class="stringliteral">&quot;Test 4... &quot;</span>;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <a class="code hl_function" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(&amp;arr4);</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/begin.html">std::begin</a>(arr4), <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/end.html">std::end</a>(arr4)));</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordtype">int</span> arr5[50];</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 5... &quot;</span>;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <a class="code hl_function" href="../../dd/d0d/insertion__sort_8cpp.html#a59914553f24088342c139645a02a8a49">create_random_array</a>(arr5, 50);</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_function" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr5, 50);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(arr5, arr5 + 50));</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordtype">float</span> arr6[50];</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 6... &quot;</span>;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_function" href="../../dd/d0d/insertion__sort_8cpp.html#a59914553f24088342c139645a02a8a49">create_random_array</a>(arr6, 50);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <a class="code hl_function" href="../../d5/d91/namespacesorting.html#a78cb2f3b97b6db2c062b2a1df05c9ea9">sorting::insertionSort</a>(arr6, 50);</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> assert(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/is_sorted.html">std::is_sorted</a>(arr6, arr6 + 50));</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span>}</div>
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/begin.html">std::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/end.html">std::end</a></div><div class="ttdeci">T end(T... args)</div></div>
<div class="ttc" id="ainsertion__sort_8cpp_html_a59914553f24088342c139645a02a8a49"><div class="ttname"><a href="../../dd/d0d/insertion__sort_8cpp.html#a59914553f24088342c139645a02a8a49">create_random_array</a></div><div class="ttdeci">static void create_random_array(T *arr, int N)</div><div class="ttdoc">Create a random array objecthelper function to create a random array.</div><div class="ttdef"><b>Definition:</b> insertion_sort.cpp:101</div></div>
@@ -367,7 +366,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_bb1b521853a9c46347182a9d10420771.html">sorting</a></li><li class="navelem"><a class="el" href="../../dd/d0d/insertion__sort_8cpp.html">insertion_sort.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

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

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

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

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

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

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

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

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

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

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers/vigenere_cipher.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d12/vigenere__cipher_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('dd/d12/vigenere__cipher_8cpp.html','..
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">vigenere_cipher.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">vigenere_cipher.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Implementation of <a href="https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher">Vigenère cipher</a> algorithm.
<p>Implementation of <a href="https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher" target="_blank">Vigenère cipher</a> algorithm.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
@@ -110,16 +109,16 @@ Include dependency graph for vigenere_cipher.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d6/d4e/namespaceciphers"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></td></tr>
<tr class="memdesc:d6/d4e/namespaceciphers"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a href="https://en.wikipedia.org/wiki/Base64">Base64 Encoding and Decoding</a> <br /></td></tr>
<tr class="memitem:d6/d4e/namespaceciphers"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></td></tr>
<tr class="memdesc:d6/d4e/namespaceciphers"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a href="https://en.wikipedia.org/wiki/Base64" target="_blank">Base64 Encoding and Decoding</a> <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d6/da2/namespacevigenere"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/da2/namespacevigenere.html">vigenere</a></td></tr>
<tr class="memdesc:d6/da2/namespacevigenere"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher">vigenère cipher</a> algorithm. <br /></td></tr>
<tr class="memitem:d6/da2/namespacevigenere"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/da2/namespacevigenere.html">vigenere</a></td></tr>
<tr class="memdesc:d6/da2/namespacevigenere"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher" target="_blank">vigenère cipher</a> algorithm. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a6bd3880ea6820c232c1eddf47553c257"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d12/vigenere__cipher_8cpp.html#a6bd3880ea6820c232c1eddf47553c257">ciphers::vigenere::encrypt</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;text, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;key)</td></tr>
<tr class="separator:a6bd3880ea6820c232c1eddf47553c257"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -131,26 +130,26 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of <a href="https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher">Vigenère cipher</a> algorithm. </p>
<p>The Vigenère cipher is a method of encrypting alphabetic text by using a series of interwoven vigenere ciphers, based on the letters of a keyword. It employs a form of polyalphabetic substitution.</p>
<div class="textblock"><p >Implementation of <a href="https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher" target="_blank">Vigenère cipher</a> algorithm. </p>
<p >The Vigenère cipher is a method of encrypting alphabetic text by using a series of interwoven vigenere ciphers, based on the letters of a keyword. It employs a form of polyalphabetic substitution.</p>
<h3><a class="anchor" id="autotoc_md1"></a>
Algorithm</h3>
<p>The encryption can also be represented using modular arithmetic by first transforming the letters into numbers, according to the scheme, A → 0, B → 1, ..., Z → 25. Encryption of \(i^{th}\) character in Message M by key K can be described mathematically as,</p>
<p >The encryption can also be represented using modular arithmetic by first transforming the letters into numbers, according to the scheme, A → 0, B → 1, ..., Z → 25. Encryption of \(i^{th}\) character in Message M by key K can be described mathematically as,</p>
<p class="formulaDsp">
\[ E_{K}(M_{i}) = (M_{i} + K_{i})\;\mbox{mod}\; 26\]
</p>
<p>while decryption of \(i^{th}\) character in Cipher C by key K can be described mathematically as,</p>
<p >while decryption of \(i^{th}\) character in Cipher C by key K can be described mathematically as,</p>
<p class="formulaDsp">
\[ D_{k}(C_{i}) = (C_{i} - K_{i} + 26)\;\mbox{mod}\; 26\]
</p>
<p>Where \(K_{i}\) denotes corresponding character in key. If \(|key| &lt; |text|\) than same key is repeated untill their lengths are equal.</p>
<p>For Example, If M = "ATTACKATDAWN" and K = "LEMON" than K becomes "LEMONLEMONLE".</p>
<p >Where \(K_{i}\) denotes corresponding character in key. If \(|key| &lt; |text|\) than same key is repeated untill their lengths are equal.</p>
<p >For Example, If M = "ATTACKATDAWN" and K = "LEMON" than K becomes "LEMONLEMONLE".</p>
<dl class="section note"><dt>Note</dt><dd>Rather than creating new key of equal length this program does this by using modular index for key (i.e. \((j + 1) \;\mbox{mod}\; |\mbox{key}|\))</dd>
<dd>
This program implements Vigenère cipher for only uppercase English alphabet characters (i.e. A-Z).</dd></dl>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/imdeep2905">Deep Raval</a> </dd></dl>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/imdeep2905" target="_blank">Deep Raval</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a3cfc3f9b20a0f230a2fcefd31dc6848e"></a>
<a id="a3cfc3f9b20a0f230a2fcefd31dc6848e" name="a3cfc3f9b20a0f230a2fcefd31dc6848e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cfc3f9b20a0f230a2fcefd31dc6848e">&#9670;&nbsp;</a></span>decrypt()</h2>
<div class="memitem">
@@ -175,7 +174,7 @@ This program implements Vigenère cipher for only uppercase English alphabet cha
</tr>
</table>
</div><div class="memdoc">
<p>Decrypt given text using vigenere cipher. </p><dl class="params"><dt>Parameters</dt><dd>
<p >Decrypt given text using vigenere cipher. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">text</td><td>text to be decrypted </td></tr>
<tr><td class="paramname">key</td><td>key to be used for decryption </td></tr>
@@ -183,19 +182,19 @@ This program implements Vigenère cipher for only uppercase English alphabet cha
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>new decrypted text </dd></dl>
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// Going through each character of text and key</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// Note that key is visited in circular way hence j = (j + 1) % |key|</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted_text = <span class="stringliteral">&quot;&quot;</span>; <span class="comment">// Empty string to store decrypted text</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0, j = 0; i &lt; text.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); i++, j = (j + 1) % key.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>()) {</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">int</span> place_value_text = get_value(text[i]); <span class="comment">// Getting value of character in text</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">int</span> place_value_key = get_value(key[j]); <span class="comment">// Getting value of character in key</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; place_value_text = (place_value_text - place_value_key + 26) % 26; <span class="comment">// Applying decryption</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">char</span> decrypted_char = get_char(place_value_text); <span class="comment">// Getting new character from decrypted value</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; decrypted_text += decrypted_char; <span class="comment">// Appending decrypted character</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; } </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> decrypted_text; <span class="comment">// Returning decrypted text</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> {</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="comment">// Going through each character of text and key</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Note that key is visited in circular way hence j = (j + 1) % |key|</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted_text = <span class="stringliteral">&quot;&quot;</span>; <span class="comment">// Empty string to store decrypted text</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0, j = 0; i &lt; text.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); i++, j = (j + 1) % key.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>()) {</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">int</span> place_value_text = get_value(text[i]); <span class="comment">// Getting value of character in text</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">int</span> place_value_key = get_value(key[j]); <span class="comment">// Getting value of character in key</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> place_value_text = (place_value_text - place_value_key + 26) % 26; <span class="comment">// Applying decryption</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordtype">char</span> decrypted_char = get_char(place_value_text); <span class="comment">// Getting new character from decrypted value</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> decrypted_text += decrypted_char; <span class="comment">// Appending decrypted character</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> } </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> decrypted_text; <span class="comment">// Returning decrypted text</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">std::string::length</a></div><div class="ttdeci">T length(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -207,7 +206,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a6bd3880ea6820c232c1eddf47553c257"></a>
<a id="a6bd3880ea6820c232c1eddf47553c257" name="a6bd3880ea6820c232c1eddf47553c257"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bd3880ea6820c232c1eddf47553c257">&#9670;&nbsp;</a></span>encrypt()</h2>
<div class="memitem">
@@ -232,7 +231,7 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Encrypt given text using vigenere cipher. </p><dl class="params"><dt>Parameters</dt><dd>
<p >Encrypt given text using vigenere cipher. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">text</td><td>text to be encrypted </td></tr>
<tr><td class="paramname">key</td><td>to be used for encryption </td></tr>
@@ -240,19 +239,19 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>new encrypted text </dd></dl>
<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted_text = <span class="stringliteral">&quot;&quot;</span>; <span class="comment">// Empty string to store encrypted text</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Going through each character of text and key</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// Note that key is visited in circular way hence j = (j + 1) % |key|</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0, j = 0; i &lt; text.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); i++, j = (j + 1) % key.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>()) {</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">int</span> place_value_text = get_value(text[i]); <span class="comment">// Getting value of character in text</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">int</span> place_value_key = get_value(key[j]); <span class="comment">// Getting value of character in key</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; place_value_text = (place_value_text + place_value_key) % 26; <span class="comment">// Applying encryption</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">char</span> encrypted_char = get_char(place_value_text); <span class="comment">// Getting new character from encrypted value</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; encrypted_text += encrypted_char; <span class="comment">// Appending encrypted character</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> encrypted_text; <span class="comment">// Returning encrypted text</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> {</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted_text = <span class="stringliteral">&quot;&quot;</span>; <span class="comment">// Empty string to store encrypted text</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// Going through each character of text and key</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// Note that key is visited in circular way hence j = (j + 1) % |key|</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0, j = 0; i &lt; text.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>(); i++, j = (j + 1) % key.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>()) {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordtype">int</span> place_value_text = get_value(text[i]); <span class="comment">// Getting value of character in text</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">int</span> place_value_key = get_value(key[j]); <span class="comment">// Getting value of character in key</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> place_value_text = (place_value_text + place_value_key) % 26; <span class="comment">// Applying encryption</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">char</span> encrypted_char = get_char(place_value_text); <span class="comment">// Getting new character from encrypted value</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> encrypted_text += encrypted_char; <span class="comment">// Appending encrypted character</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">return</span> encrypted_text; <span class="comment">// Returning encrypted text</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -262,7 +261,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -277,12 +276,12 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Driver Code </p>
<div class="fragment"><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// Testing</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="../../dd/d12/vigenere__cipher_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a>();</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div>
<p >Driver Code </p>
<div class="fragment"><div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// Testing</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_function" href="../../dd/d12/vigenere__cipher_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a>();</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span>}</div>
<div class="ttc" id="avigenere__cipher_8cpp_html_ae1a3968e7947464bee7714f6d43b7002"><div class="ttname"><a href="../../dd/d12/vigenere__cipher_8cpp.html#ae1a3968e7947464bee7714f6d43b7002">test</a></div><div class="ttdeci">void test()</div><div class="ttdef"><b>Definition:</b> vigenere_cipher.cpp:111</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -293,7 +292,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae1a3968e7947464bee7714f6d43b7002"></a>
<a id="ae1a3968e7947464bee7714f6d43b7002" name="ae1a3968e7947464bee7714f6d43b7002"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1a3968e7947464bee7714f6d43b7002">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
@@ -307,25 +306,25 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Function to test above algorithm </p>
<div class="fragment"><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Test 1</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> text1 = <span class="stringliteral">&quot;NIKOLATESLA&quot;</span>;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted1 = <a class="code" href="../../dd/d12/vigenere__cipher_8cpp.html#a6bd3880ea6820c232c1eddf47553c257">ciphers::vigenere::encrypt</a>(text1, <span class="stringliteral">&quot;TESLA&quot;</span>);</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted1 = <a class="code" href="../../dd/d12/vigenere__cipher_8cpp.html#a3cfc3f9b20a0f230a2fcefd31dc6848e">ciphers::vigenere::decrypt</a>(encrypted1, <span class="stringliteral">&quot;TESLA&quot;</span>);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; assert(text1 == decrypted1);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Original text : &quot;</span> &lt;&lt; text1;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot; , Encrypted text (with key = TESLA) : &quot;</span> &lt;&lt; encrypted1;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot; , Decrypted text : &quot;</span>&lt;&lt; decrypted1 &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// Test 2</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> text2 = <span class="stringliteral">&quot;GOOGLEIT&quot;</span>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted2 = <a class="code" href="../../dd/d12/vigenere__cipher_8cpp.html#a6bd3880ea6820c232c1eddf47553c257">ciphers::vigenere::encrypt</a>(text2, <span class="stringliteral">&quot;REALLY&quot;</span>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted2 = <a class="code" href="../../dd/d12/vigenere__cipher_8cpp.html#a3cfc3f9b20a0f230a2fcefd31dc6848e">ciphers::vigenere::decrypt</a>(encrypted2, <span class="stringliteral">&quot;REALLY&quot;</span>);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; assert(text2 == decrypted2);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Original text : &quot;</span> &lt;&lt; text2;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot; , Encrypted text (with key = REALLY) : &quot;</span> &lt;&lt; encrypted2;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot; , Decrypted text : &quot;</span>&lt;&lt; decrypted2 &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div>
<p >Function to test above algorithm </p>
<div class="fragment"><div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// Test 1</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> text1 = <span class="stringliteral">&quot;NIKOLATESLA&quot;</span>;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted1 = <a class="code hl_function" href="../../dd/d12/vigenere__cipher_8cpp.html#a6bd3880ea6820c232c1eddf47553c257">ciphers::vigenere::encrypt</a>(text1, <span class="stringliteral">&quot;TESLA&quot;</span>);</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted1 = <a class="code hl_function" href="../../dd/d12/vigenere__cipher_8cpp.html#a3cfc3f9b20a0f230a2fcefd31dc6848e">ciphers::vigenere::decrypt</a>(encrypted1, <span class="stringliteral">&quot;TESLA&quot;</span>);</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> assert(text1 == decrypted1);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Original text : &quot;</span> &lt;&lt; text1;</div>
<div class="line"><a id="l00118" name="l00118"></a><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> &lt;&lt; <span class="stringliteral">&quot; , Encrypted text (with key = TESLA) : &quot;</span> &lt;&lt; encrypted1;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot; , Decrypted text : &quot;</span>&lt;&lt; decrypted1 &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// Test 2</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> text2 = <span class="stringliteral">&quot;GOOGLEIT&quot;</span>;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> encrypted2 = <a class="code hl_function" href="../../dd/d12/vigenere__cipher_8cpp.html#a6bd3880ea6820c232c1eddf47553c257">ciphers::vigenere::encrypt</a>(text2, <span class="stringliteral">&quot;REALLY&quot;</span>);</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> decrypted2 = <a class="code hl_function" href="../../dd/d12/vigenere__cipher_8cpp.html#a3cfc3f9b20a0f230a2fcefd31dc6848e">ciphers::vigenere::decrypt</a>(encrypted2, <span class="stringliteral">&quot;REALLY&quot;</span>);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> assert(text2 == decrypted2);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Original text : &quot;</span> &lt;&lt; text2;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot; , Encrypted text (with key = REALLY) : &quot;</span> &lt;&lt; encrypted2;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot; , Decrypted text : &quot;</span>&lt;&lt; decrypted2 &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</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="avigenere__cipher_8cpp_html_a3cfc3f9b20a0f230a2fcefd31dc6848e"><div class="ttname"><a href="../../dd/d12/vigenere__cipher_8cpp.html#a3cfc3f9b20a0f230a2fcefd31dc6848e">ciphers::vigenere::decrypt</a></div><div class="ttdeci">std::string decrypt(const std::string &amp;text, const std::string &amp;key)</div><div class="ttdef"><b>Definition:</b> vigenere_cipher.cpp:92</div></div>
@@ -345,7 +344,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_4d6e05837bf820fb089a8a8cdf2f42b7.html">ciphers</a></li><li class="navelem"><a class="el" href="../../dd/d12/vigenere__cipher_8cpp.html">vigenere_cipher.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

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

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

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

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: query Struct Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d1b/structquery.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,20 +93,19 @@ $(document).ready(function(){initNavTree('dd/d1b/structquery.html','../../'); in
<div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="../../d8/d38/structquery-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">query Struct Reference</div> </div>
<div class="headertitle"><div class="title">query Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:aedd873fb96eb4f83fb4289b1c58ce794"><td class="memItemLeft" align="right" valign="top"><a id="aedd873fb96eb4f83fb4289b1c58ce794"></a>
<tr class="memitem:aedd873fb96eb4f83fb4289b1c58ce794"><td class="memItemLeft" align="right" valign="top"><a id="aedd873fb96eb4f83fb4289b1c58ce794" name="aedd873fb96eb4f83fb4289b1c58ce794"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>l</b></td></tr>
<tr class="separator:aedd873fb96eb4f83fb4289b1c58ce794"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a748f5dfd8faf440897bab39091f0a5ca"><td class="memItemLeft" align="right" valign="top"><a id="a748f5dfd8faf440897bab39091f0a5ca"></a>
<tr class="memitem:a748f5dfd8faf440897bab39091f0a5ca"><td class="memItemLeft" align="right" valign="top"><a id="a748f5dfd8faf440897bab39091f0a5ca" name="a748f5dfd8faf440897bab39091f0a5ca"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>r</b></td></tr>
<tr class="separator:a748f5dfd8faf440897bab39091f0a5ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1442afb70f26fd0655914632c0dcadcd"><td class="memItemLeft" align="right" valign="top"><a id="a1442afb70f26fd0655914632c0dcadcd"></a>
<tr class="memitem:a1442afb70f26fd0655914632c0dcadcd"><td class="memItemLeft" align="right" valign="top"><a id="a1442afb70f26fd0655914632c0dcadcd" name="a1442afb70f26fd0655914632c0dcadcd"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>i</b></td></tr>
<tr class="separator:a1442afb70f26fd0655914632c0dcadcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -119,7 +118,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>i</b></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d1b/structquery.html">query</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +0,0 @@
var structquery =
[
[ "i", "dd/d1b/structquery.html#a1442afb70f26fd0655914632c0dcadcd", null ],
[ "l", "dd/d1b/structquery.html#aedd873fb96eb4f83fb4289b1c58ce794", null ],
[ "r", "dd/d1b/structquery.html#a748f5dfd8faf440897bab39091f0a5ca", null ]
];

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: hash_chain Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d1c/classhash__chain.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -95,21 +95,14 @@ $(document).ready(function(){initNavTree('dd/d1c/classhash__chain.html','../../'
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="../../df/d94/classhash__chain-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">hash_chain Class Reference</div> </div>
<div class="headertitle"><div class="title">hash_chain Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Chain class with a given modulus.
<a href="../../dd/d1c/classhash__chain.html#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for hash_chain:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/ddb/classhash__chain__coll__graph.svg" width="354" height="231"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a80c8b902a15b4fd062ed727ecf8f3595"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d1c/classhash__chain.html#a80c8b902a15b4fd062ed727ecf8f3595">hash_chain</a> (int mod)</td></tr>
<tr class="memdesc:a80c8b902a15b4fd062ed727ecf8f3595"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a new chain object. <a href="../../dd/d1c/classhash__chain.html#a80c8b902a15b4fd062ed727ecf8f3595">More...</a><br /></td></tr>
@@ -117,9 +110,8 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a6b4b4de1a8c96f98a63a77f650a9dcff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d1c/classhash__chain.html#a6b4b4de1a8c96f98a63a77f650a9dcff">add</a> (int x, int <a class="el" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>)</td></tr>
<tr class="memdesc:a6b4b4de1a8c96f98a63a77f650a9dcff"><td class="mdescLeft">&#160;</td><td class="mdescRight">create and add a new node with a give value and at a given height <a href="../../dd/d1c/classhash__chain.html#a6b4b4de1a8c96f98a63a77f650a9dcff">More...</a><br /></td></tr>
<tr class="separator:a6b4b4de1a8c96f98a63a77f650a9dcff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706964ad13587fc9a8b3fe8381d410ed"><td class="memItemLeft" align="right" valign="top"><a id="a706964ad13587fc9a8b3fe8381d410ed"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d1c/classhash__chain.html#a706964ad13587fc9a8b3fe8381d410ed">display</a> ()</td></tr>
<tr class="memdesc:a706964ad13587fc9a8b3fe8381d410ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Display the chain. <br /></td></tr>
<tr class="memitem:a706964ad13587fc9a8b3fe8381d410ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d1c/classhash__chain.html#a706964ad13587fc9a8b3fe8381d410ed">display</a> ()</td></tr>
<tr class="memdesc:a706964ad13587fc9a8b3fe8381d410ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Display the chain. <a href="../../dd/d1c/classhash__chain.html#a706964ad13587fc9a8b3fe8381d410ed">More...</a><br /></td></tr>
<tr class="separator:a706964ad13587fc9a8b3fe8381d410ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a846a2f921f8fb7ea572e03901b671d64"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d1c/classhash__chain.html#a846a2f921f8fb7ea572e03901b671d64">hash</a> (int x) const</td></tr>
<tr class="memdesc:a846a2f921f8fb7ea572e03901b671d64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the hash of a value for current chain. <a href="../../dd/d1c/classhash__chain.html#a846a2f921f8fb7ea572e03901b671d64">More...</a><br /></td></tr>
@@ -128,32 +120,32 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../.
<tr class="memdesc:a55aa5c6753cb8853152d469c375d946a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find if a value and corresponding hash exist. <a href="../../dd/d1c/classhash__chain.html#a55aa5c6753cb8853152d469c375d946a">More...</a><br /></td></tr>
<tr class="separator:a55aa5c6753cb8853152d469c375d946a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-types" name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a21172d047bb9621385f2426ce25e71aa"><td class="memItemLeft" align="right" valign="top"><a id="a21172d047bb9621385f2426ce25e71aa"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d1c/classhash__chain.html#a21172d047bb9621385f2426ce25e71aa">Node</a> = struct <a class="el" href="../../dd/d1c/classhash__chain.html#a21172d047bb9621385f2426ce25e71aa">Node</a> { int <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>{}</td></tr>
<tr class="memdesc:a21172d047bb9621385f2426ce25e71aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">data stored in the node <br /></td></tr>
<tr class="separator:a21172d047bb9621385f2426ce25e71aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28d3adffc0126beeef63bce0846fb8f5"><td class="memItemLeft" align="right" valign="top"><a id="a28d3adffc0126beeef63bce0846fb8f5" name="a28d3adffc0126beeef63bce0846fb8f5"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Node</b> = <a class="el" href="../../dd/d1c/classhash__chain.html#a28d3adffc0126beeef63bce0846fb8f5">Node</a> { int <a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>{}</td></tr>
<tr class="memdesc:a28d3adffc0126beeef63bce0846fb8f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">data stored in the node <br /></td></tr>
<tr class="separator:a28d3adffc0126beeef63bce0846fb8f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a48236d44349c3ebce4774b706f4f8a0f"><td class="memItemLeft" align="right" valign="top"><a id="a48236d44349c3ebce4774b706f4f8a0f"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; struct <a class="el" href="../../dd/d1c/classhash__chain.html#a21172d047bb9621385f2426ce25e71aa">Node</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d1c/classhash__chain.html#a48236d44349c3ebce4774b706f4f8a0f">next</a></td></tr>
<tr class="memitem:a48236d44349c3ebce4774b706f4f8a0f"><td class="memItemLeft" align="right" valign="top"><a id="a48236d44349c3ebce4774b706f4f8a0f" name="a48236d44349c3ebce4774b706f4f8a0f"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; struct <a class="el" href="../../dd/d1c/classhash__chain.html#a28d3adffc0126beeef63bce0846fb8f5">Node</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>next</b></td></tr>
<tr class="memdesc:a48236d44349c3ebce4774b706f4f8a0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">pointer to the next node <br /></td></tr>
<tr class="separator:a48236d44349c3ebce4774b706f4f8a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8457d13620497fa2046ac566252c4b0"><td class="memItemLeft" align="right" valign="top"><a id="ae8457d13620497fa2046ac566252c4b0"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="../../dd/d1c/classhash__chain.html#a21172d047bb9621385f2426ce25e71aa">Node</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a></td></tr>
<tr class="memitem:ae8457d13620497fa2046ac566252c4b0"><td class="memItemLeft" align="right" valign="top"><a id="ae8457d13620497fa2046ac566252c4b0" name="ae8457d13620497fa2046ac566252c4b0"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="../../dd/d1c/classhash__chain.html#a28d3adffc0126beeef63bce0846fb8f5">Node</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>head</b></td></tr>
<tr class="memdesc:ae8457d13620497fa2046ac566252c4b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">array of nodes <br /></td></tr>
<tr class="separator:ae8457d13620497fa2046ac566252c4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9ddce410015ed8dda6380130d82d6c2"><td class="memItemLeft" align="right" valign="top"><a id="ae9ddce410015ed8dda6380130d82d6c2"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d1c/classhash__chain.html#ae9ddce410015ed8dda6380130d82d6c2">_mod</a></td></tr>
<tr class="memitem:ae9ddce410015ed8dda6380130d82d6c2"><td class="memItemLeft" align="right" valign="top"><a id="ae9ddce410015ed8dda6380130d82d6c2" name="ae9ddce410015ed8dda6380130d82d6c2"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>_mod</b></td></tr>
<tr class="memdesc:ae9ddce410015ed8dda6380130d82d6c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">modulus of the class <br /></td></tr>
<tr class="separator:ae9ddce410015ed8dda6380130d82d6c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Chain class with a given modulus. </p>
<div class="textblock"><p >Chain class with a given modulus. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a80c8b902a15b4fd062ed727ecf8f3595"></a>
<a id="a80c8b902a15b4fd062ed727ecf8f3595" name="a80c8b902a15b4fd062ed727ecf8f3595"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80c8b902a15b4fd062ed727ecf8f3595">&#9670;&nbsp;</a></span>hash_chain()</h2>
<div class="memitem">
@@ -184,23 +176,16 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../..
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; : <a class="code" href="../../dd/d1c/classhash__chain.html#ae9ddce410015ed8dda6380130d82d6c2">_mod</a>(mod) {</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">while</span> (mod--) <a class="code" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> : <a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae9ddce410015ed8dda6380130d82d6c2">_mod</a>(mod) {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">while</span> (mod--) <a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>.push_back(<span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
<div class="ttc" id="aclasshash__chain_html_ae8457d13620497fa2046ac566252c4b0"><div class="ttname"><a href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">hash_chain::head</a></div><div class="ttdeci">std::vector&lt; std::shared_ptr&lt; Node &gt; &gt; head</div><div class="ttdoc">array of nodes</div><div class="ttdef"><b>Definition:</b> chaining.cpp:24</div></div>
<div class="ttc" id="aclasshash__chain_html_ae9ddce410015ed8dda6380130d82d6c2"><div class="ttname"><a href="../../dd/d1c/classhash__chain.html#ae9ddce410015ed8dda6380130d82d6c2">hash_chain::_mod</a></div><div class="ttdeci">int _mod</div><div class="ttdoc">modulus of the class</div><div class="ttdef"><b>Definition:</b> chaining.cpp:27</div></div>
<div class="ttc" id="apush_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">std::vector::push_back</a></div><div class="ttdeci">T push_back(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d1c/classhash__chain_a80c8b902a15b4fd062ed727ecf8f3595_cgraph.svg" width="380" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6b4b4de1a8c96f98a63a77f650a9dcff"></a>
<a id="a6b4b4de1a8c96f98a63a77f650a9dcff" name="a6b4b4de1a8c96f98a63a77f650a9dcff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b4b4de1a8c96f98a63a77f650a9dcff">&#9670;&nbsp;</a></span>add()</h2>
<div class="memitem">
@@ -242,22 +227,22 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Node&gt;</a> curr;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Node&gt;</a> temp(<span class="keyword">new</span> <a class="code" href="../../db/d8b/struct_node.html">Node</a>);</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; temp-&gt;data = x;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; temp-&gt;next = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>]) {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>] = temp;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; curr = <a class="code" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>];</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; curr = <a class="code" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>];</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">while</span> (curr-&gt;next) curr = curr-&gt;next;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; curr-&gt;next = temp;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Node&gt;</a> curr;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Node&gt;</a> temp(<span class="keyword">new</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a>);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> temp-&gt;data = x;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> temp-&gt;next = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code hl_function" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>]) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code hl_function" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>] = temp;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> curr = <a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code hl_function" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>];</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> curr = <a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code hl_function" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>];</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">while</span> (curr-&gt;next) curr = curr-&gt;next;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> curr-&gt;next = temp;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div>
<div class="ttc" id="ahash__search_8cpp_html_a566eaf0ffafd50bc61e644561fd27001"><div class="ttname"><a href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a></div><div class="ttdeci">int h(int key)</div><div class="ttdef"><b>Definition:</b> hash_search.cpp:45</div></div>
<div class="ttc" id="ashared_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt; Node &gt;</a></div></div>
<div class="ttc" id="ashared_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a></div></div>
<div class="ttc" id="astruct_node_html"><div class="ttname"><a href="../../db/d8b/struct_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> linkedlist_implentation_usingarray.cpp:14</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -268,7 +253,60 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a55aa5c6753cb8853152d469c375d946a"></a>
<a id="a706964ad13587fc9a8b3fe8381d410ed" name="a706964ad13587fc9a8b3fe8381d410ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a706964ad13587fc9a8b3fe8381d410ed">&#9670;&nbsp;</a></span>display()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void hash_chain::display </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Display the chain. </p>
<div class="fragment"><div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Node&gt;</a> temp = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae9ddce410015ed8dda6380130d82d6c2">_mod</a>; i++) {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[i]) {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Key &quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot; is empty&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Key &quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot; has values = &quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> temp = <a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[i];</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">while</span> (temp-&gt;next) {</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; temp-&gt;data &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> temp = temp-&gt;next;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> }</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; temp-&gt;data;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> }</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> }</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> }</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d1c/classhash__chain_a706964ad13587fc9a8b3fe8381d410ed_cgraph.svg" width="270" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a55aa5c6753cb8853152d469c375d946a" name="a55aa5c6753cb8853152d469c375d946a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55aa5c6753cb8853152d469c375d946a">&#9670;&nbsp;</a></span>find()</h2>
<div class="memitem">
@@ -313,35 +351,33 @@ Here is the call graph for this function:</div>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if element found </dd>
<dd>
<code>false</code> if element not found </dd></dl>
<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Node&gt;</a> temp = <a class="code" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>];</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>]) {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// index does not exist!</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Element not found&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// scan for data value</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">while</span> (temp-&gt;data != x &amp;&amp; temp-&gt;next) temp = temp-&gt;next;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (temp-&gt;next) {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Element found&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// implicit else condition</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// i.e., temp-&gt;next == nullptr</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (temp-&gt;data == x) {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Element found&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// further implicit else condition</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Element not found&quot;</span> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<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="fragment"><div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Node&gt;</a> temp = <a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code hl_function" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>];</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae8457d13620497fa2046ac566252c4b0">head</a>[<a class="code hl_function" href="../../d1/df3/hash__search_8cpp.html#a566eaf0ffafd50bc61e644561fd27001">h</a>]) {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// index does not exist!</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Element not found&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> }</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// scan for data value</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">while</span> (temp-&gt;data != x &amp;&amp; temp-&gt;next) temp = temp-&gt;next;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">if</span> (temp-&gt;next) {</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Element found&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> }</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// implicit else condition</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// i.e., temp-&gt;next == nullptr</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">if</span> (temp-&gt;data == x) {</div>
<div class="line"><a id="l00120" name="l00120"></a><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> &lt;&lt; <span class="stringliteral">&quot;Element found&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> }</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// further implicit else condition</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Element not found&quot;</span> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -351,7 +387,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a846a2f921f8fb7ea572e03901b671d64"></a>
<a id="a846a2f921f8fb7ea572e03901b671d64" name="a846a2f921f8fb7ea572e03901b671d64"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a846a2f921f8fb7ea572e03901b671d64">&#9670;&nbsp;</a></span>hash()</h2>
<div class="memitem">
@@ -383,8 +419,8 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>modulus of <code>x</code> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>declared as a <a href="https://en.cppreference.com/w/cpp/language/virtual"><code>virtual</code></a> so that custom implementations of the class can modify the hash function. </dd></dl>
<div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;{ <span class="keywordflow">return</span> x % <a class="code" href="../../dd/d1c/classhash__chain.html#ae9ddce410015ed8dda6380130d82d6c2">_mod</a>; }</div>
<dl class="section note"><dt>Note</dt><dd>declared as a <a href="https://en.cppreference.com/w/cpp/language/virtual" target="_blank"><code>virtual</code></a> so that custom implementations of the class can modify the hash function. </dd></dl>
<div class="fragment"><div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>{ <span class="keywordflow">return</span> x % <a class="code hl_variable" href="../../dd/d1c/classhash__chain.html#ae9ddce410015ed8dda6380130d82d6c2">_mod</a>; }</div>
</div><!-- fragment -->
</div>
</div>
@@ -397,7 +433,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d1c/classhash__chain.html">hash_chain</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,6 +1,6 @@
var classhash__chain =
[
[ "Node", "dd/d1c/classhash__chain.html#a21172d047bb9621385f2426ce25e71aa", null ],
[ "Node", "dd/d1c/classhash__chain.html#a28d3adffc0126beeef63bce0846fb8f5", null ],
[ "hash_chain", "dd/d1c/classhash__chain.html#a80c8b902a15b4fd062ed727ecf8f3595", null ],
[ "add", "dd/d1c/classhash__chain.html#a6b4b4de1a8c96f98a63a77f650a9dcff", null ],
[ "display", "dd/d1c/classhash__chain.html#a706964ad13587fc9a8b3fe8381d410ed", null ],

View File

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

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,4 @@
<map id="hash_chain::display" name="hash_chain::display">
<area shape="rect" id="node1" title="Display the chain." alt="" coords="5,5,144,32"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="192,5,264,32"/>
</map>

View File

@@ -0,0 +1 @@
fe5a31b1ceecc3640d3bd888940862ea

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: hash_chain::display Pages: 1 -->
<svg width="202pt" height="28pt"
viewBox="0.00 0.00 202.00 28.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 24)">
<title>hash_chain::display</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-24 198,-24 198,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Display the chain.">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 104,-19.5 104,-0.5 0,-0.5"/>
<text text-anchor="middle" x="52" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">hash_chain::display</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="140,-0.5 140,-19.5 194,-19.5 194,-0.5 140,-0.5"/>
<text text-anchor="middle" x="167" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M104.21,-10C112.82,-10 121.59,-10 129.72,-10"/>
<polygon fill="midnightblue" stroke="midnightblue" points="129.97,-13.5 139.97,-10 129.97,-6.5 129.97,-13.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,4 +0,0 @@
<map id="hash_chain::hash_chain" name="hash_chain::hash_chain">
<area shape="rect" id="node1" title="Construct a new chain object." alt="" coords="5,5,171,32"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/push_back.html#" title=" " alt="" coords="219,5,375,32"/>
</map>

View File

@@ -1 +0,0 @@
276f5eee7cebc61b8fb81a010ebe6472

View File

@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
-->
<!-- Title: hash_chain::hash_chain Pages: 1 -->
<svg width="285pt" height="28pt"
viewBox="0.00 0.00 285.00 28.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 24)">
<title>hash_chain::hash_chain</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-24 281,-24 281,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Construct a new chain object.">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 124,-19.5 124,-0.5 0,-0.5"/>
<text text-anchor="middle" x="62" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">hash_chain::hash_chain</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/push_back.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="160,-0.5 160,-19.5 277,-19.5 277,-0.5 160,-0.5"/>
<text text-anchor="middle" x="218.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::push_back</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M124.06,-10C132.46,-10 141.12,-10 149.63,-10"/>
<polygon fill="midnightblue" stroke="midnightblue" points="149.9,-13.5 159.9,-10 149.9,-6.5 149.9,-13.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: dynamic_programming Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d24/namespacedynamic__programming.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,35 +92,34 @@ $(document).ready(function(){initNavTree('dd/d24/namespacedynamic__programming.h
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">dynamic_programming Namespace Reference</div> </div>
<div class="headertitle"><div class="title">dynamic_programming Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Dynamic Programming algorithms.
<a href="../../dd/d24/namespacedynamic__programming.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0a2215194e58786c34db1ccaf8031079"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d24/namespacedynamic__programming.html#a0a2215194e58786c34db1ccaf8031079">LIS</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; uint64_t &gt; &amp;a, const uint32_t &amp;n)</td></tr>
<tr class="memdesc:a0a2215194e58786c34db1ccaf8031079"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the longest increasing subsequence for the specified numbers. <a href="../../dd/d24/namespacedynamic__programming.html#a0a2215194e58786c34db1ccaf8031079">More...</a><br /></td></tr>
<tr class="separator:a0a2215194e58786c34db1ccaf8031079"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Dynamic Programming algorithms. </p>
<p>Dynamic programming algorithms.</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>Dynamic Programming algorithm.</p>
<p>Dynamic Programming Algorithms.</p>
<p>for <code>assert</code> for IO operations for <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></code> library for <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></code> STL library</p>
<p>for assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a> for io operations</p>
<p>Dynamic Programming algorithms</p>
<p>for assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a> for IO operations</p>
<p>Dynamic Programming algorithms</p>
<p>for assert for IO operations</p>
<p>Dynamic Programming algorithms </p>
<div class="textblock"><p >Dynamic Programming algorithms. </p>
<p >Dynamic programming algorithms.</p>
<p >for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p >Dynamic Programming algorithm.</p>
<p >Dynamic Programming Algorithms.</p>
<p >for <code>assert</code> for IO operations for <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></code> library for <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></code> STL library</p>
<p >for assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a> for io operations</p>
<p >Dynamic Programming algorithms</p>
<p >for assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a> for IO operations</p>
<p >Dynamic Programming algorithms</p>
<p >for assert for IO operations</p>
<p >Dynamic Programming algorithms </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a0a2215194e58786c34db1ccaf8031079"></a>
<a id="a0a2215194e58786c34db1ccaf8031079" name="a0a2215194e58786c34db1ccaf8031079"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a2215194e58786c34db1ccaf8031079">&#9670;&nbsp;</a></span>LIS()</h2>
<div class="memitem">
@@ -155,26 +154,26 @@ Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the length of the longest increasing subsequence in the <code>a</code> array of size <code>n</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> lis(n);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; lis[i] = 1;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; i; ++j) {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span> (a[i] &gt; a[j] &amp;&amp; lis[i] &lt; lis[j] + 1) {</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; lis[i] = lis[j] + 1;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">int</span> res = 0;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; res = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(res, lis[i]);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> res;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;int&gt;</a> lis(n);</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> lis[i] = 1;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> }</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; i; ++j) {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">if</span> (a[i] &gt; a[j] &amp;&amp; lis[i] &lt; lis[j] + 1) {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> lis[i] = lis[j] + 1;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">int</span> res = 0;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> res = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(res, lis[i]);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>}</div>
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt; int &gt;</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -190,7 +189,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d24/namespacedynamic__programming.html">dynamic_programming</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

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

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: numerical_methods/false_position.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d29/false__position_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -93,12 +93,11 @@ $(document).ready(function(){initNavTree('dd/d29/false__position_8cpp.html','../
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">false_position.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">false_position.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Solve the equation \(f(x)=0\) using <a href="https://en.wikipedia.org/wiki/Regula_falsi">false position method</a>, also known as the Secant method.
<p>Solve the equation \(f(x)=0\) using <a href="https://en.wikipedia.org/wiki/Regula_falsi" target="_blank">false position method</a>, also known as the Secant method.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
@@ -109,16 +108,16 @@ Include dependency graph for false_position.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d1/de0/namespacenumerical__methods"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/de0/namespacenumerical__methods.html">numerical_methods</a></td></tr>
<tr class="memitem:d1/de0/namespacenumerical__methods"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/de0/namespacenumerical__methods.html">numerical_methods</a></td></tr>
<tr class="memdesc:d1/de0/namespacenumerical__methods"><td class="mdescLeft">&#160;</td><td class="mdescRight">for io operations <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:df/dea/namespacefalse__position"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dea/namespacefalse__position.html">false_position</a></td></tr>
<tr class="memdesc:df/dea/namespacefalse__position"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Regula_falsi">False Position</a> method. <br /></td></tr>
<tr class="memitem:df/dea/namespacefalse__position"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dea/namespacefalse__position.html">false_position</a></td></tr>
<tr class="memdesc:df/dea/namespacefalse__position"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for <a href="https://en.wikipedia.org/wiki/Regula_falsi" target="_blank">False Position</a> method. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a85a6ec58b5064d63d4f0df3854496713"><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d29/false__position_8cpp.html#a85a6ec58b5064d63d4f0df3854496713">numerical_methods::false_position::eq</a> (float x)</td></tr>
<tr class="memdesc:a85a6ec58b5064d63d4f0df3854496713"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function gives the value of f(x) for given x. <a href="../../dd/d29/false__position_8cpp.html#a85a6ec58b5064d63d4f0df3854496713">More...</a><br /></td></tr>
@@ -134,18 +133,18 @@ Functions</h2></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Solve the equation \(f(x)=0\) using <a href="https://en.wikipedia.org/wiki/Regula_falsi">false position method</a>, also known as the Secant method. </p>
<p>First, multiple intervals are selected with the interval gap provided. Separate recursive function called for every root. Roots are printed Separatelt.</p>
<p>For an interval [a,b] \(a\) and \(b\) such that \(f(a)&lt;0\) and \(f(b)&gt;0\), then the \((i+1)^\text{th}\) approximation is given by: </p><p class="formulaDsp">
<div class="textblock"><p >Solve the equation \(f(x)=0\) using <a href="https://en.wikipedia.org/wiki/Regula_falsi" target="_blank">false position method</a>, also known as the Secant method. </p>
<p >First, multiple intervals are selected with the interval gap provided. Separate recursive function called for every root. Roots are printed Separatelt.</p>
<p >For an interval [a,b] \(a\) and \(b\) such that \(f(a)&lt;0\) and \(f(b)&gt;0\), then the \((i+1)^\text{th}\) approximation is given by: </p><p class="formulaDsp">
\[ x_{i+1} = \frac{a_i\cdot f(b_i) - b_i\cdot f(a_i)}{f(b_i) - f(a_i)} \]
</p>
<p> For the next iteration, the interval is selected as: \([a,x]\) if \(x&gt;0\) or \([x,b]\) if \(x&lt;0\). The Process is continued till a close enough approximation is achieved.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../de/dd3/newton__raphson__method_8cpp.html" title="Solve the equation using Newton-Raphson method for both real and complex solutions.">newton_raphson_method.cpp</a>, <a class="el" href="../../d7/d6a/bisection__method_8cpp.html" title="Solve the equation using bisection method">bisection_method.cpp</a></dd></dl>
<dl class="section author"><dt>Author</dt><dd>Unknown author </dd>
<dd>
<a href="https://github.com/sampatil578">Samruddha Patil</a> </dd></dl>
<a href="https://github.com/sampatil578" target="_blank">Samruddha Patil</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a85a6ec58b5064d63d4f0df3854496713"></a>
<a id="a85a6ec58b5064d63d4f0df3854496713" name="a85a6ec58b5064d63d4f0df3854496713"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85a6ec58b5064d63d4f0df3854496713">&#9670;&nbsp;</a></span>eq()</h2>
<div class="memitem">
@@ -177,9 +176,9 @@ Functions</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>value of f(x) for given x. </dd></dl>
<div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> (x * x - x); <span class="comment">// original equation</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> {</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> (x * x - x); <span class="comment">// original equation</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -189,7 +188,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -207,40 +206,40 @@ Here is the call graph for this function:</div>
<p>Main function. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">float</span> a = 0, b = 0, i = 0, root = 0;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; int16_t count = 0;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">float</span> range =</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; 100000; <span class="comment">// Range in which we have to find the root. (-range,range)</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">float</span> gap = 0.5; <span class="comment">// interval gap. lesser the gap more the accuracy</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; a = <a class="code" href="../../dd/d29/false__position_8cpp.html#a85a6ec58b5064d63d4f0df3854496713">numerical_methods::false_position::eq</a>((-1) * range);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; i = ((-1) * range + gap);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// while loop for selecting proper interval in provided range and with</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// provided interval gap.</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">while</span> (i &lt;= range) {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; b = <a class="code" href="../../dd/d29/false__position_8cpp.html#a85a6ec58b5064d63d4f0df3854496713">numerical_methods::false_position::eq</a>(i);</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span> (b == 0) {</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; count++;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="../../dd/d29/false__position_8cpp.html#a85cb7bfb90abc898e042d624372c5345">numerical_methods::false_position::printRoot</a>(i, count);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (a * b &lt; 0) {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; root = <a class="code" href="../../dd/d29/false__position_8cpp.html#a7d69b49dc37da1c02b3ab8c7fe783494">numerical_methods::false_position::regula_falsi</a>(i - gap, i,</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; a, b);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; count++;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="../../dd/d29/false__position_8cpp.html#a85cb7bfb90abc898e042d624372c5345">numerical_methods::false_position::printRoot</a>(root, count);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; a = b;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; i += gap;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">float</span> a = 0, b = 0, i = 0, root = 0;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> int16_t count = 0;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">float</span> range =</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> 100000; <span class="comment">// Range in which we have to find the root. (-range,range)</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">float</span> gap = 0.5; <span class="comment">// interval gap. lesser the gap more the accuracy</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> a = <a class="code hl_function" href="../../dd/d29/false__position_8cpp.html#a85a6ec58b5064d63d4f0df3854496713">numerical_methods::false_position::eq</a>((-1) * range);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> i = ((-1) * range + gap);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// while loop for selecting proper interval in provided range and with</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// provided interval gap.</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">while</span> (i &lt;= range) {</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> b = <a class="code hl_function" href="../../dd/d29/false__position_8cpp.html#a85a6ec58b5064d63d4f0df3854496713">numerical_methods::false_position::eq</a>(i);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span> (b == 0) {</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> count++;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <a class="code hl_function" href="../../dd/d29/false__position_8cpp.html#a85cb7bfb90abc898e042d624372c5345">numerical_methods::false_position::printRoot</a>(i, count);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> }</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">if</span> (a * b &lt; 0) {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> root = <a class="code hl_function" href="../../dd/d29/false__position_8cpp.html#a7d69b49dc37da1c02b3ab8c7fe783494">numerical_methods::false_position::regula_falsi</a>(i - gap, i,</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> a, b);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> count++;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <a class="code hl_function" href="../../dd/d29/false__position_8cpp.html#a85cb7bfb90abc898e042d624372c5345">numerical_methods::false_position::printRoot</a>(root, count);</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> a = b;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> i += gap;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span>}</div>
<div class="ttc" id="afalse__position_8cpp_html_a7d69b49dc37da1c02b3ab8c7fe783494"><div class="ttname"><a href="../../dd/d29/false__position_8cpp.html#a7d69b49dc37da1c02b3ab8c7fe783494">numerical_methods::false_position::regula_falsi</a></div><div class="ttdeci">static float regula_falsi(float x1, float x2, float y1, float y2)</div><div class="ttdoc">This function finds root of the equation in given interval i.e. (x1,x2).</div><div class="ttdef"><b>Definition:</b> false_position.cpp:55</div></div>
<div class="ttc" id="afalse__position_8cpp_html_a85a6ec58b5064d63d4f0df3854496713"><div class="ttname"><a href="../../dd/d29/false__position_8cpp.html#a85a6ec58b5064d63d4f0df3854496713">numerical_methods::false_position::eq</a></div><div class="ttdeci">static float eq(float x)</div><div class="ttdoc">This function gives the value of f(x) for given x.</div><div class="ttdef"><b>Definition:</b> false_position.cpp:44</div></div>
<div class="ttc" id="afalse__position_8cpp_html_a85cb7bfb90abc898e042d624372c5345"><div class="ttname"><a href="../../dd/d29/false__position_8cpp.html#a85cb7bfb90abc898e042d624372c5345">numerical_methods::false_position::printRoot</a></div><div class="ttdeci">void printRoot(float root, const int16_t &amp;count)</div><div class="ttdoc">This function prints roots of the equation.</div><div class="ttdef"><b>Definition:</b> false_position.cpp:84</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a85cb7bfb90abc898e042d624372c5345"></a>
<a id="a85cb7bfb90abc898e042d624372c5345" name="a85cb7bfb90abc898e042d624372c5345"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85cb7bfb90abc898e042d624372c5345">&#9670;&nbsp;</a></span>printRoot()</h2>
<div class="memitem">
@@ -274,17 +273,17 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span> (count == 1) {</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Your 1st root is : &quot;</span> &lt;&lt; root &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count == 2) {</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Your 2nd root is : &quot;</span> &lt;&lt; root &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count == 3) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Your 3rd root is : &quot;</span> &lt;&lt; root &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Your &quot;</span> &lt;&lt; count &lt;&lt; <span class="stringliteral">&quot;th root is : &quot;</span> &lt;&lt; root &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">if</span> (count == 1) {</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Your 1st root is : &quot;</span> &lt;&lt; root &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count == 2) {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Your 2nd root is : &quot;</span> &lt;&lt; root &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count == 3) {</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Your 3rd root is : &quot;</span> &lt;&lt; root &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Your &quot;</span> &lt;&lt; count &lt;&lt; <span class="stringliteral">&quot;th root is : &quot;</span> &lt;&lt; root &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -296,7 +295,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a7d69b49dc37da1c02b3ab8c7fe783494"></a>
<a id="a7d69b49dc37da1c02b3ab8c7fe783494" name="a7d69b49dc37da1c02b3ab8c7fe783494"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d69b49dc37da1c02b3ab8c7fe783494">&#9670;&nbsp;</a></span>regula_falsi()</h2>
<div class="memitem">
@@ -351,29 +350,29 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>root of the equation in the given interval. </dd></dl>
<div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">float</span> diff = x1 - x2;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span> (diff &lt; 0) {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; diff = (-1) * diff;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> (diff &lt; 0.00001) {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span> (y1 &lt; 0) {</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; y1 = -y1;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (y2 &lt; 0) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; y2 = -y2;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span> (y1 &lt; y2) {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> x1;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> x2;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">float</span> x3 = 0, y3 = 0;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; x3 = x1 - (x1 - x2) * (y1) / (y1 - y2);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; y3 = <a class="code" href="../../dd/d29/false__position_8cpp.html#a85a6ec58b5064d63d4f0df3854496713">eq</a>(x3);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../dd/d29/false__position_8cpp.html#a7d69b49dc37da1c02b3ab8c7fe783494">regula_falsi</a>(x2, x3, y2, y3);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> {</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">float</span> diff = x1 - x2;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">if</span> (diff &lt; 0) {</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> diff = (-1) * diff;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">if</span> (diff &lt; 0.00001) {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">if</span> (y1 &lt; 0) {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> y1 = -y1;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">if</span> (y2 &lt; 0) {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> y2 = -y2;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> }</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">if</span> (y1 &lt; y2) {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">return</span> x1;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> x2;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> }</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">float</span> x3 = 0, y3 = 0;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> x3 = x1 - (x1 - x2) * (y1) / (y1 - y2);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> y3 = <a class="code hl_function" href="../../dd/d29/false__position_8cpp.html#a85a6ec58b5064d63d4f0df3854496713">eq</a>(x3);</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../dd/d29/false__position_8cpp.html#a7d69b49dc37da1c02b3ab8c7fe783494">regula_falsi</a>(x2, x3, y2, y3);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -389,7 +388,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_9c6faab82c22511b50177aa2e38e2780.html">numerical_methods</a></li><li class="navelem"><a class="el" href="../../dd/d29/false__position_8cpp.html">false_position.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

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

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Trie Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d2f/class_trie.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -98,62 +98,82 @@ $(document).ready(function(){initNavTree('dd/d2f/class_trie.html','../../'); ini
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#pri-static-attribs">Static Private Attributes</a> &#124;
<a href="../../de/d8a/class_trie-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Trie Class Reference</div> </div>
<div class="headertitle"><div class="title">Trie Class Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for Trie:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d8/d61/class_trie__coll__graph.svg" width="155" height="142"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d48/struct_trie_1_1_trie_node.html">TrieNode</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6af57e9f25d0d0a2d59eea5a4a802908"><td class="memItemLeft" align="right" valign="top"><a id="a6af57e9f25d0d0a2d59eea5a4a802908"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d2f/class_trie.html#a6af57e9f25d0d0a2d59eea5a4a802908">Trie</a> ()</td></tr>
<tr class="memdesc:a6af57e9f25d0d0a2d59eea5a4a802908"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor to initialise the root of the trie. <br /></td></tr>
<tr class="memitem:a6af57e9f25d0d0a2d59eea5a4a802908"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d2f/class_trie.html#a6af57e9f25d0d0a2d59eea5a4a802908">Trie</a> ()</td></tr>
<tr class="memdesc:a6af57e9f25d0d0a2d59eea5a4a802908"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor to initialise the root of the trie. <a href="../../dd/d2f/class_trie.html#a6af57e9f25d0d0a2d59eea5a4a802908">More...</a><br /></td></tr>
<tr class="separator:a6af57e9f25d0d0a2d59eea5a4a802908"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd8b79959009b554e98ea7128b2886f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d2f/class_trie.html#afd8b79959009b554e98ea7128b2886f2">insert</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;word)</td></tr>
<tr class="separator:afd8b79959009b554e98ea7128b2886f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a411e77126930a0942dd7b65e96b15206"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d2f/class_trie.html#a411e77126930a0942dd7b65e96b15206">search</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;word)</td></tr>
<tr class="separator:a411e77126930a0942dd7b65e96b15206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a734a08b52b8ad73bdd1f36ae8348056e"><td class="memItemLeft" align="right" valign="top"><a id="a734a08b52b8ad73bdd1f36ae8348056e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>removeWord</b> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;word)</td></tr>
<tr class="memitem:a734a08b52b8ad73bdd1f36ae8348056e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d2f/class_trie.html#a734a08b52b8ad73bdd1f36ae8348056e">removeWord</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;word)</td></tr>
<tr class="separator:a734a08b52b8ad73bdd1f36ae8348056e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a95216ffc56cb9f8cede982cecb872af4"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="../../de/d48/struct_trie_1_1_trie_node.html">TrieNode</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d2f/class_trie.html#a95216ffc56cb9f8cede982cecb872af4">removeWordHelper</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;word, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="../../de/d48/struct_trie_1_1_trie_node.html">TrieNode</a> &gt; curr, size_t index)</td></tr>
<tr class="separator:a95216ffc56cb9f8cede982cecb872af4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26941759ecf94d67a27d4a610bc0f63d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="../../de/d48/struct_trie_1_1_trie_node.html">TrieNode</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d2f/class_trie.html#a26941759ecf94d67a27d4a610bc0f63d">removeWordHelper</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;word, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="../../de/d48/struct_trie_1_1_trie_node.html">TrieNode</a> &gt; curr, size_t index)</td></tr>
<tr class="separator:a26941759ecf94d67a27d4a610bc0f63d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-static-methods" name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a6d10eb1669453395d1900ebd401954fb"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d2f/class_trie.html#a6d10eb1669453395d1900ebd401954fb">hasChildren</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="../../de/d48/struct_trie_1_1_trie_node.html">TrieNode</a> &gt; <a class="el" href="../../d5/da1/structnode.html">node</a>)</td></tr>
<tr class="separator:a6d10eb1669453395d1900ebd401954fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a58b359fad33ca0064bd75a0d41a7b66d"><td class="memItemLeft" align="right" valign="top"><a id="a58b359fad33ca0064bd75a0d41a7b66d"></a>
<tr class="memitem:a58b359fad33ca0064bd75a0d41a7b66d"><td class="memItemLeft" align="right" valign="top"><a id="a58b359fad33ca0064bd75a0d41a7b66d" name="a58b359fad33ca0064bd75a0d41a7b66d"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="../../de/d48/struct_trie_1_1_trie_node.html">TrieNode</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_root</b></td></tr>
<tr class="separator:a58b359fad33ca0064bd75a0d41a7b66d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-static-attribs" name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr class="memitem:a7c3ba4caf24378826a789848629177bd"><td class="memItemLeft" align="right" valign="top"><a id="a7c3ba4caf24378826a789848629177bd"></a>
<tr class="memitem:a7c3ba4caf24378826a789848629177bd"><td class="memItemLeft" align="right" valign="top"><a id="a7c3ba4caf24378826a789848629177bd" name="a7c3ba4caf24378826a789848629177bd"></a>
static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ALPHABETS</b> = 26</td></tr>
<tr class="separator:a7c3ba4caf24378826a789848629177bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A basic implementation of trie class to store only lower-case strings. You can extend the implementation to all the ASCII characters by changing the value of @ ALPHABETS to 128. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a6d10eb1669453395d1900ebd401954fb"></a>
<div class="textblock"><p >A basic implementation of trie class to store only lower-case strings. You can extend the implementation to all the ASCII characters by changing the value of @ ALPHABETS to 128. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a6af57e9f25d0d0a2d59eea5a4a802908" name="a6af57e9f25d0d0a2d59eea5a4a802908"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6af57e9f25d0d0a2d59eea5a4a802908">&#9670;&nbsp;</a></span>Trie()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Trie::Trie </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>constructor to initialise the root of the trie. </p>
<div class="fragment"><div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>: m_root(std::make_shared&lt;TrieNode&gt;()) {}</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6d10eb1669453395d1900ebd401954fb" name="a6d10eb1669453395d1900ebd401954fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d10eb1669453395d1900ebd401954fb">&#9670;&nbsp;</a></span>hasChildren()</h2>
<div class="memitem">
@@ -176,7 +196,7 @@ static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><b>AL
</tr>
</table>
</div><div class="memdoc">
<p>Function to check if a node has some children which can form words. </p><dl class="params"><dt>Parameters</dt><dd>
<p >Function to check if a node has some children which can form words. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">node</td><td>whose character array of pointers need to be checked for children. </td></tr>
</table>
@@ -185,19 +205,19 @@ static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><b>AL
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a child is found </dd>
<dd>
<code>false</code> if a child is not found </dd></dl>
<div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; ALPHABETS; i++) {</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../d5/da1/structnode.html">node</a>-&gt;character[i]) {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; ALPHABETS; i++) {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">if</span> (<a class="code hl_class" href="../../d5/da1/structnode.html">node</a>-&gt;character[i]) {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> }</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> }</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
<div class="ttc" id="astructnode_html"><div class="ttname"><a href="../../d5/da1/structnode.html">node</a></div><div class="ttdef"><b>Definition:</b> avltree.cpp:13</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="afd8b79959009b554e98ea7128b2886f2"></a>
<a id="afd8b79959009b554e98ea7128b2886f2" name="afd8b79959009b554e98ea7128b2886f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd8b79959009b554e98ea7128b2886f2">&#9670;&nbsp;</a></span>insert()</h2>
<div class="memitem">
@@ -220,32 +240,32 @@ static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><b>AL
</tr>
</table>
</div><div class="memdoc">
<p>Insert a word into the trie. </p><dl class="params"><dt>Parameters</dt><dd>
<p >Insert a word into the trie. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">word</td><td>which needs to be inserted into the string. </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">auto</span> curr = m_root;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">char</span> ch : word) {</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">size_t</span> index = ch - <span class="charliteral">&#39;a&#39;</span>;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// if a node for current word is not already present in trie, create</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// a new node for it.</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (!curr-&gt;character[index]) {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; curr-&gt;character[index] = std::make_shared&lt;TrieNode&gt;();</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; curr = curr-&gt;character[index];</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; curr-&gt;isEndOfWord = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">auto</span> curr = m_root;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">for</span> (<span class="keywordtype">char</span> ch : word) {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">size_t</span> index = ch - <span class="charliteral">&#39;a&#39;</span>;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// if a node for current word is not already present in trie, create</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// a new node for it.</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">if</span> (!curr-&gt;character[index]) {</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> curr-&gt;character[index] = std::make_shared&lt;TrieNode&gt;();</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> }</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> curr = curr-&gt;character[index];</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> }</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> curr-&gt;isEndOfWord = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a95216ffc56cb9f8cede982cecb872af4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95216ffc56cb9f8cede982cecb872af4">&#9670;&nbsp;</a></span>removeWordHelper()</h2>
<a id="a734a08b52b8ad73bdd1f36ae8348056e" name="a734a08b52b8ad73bdd1f36ae8348056e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a734a08b52b8ad73bdd1f36ae8348056e">&#9670;&nbsp;</a></span>removeWord()</h2>
<div class="memitem">
<div class="memproto">
@@ -254,7 +274,37 @@ static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><b>AL
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt;<a class="el" href="../../de/d48/struct_trie_1_1_trie_node.html">TrieNode</a>&gt; Trie::removeWordHelper </td>
<td class="memname">void Trie::removeWord </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>word</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> {</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> m_root = <a class="code hl_function" href="../../dd/d2f/class_trie.html#a26941759ecf94d67a27d4a610bc0f63d">removeWordHelper</a>(word, m_root, 0);</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> }</div>
<div class="ttc" id="aclass_trie_html_a26941759ecf94d67a27d4a610bc0f63d"><div class="ttname"><a href="../../dd/d2f/class_trie.html#a26941759ecf94d67a27d4a610bc0f63d">Trie::removeWordHelper</a></div><div class="ttdeci">std::shared_ptr&lt; TrieNode &gt; removeWordHelper(const std::string &amp;word, std::shared_ptr&lt; TrieNode &gt; curr, size_t index)</div><div class="ttdef"><b>Definition:</b> trie_modern.cpp:64</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a26941759ecf94d67a27d4a610bc0f63d" name="a26941759ecf94d67a27d4a610bc0f63d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26941759ecf94d67a27d4a610bc0f63d">&#9670;&nbsp;</a></span>removeWordHelper()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="../../de/d48/struct_trie_1_1_trie_node.html">TrieNode</a> &gt; Trie::removeWordHelper </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>word</em>, </td>
@@ -283,7 +333,7 @@ static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><b>AL
</tr>
</table>
</div><div class="memdoc">
<p>A recursive helper function to remove a word from the trie. First, it recursively traverses to the location of last character of word in the trie. However, if the word is not found, the function returns a runtime error. Upon successfully reaching the last character of word in trie, if sets the isEndOfWord to false and deletes the node if and only if it has no children, else it returns the current node. </p><dl class="params"><dt>Parameters</dt><dd>
<p >A recursive helper function to remove a word from the trie. First, it recursively traverses to the location of last character of word in the trie. However, if the word is not found, the function returns a runtime error. Upon successfully reaching the last character of word in trie, if sets the isEndOfWord to false and deletes the node if and only if it has no children, else it returns the current node. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">word</td><td>is the string which needs to be removed from trie. </td></tr>
<tr><td class="paramname">curr</td><td>is the current node we are at. </td></tr>
@@ -298,56 +348,55 @@ static constexpr size_t&#160;</td><td class="memItemRight" valign="bottom"><b>AL
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span> (word.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() == index) {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span> (curr-&gt;isEndOfWord) {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; curr-&gt;isEndOfWord = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../dd/d2f/class_trie.html#a6d10eb1669453395d1900ebd401954fb">hasChildren</a>(curr)) {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> curr;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">size_t</span> idx = word[index] - <span class="charliteral">&#39;a&#39;</span>;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Throw a runtime error in case the user enters a word which is not</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// present in the trie.</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span> (!curr-&gt;character[idx]) {</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">throw</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/error/runtime_error.html">std::runtime_error</a>(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a>(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>(<span class="stringliteral">&quot;Word not found.&quot;</span>)));</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; curr-&gt;character[idx] =</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="../../dd/d2f/class_trie.html#a95216ffc56cb9f8cede982cecb872af4">removeWordHelper</a>(word, curr-&gt;character[idx], index + 1);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// This if condition checks if the node has some childern.</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// The 1st if check, i.e. (curr-&gt;character[idx]) is checked specifically</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// because if the older string is a prefix of some other string, then,</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// there would be no need to check all 26 characters. Example- str1 =</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// abbey, str2 = abbex and we want to delete string &quot;abbey&quot;, then in</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// this case, there would be no need to check all characters for the</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// chars a,b,b.</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (curr-&gt;character[idx] || <a class="code" href="../../dd/d2f/class_trie.html#a6d10eb1669453395d1900ebd401954fb">hasChildren</a>(curr)) {</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> curr;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">if</span> (word.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() == index) {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">if</span> (curr-&gt;isEndOfWord) {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> curr-&gt;isEndOfWord = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> }</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../dd/d2f/class_trie.html#a6d10eb1669453395d1900ebd401954fb">hasChildren</a>(curr)) {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> curr;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> }</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> }</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordtype">size_t</span> idx = word[index] - <span class="charliteral">&#39;a&#39;</span>;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// Throw a runtime error in case the user enters a word which is not</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// present in the trie.</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">if</span> (!curr-&gt;character[idx]) {</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">throw</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/error/runtime_error.html">std::runtime_error</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a>(<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>(<span class="stringliteral">&quot;Word not found.&quot;</span>)));</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> curr-&gt;character[idx] =</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_function" href="../../dd/d2f/class_trie.html#a26941759ecf94d67a27d4a610bc0f63d">removeWordHelper</a>(word, curr-&gt;character[idx], index + 1);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// This if condition checks if the node has some childern.</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// The 1st if check, i.e. (curr-&gt;character[idx]) is checked specifically</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// because if the older string is a prefix of some other string, then,</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// there would be no need to check all 26 characters. Example- str1 =</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// abbey, str2 = abbex and we want to delete string &quot;abbey&quot;, then in</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="comment">// this case, there would be no need to check all characters for the</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// chars a,b,b.</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">if</span> (curr-&gt;character[idx] || <a class="code hl_function" href="../../dd/d2f/class_trie.html#a6d10eb1669453395d1900ebd401954fb">hasChildren</a>(curr)) {</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> curr;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> }</div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="aclass_trie_html_a6d10eb1669453395d1900ebd401954fb"><div class="ttname"><a href="../../dd/d2f/class_trie.html#a6d10eb1669453395d1900ebd401954fb">Trie::hasChildren</a></div><div class="ttdeci">static bool hasChildren(std::shared_ptr&lt; TrieNode &gt; node)</div><div class="ttdef"><b>Definition:</b> trie_modern.cpp:41</div></div>
<div class="ttc" id="aclass_trie_html_a95216ffc56cb9f8cede982cecb872af4"><div class="ttname"><a href="../../dd/d2f/class_trie.html#a95216ffc56cb9f8cede982cecb872af4">Trie::removeWordHelper</a></div><div class="ttdeci">std::shared_ptr&lt; TrieNode &gt; removeWordHelper(const std::string &amp;word, std::shared_ptr&lt; TrieNode &gt; curr, size_t index)</div><div class="ttdef"><b>Definition:</b> trie_modern.cpp:64</div></div>
<div class="ttc" id="amove_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a></div><div class="ttdeci">T move(T... args)</div></div>
<div class="ttc" id="aruntime_error_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/error/runtime_error.html">std::runtime_error</a></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>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d2f/class_trie_a95216ffc56cb9f8cede982cecb872af4_cgraph.svg" width="348" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d2f/class_trie_a26941759ecf94d67a27d4a610bc0f63d_cgraph.svg" width="348" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a411e77126930a0942dd7b65e96b15206"></a>
<a id="a411e77126930a0942dd7b65e96b15206" name="a411e77126930a0942dd7b65e96b15206"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a411e77126930a0942dd7b65e96b15206">&#9670;&nbsp;</a></span>search()</h2>
<div class="memitem">
@@ -370,7 +419,7 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Search if a word is present in trie or not. </p><dl class="params"><dt>Parameters</dt><dd>
<p >Search if a word is present in trie or not. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">word</td><td>which is needed to be searched in the trie. </td></tr>
</table>
@@ -379,20 +428,20 @@ Here is the call graph for this function:</div>
<dl class="section return"><dt>Returns</dt><dd>True if the word is found in trie and isEndOfWord is set to true. </dd>
<dd>
False if word is not found in trie or isEndOfWord is set to false. </dd></dl>
<div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">auto</span> curr = m_root;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">char</span> ch : word) {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">size_t</span> index = ch - <span class="charliteral">&#39;a&#39;</span>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// if any node for a character is not found, then return that the</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// word cannot be formed.</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span> (!curr-&gt;character[index]) {</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; curr = curr-&gt;character[index];</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> curr-&gt;isEndOfWord;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> {</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">auto</span> curr = m_root;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">for</span> (<span class="keywordtype">char</span> ch : word) {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">size_t</span> index = ch - <span class="charliteral">&#39;a&#39;</span>;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// if any node for a character is not found, then return that the</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="comment">// word cannot be formed.</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">if</span> (!curr-&gt;character[index]) {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> curr = curr-&gt;character[index];</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> }</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">return</span> curr-&gt;isEndOfWord;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> }</div>
</div><!-- fragment -->
</div>
</div>
@@ -405,7 +454,7 @@ False if word is not found in trie or isEndOfWord is set to false. </dd></dl>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d2f/class_trie.html">Trie</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,12 +1,9 @@
var class_trie =
[
[ "TrieNode", "de/d48/struct_trie_1_1_trie_node.html", "de/d48/struct_trie_1_1_trie_node" ],
[ "TrieNode", "de/d48/struct_trie_1_1_trie_node.html", null ],
[ "Trie", "dd/d2f/class_trie.html#a6af57e9f25d0d0a2d59eea5a4a802908", null ],
[ "hasChildren", "dd/d2f/class_trie.html#a6d10eb1669453395d1900ebd401954fb", null ],
[ "insert", "dd/d2f/class_trie.html#afd8b79959009b554e98ea7128b2886f2", null ],
[ "removeWord", "dd/d2f/class_trie.html#a734a08b52b8ad73bdd1f36ae8348056e", null ],
[ "removeWordHelper", "dd/d2f/class_trie.html#a95216ffc56cb9f8cede982cecb872af4", null ],
[ "search", "dd/d2f/class_trie.html#a411e77126930a0942dd7b65e96b15206", null ],
[ "ALPHABETS", "dd/d2f/class_trie.html#a7c3ba4caf24378826a789848629177bd", null ],
[ "m_root", "dd/d2f/class_trie.html#a58b359fad33ca0064bd75a0d41a7b66d", null ]
[ "removeWordHelper", "dd/d2f/class_trie.html#a26941759ecf94d67a27d4a610bc0f63d", null ],
[ "search", "dd/d2f/class_trie.html#a411e77126930a0942dd7b65e96b15206", null ]
];

View File

@@ -0,0 +1 @@
49f37747ae0a788844deebf481f9c846

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (20210717.1556)
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
-->
<!-- Title: Trie::removeWordHelper Pages: 1 -->
<svg width="261pt" height="104pt"
@@ -18,6 +18,12 @@
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node1 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node1</title>
<path fill="none" stroke="midnightblue" d="M40.31,-57.76C29.51,-66.57 36.91,-76 62.5,-76 79.3,-76 88.26,-71.94 89.38,-66.65"/>
<polygon fill="midnightblue" stroke="midnightblue" points="92.45,-64.97 84.69,-57.76 86.26,-68.24 92.45,-64.97"/>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
@@ -58,7 +64,7 @@
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M99.46,-38.41C117.94,-33.48 140.66,-27.43 160.36,-22.17"/>
<polygon fill="midnightblue" stroke="midnightblue" points="161.29,-25.54 170.05,-19.59 159.49,-18.78 161.29,-25.54"/>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -1 +0,0 @@
9a766095fb839cbad3c0e066810b3e24

View File

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

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: data_structures::tree_234::Node Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d40/classdata__structures_1_1tree__234_1_1_node.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -94,21 +94,14 @@ $(document).ready(function(){initNavTree('dd/d40/classdata__structures_1_1tree__
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="../../d7/d61/classdata__structures_1_1tree__234_1_1_node-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">data_structures::tree_234::Node Class Reference</div> </div>
<div class="headertitle"><div class="title">data_structures::tree_234::Node Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>2-3-4 tree node class
<a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for data_structures::tree_234::Node:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/db5/classdata__structures_1_1tree__234_1_1_node__coll__graph.svg" width="192" height="335"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad5219979ea9a8baa3a273a9ec0f0c670"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5219979ea9a8baa3a273a9ec0f0c670">Node</a> (int64_t item)</td></tr>
<tr class="memdesc:ad5219979ea9a8baa3a273a9ec0f0c670"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html" title="2-3-4 tree node class">Node</a> constructor. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5219979ea9a8baa3a273a9ec0f0c670">More...</a><br /></td></tr>
@@ -155,53 +148,53 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a306a30931f54c84098b38d6bc8f4a956"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a306a30931f54c84098b38d6bc8f4a956">InsertItemByIndex</a> (int8_t index, int64_t item, <a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *with_child, bool to_left=true)</td></tr>
<tr class="memdesc:a306a30931f54c84098b38d6bc8f4a956"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a value to the index position. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a306a30931f54c84098b38d6bc8f4a956">More...</a><br /></td></tr>
<tr class="separator:a306a30931f54c84098b38d6bc8f4a956"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8384b8c0fdc8e5e443010d2eb1187847"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8384b8c0fdc8e5e443010d2eb1187847">RemoveItemByIndex</a> (int8_t index, bool keep_left)</td></tr>
<tr class="memdesc:a8384b8c0fdc8e5e443010d2eb1187847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a value to the index position. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8384b8c0fdc8e5e443010d2eb1187847">More...</a><br /></td></tr>
<tr class="separator:a8384b8c0fdc8e5e443010d2eb1187847"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28944bb16ec22650b47fe3e80e3e13f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a28944bb16ec22650b47fe3e80e3e13f8">RemoveItemByIndex</a> (int8_t index, bool keep_left)</td></tr>
<tr class="memdesc:a28944bb16ec22650b47fe3e80e3e13f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a value to the index position. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a28944bb16ec22650b47fe3e80e3e13f8">More...</a><br /></td></tr>
<tr class="separator:a28944bb16ec22650b47fe3e80e3e13f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad632a0440295bc88ceadae7478fe0d37"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad632a0440295bc88ceadae7478fe0d37">GetChildIndex</a> (<a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *child)</td></tr>
<tr class="memdesc:ad632a0440295bc88ceadae7478fe0d37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the child's index of the children array. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad632a0440295bc88ceadae7478fe0d37">More...</a><br /></td></tr>
<tr class="separator:ad632a0440295bc88ceadae7478fe0d37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f6d943abaac52a236fe5d945e9d0e25"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a5f6d943abaac52a236fe5d945e9d0e25">GetChild</a> (int8_t index)</td></tr>
<tr class="memdesc:a5f6d943abaac52a236fe5d945e9d0e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the child pointer at position of index. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a5f6d943abaac52a236fe5d945e9d0e25">More...</a><br /></td></tr>
<tr class="separator:a5f6d943abaac52a236fe5d945e9d0e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a164574a9209b5df66368530d090b32c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a164574a9209b5df66368530d090b32c4">GetChild</a> (int8_t index)</td></tr>
<tr class="memdesc:a164574a9209b5df66368530d090b32c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the child pointer at position of index. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a164574a9209b5df66368530d090b32c4">More...</a><br /></td></tr>
<tr class="separator:a164574a9209b5df66368530d090b32c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4e5f7b7b260bb81d9441652cc124c74"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ab4e5f7b7b260bb81d9441652cc124c74">SetChild</a> (int8_t index, <a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *child)</td></tr>
<tr class="memdesc:ab4e5f7b7b260bb81d9441652cc124c74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set child pointer to the position of index. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ab4e5f7b7b260bb81d9441652cc124c74">More...</a><br /></td></tr>
<tr class="separator:ab4e5f7b7b260bb81d9441652cc124c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe9725b6422fd974642f9c9618b0f3be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#abe9725b6422fd974642f9c9618b0f3be">GetRightmostChild</a> ()</td></tr>
<tr class="memdesc:abe9725b6422fd974642f9c9618b0f3be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get rightmose child of the current node. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#abe9725b6422fd974642f9c9618b0f3be">More...</a><br /></td></tr>
<tr class="separator:abe9725b6422fd974642f9c9618b0f3be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a692a971c577511abdf7027e7e92a031b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a692a971c577511abdf7027e7e92a031b">GetLeftmostChild</a> ()</td></tr>
<tr class="memdesc:a692a971c577511abdf7027e7e92a031b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get leftmose child of the current node. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a692a971c577511abdf7027e7e92a031b">More...</a><br /></td></tr>
<tr class="separator:a692a971c577511abdf7027e7e92a031b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ba4f652baa900f0634822ec380a6996"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a9ba4f652baa900f0634822ec380a6996">GetItemLeftChild</a> (int8_t item_index)</td></tr>
<tr class="memdesc:a9ba4f652baa900f0634822ec380a6996"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get left child of item at item_index. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a9ba4f652baa900f0634822ec380a6996">More...</a><br /></td></tr>
<tr class="separator:a9ba4f652baa900f0634822ec380a6996"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a976998a7553ab92ef79cc04fac305e5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a976998a7553ab92ef79cc04fac305e5b">GetItemRightChild</a> (int8_t item_index)</td></tr>
<tr class="memdesc:a976998a7553ab92ef79cc04fac305e5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get right child of item at item_index. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a976998a7553ab92ef79cc04fac305e5b">More...</a><br /></td></tr>
<tr class="separator:a976998a7553ab92ef79cc04fac305e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f60199d0d175c248c67bfad9b9bdafe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a0f60199d0d175c248c67bfad9b9bdafe">GetNextPossibleChild</a> (int64_t item)</td></tr>
<tr class="memdesc:a0f60199d0d175c248c67bfad9b9bdafe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get next node which is possibly contains item. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a0f60199d0d175c248c67bfad9b9bdafe">More...</a><br /></td></tr>
<tr class="separator:a0f60199d0d175c248c67bfad9b9bdafe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a731f9ae385840cf0a06d55e7f9924a94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a731f9ae385840cf0a06d55e7f9924a94">GetRightmostChild</a> ()</td></tr>
<tr class="memdesc:a731f9ae385840cf0a06d55e7f9924a94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get rightmose child of the current node. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a731f9ae385840cf0a06d55e7f9924a94">More...</a><br /></td></tr>
<tr class="separator:a731f9ae385840cf0a06d55e7f9924a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6f619a1605cb46196360889fff4529e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ac6f619a1605cb46196360889fff4529e">GetLeftmostChild</a> ()</td></tr>
<tr class="memdesc:ac6f619a1605cb46196360889fff4529e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get leftmose child of the current node. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ac6f619a1605cb46196360889fff4529e">More...</a><br /></td></tr>
<tr class="separator:ac6f619a1605cb46196360889fff4529e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab654d7376d3449fdc78edab0e7fed06e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ab654d7376d3449fdc78edab0e7fed06e">GetItemLeftChild</a> (int8_t item_index)</td></tr>
<tr class="memdesc:ab654d7376d3449fdc78edab0e7fed06e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get left child of item at item_index. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ab654d7376d3449fdc78edab0e7fed06e">More...</a><br /></td></tr>
<tr class="separator:ab654d7376d3449fdc78edab0e7fed06e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a441cbee9896391f2b167d5aa7b4f8c95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a441cbee9896391f2b167d5aa7b4f8c95">GetItemRightChild</a> (int8_t item_index)</td></tr>
<tr class="memdesc:a441cbee9896391f2b167d5aa7b4f8c95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get right child of item at item_index. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a441cbee9896391f2b167d5aa7b4f8c95">More...</a><br /></td></tr>
<tr class="separator:a441cbee9896391f2b167d5aa7b4f8c95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91322b3bb0b2b2175eb56e9e10d7db46"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a91322b3bb0b2b2175eb56e9e10d7db46">GetNextPossibleChild</a> (int64_t item)</td></tr>
<tr class="memdesc:a91322b3bb0b2b2175eb56e9e10d7db46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get next node which is possibly contains item. <a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a91322b3bb0b2b2175eb56e9e10d7db46">More...</a><br /></td></tr>
<tr class="separator:a91322b3bb0b2b2175eb56e9e10d7db46"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a8417d01c88b99ca56289843509fb71f9"><td class="memItemLeft" align="right" valign="top"><a id="a8417d01c88b99ca56289843509fb71f9"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int64_t, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a></td></tr>
<tr class="memitem:a8417d01c88b99ca56289843509fb71f9"><td class="memItemLeft" align="right" valign="top"><a id="a8417d01c88b99ca56289843509fb71f9" name="a8417d01c88b99ca56289843509fb71f9"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; int64_t, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>items</b></td></tr>
<tr class="memdesc:a8417d01c88b99ca56289843509fb71f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">store items <br /></td></tr>
<tr class="separator:a8417d01c88b99ca56289843509fb71f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5d6b6ce5fab21ccc88c6bf3153eee5d"><td class="memItemLeft" align="right" valign="top"><a id="ad5d6b6ce5fab21ccc88c6bf3153eee5d"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a></td></tr>
<tr class="memitem:ad5d6b6ce5fab21ccc88c6bf3153eee5d"><td class="memItemLeft" align="right" valign="top"><a id="ad5d6b6ce5fab21ccc88c6bf3153eee5d" name="ad5d6b6ce5fab21ccc88c6bf3153eee5d"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> *, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>children</b></td></tr>
<tr class="memdesc:ad5d6b6ce5fab21ccc88c6bf3153eee5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">store the children pointers <br /></td></tr>
<tr class="separator:ad5d6b6ce5fab21ccc88c6bf3153eee5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a934e6d53cfefae2b971e1241a8a4c921"><td class="memItemLeft" align="right" valign="top"><a id="a934e6d53cfefae2b971e1241a8a4c921"></a>
int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> = 0</td></tr>
<tr class="memitem:a934e6d53cfefae2b971e1241a8a4c921"><td class="memItemLeft" align="right" valign="top"><a id="a934e6d53cfefae2b971e1241a8a4c921" name="a934e6d53cfefae2b971e1241a8a4c921"></a>
int8_t&#160;</td><td class="memItemRight" valign="bottom"><b>count</b> = 0</td></tr>
<tr class="memdesc:a934e6d53cfefae2b971e1241a8a4c921"><td class="mdescLeft">&#160;</td><td class="mdescRight">track the current item count <br /></td></tr>
<tr class="separator:a934e6d53cfefae2b971e1241a8a4c921"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>2-3-4 tree node class </p>
<div class="textblock"><p >2-3-4 tree node class </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad5219979ea9a8baa3a273a9ec0f0c670"></a>
<a id="ad5219979ea9a8baa3a273a9ec0f0c670" name="ad5219979ea9a8baa3a273a9ec0f0c670"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5219979ea9a8baa3a273a9ec0f0c670">&#9670;&nbsp;</a></span>Node()</h2>
<div class="memitem">
@@ -232,9 +225,9 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; : <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>(1),</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>({{item, 0, 0}}),</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>({{<span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>}}) {}</div>
<div class="fragment"><div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> : <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>(1),</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>({{item, 0, 0}}),</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>({{<span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>}}) {}</div>
<div class="ttc" id="aclassdata__structures_1_1tree__234_1_1_node_html_a8417d01c88b99ca56289843509fb71f9"><div class="ttname"><a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">data_structures::tree_234::Node::items</a></div><div class="ttdeci">std::array&lt; int64_t, 3 &gt; items</div><div class="ttdoc">store items</div><div class="ttdef"><b>Definition:</b> tree_234.cpp:315</div></div>
<div class="ttc" id="aclassdata__structures_1_1tree__234_1_1_node_html_a934e6d53cfefae2b971e1241a8a4c921"><div class="ttname"><a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">data_structures::tree_234::Node::count</a></div><div class="ttdeci">int8_t count</div><div class="ttdoc">track the current item count</div><div class="ttdef"><b>Definition:</b> tree_234.cpp:319</div></div>
<div class="ttc" id="aclassdata__structures_1_1tree__234_1_1_node_html_ad5d6b6ce5fab21ccc88c6bf3153eee5d"><div class="ttname"><a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">data_structures::tree_234::Node::children</a></div><div class="ttdeci">std::array&lt; Node *, 4 &gt; children</div><div class="ttdoc">store the children pointers</div><div class="ttdef"><b>Definition:</b> tree_234.cpp:317</div></div>
@@ -242,7 +235,7 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a22fd25c6c811c64b6b27b0850d8c532f"></a>
<a id="a22fd25c6c811c64b6b27b0850d8c532f" name="a22fd25c6c811c64b6b27b0850d8c532f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22fd25c6c811c64b6b27b0850d8c532f">&#9670;&nbsp;</a></span>Contains()</h2>
<div class="memitem">
@@ -274,19 +267,19 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if item in the node, otherwise false </dd></dl>
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">for</span> (int8_t i = 0; i &lt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span> (item == <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i]) {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> {</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">for</span> (int8_t i = 0; i &lt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">if</span> (item == <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i]) {</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> }</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5f6d943abaac52a236fe5d945e9d0e25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f6d943abaac52a236fe5d945e9d0e25">&#9670;&nbsp;</a></span>GetChild()</h2>
<a id="a164574a9209b5df66368530d090b32c4" name="a164574a9209b5df66368530d090b32c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a164574a9209b5df66368530d090b32c4">&#9670;&nbsp;</a></span>GetChild()</h2>
<div class="memitem">
<div class="memproto">
@@ -295,7 +288,7 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a>* data_structures::tree_234::Node::GetChild </td>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> * data_structures::tree_234::Node::GetChild </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
@@ -317,11 +310,11 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the child pointer </dd></dl>
<div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[index]; }</div>
<div class="fragment"><div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[index]; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad632a0440295bc88ceadae7478fe0d37"></a>
<a id="ad632a0440295bc88ceadae7478fe0d37" name="ad632a0440295bc88ceadae7478fe0d37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad632a0440295bc88ceadae7478fe0d37">&#9670;&nbsp;</a></span>GetChildIndex()</h2>
<div class="memitem">
@@ -353,19 +346,19 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the index of child </dd></dl>
<div class="fragment"><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">for</span> (int8_t i = 0; i &lt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> + 1; i++) {</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i] == child) {</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> i;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> {</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">for</span> (int8_t i = 0; i &lt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> + 1; i++) {</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i] == child) {</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">return</span> i;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> }</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> }</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aac82e17daa088ede9ee00dc69c1e6f06"></a>
<a id="aac82e17daa088ede9ee00dc69c1e6f06" name="aac82e17daa088ede9ee00dc69c1e6f06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac82e17daa088ede9ee00dc69c1e6f06">&#9670;&nbsp;</a></span>GetCount()</h2>
<div class="memitem">
@@ -390,11 +383,11 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<p>Get the item count that current saved in the node. </p>
<dl class="section return"><dt>Returns</dt><dd>item count </dd></dl>
<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; }</div>
<div class="fragment"><div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4808acb43668ff8cfd6f7cb44ceedad3"></a>
<a id="a4808acb43668ff8cfd6f7cb44ceedad3" name="a4808acb43668ff8cfd6f7cb44ceedad3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4808acb43668ff8cfd6f7cb44ceedad3">&#9670;&nbsp;</a></span>GetItem()</h2>
<div class="memitem">
@@ -426,11 +419,11 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the item </dd></dl>
<div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[index]; }</div>
<div class="fragment"><div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[index]; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a650f0ef26b7450e1addb5d80bb0ed629"></a>
<a id="a650f0ef26b7450e1addb5d80bb0ed629" name="a650f0ef26b7450e1addb5d80bb0ed629"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a650f0ef26b7450e1addb5d80bb0ed629">&#9670;&nbsp;</a></span>GetItemIndex()</h2>
<div class="memitem">
@@ -462,19 +455,19 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0-based index of the item in the node, if not in the node, -1 is returned </dd></dl>
<div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">for</span> (int8_t i = 0; i &lt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i] == item) {</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> i;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> {</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">for</span> (int8_t i = 0; i &lt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i] == item) {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">return</span> i;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> }</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> }</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a9ba4f652baa900f0634822ec380a6996"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ba4f652baa900f0634822ec380a6996">&#9670;&nbsp;</a></span>GetItemLeftChild()</h2>
<a id="ab654d7376d3449fdc78edab0e7fed06e" name="ab654d7376d3449fdc78edab0e7fed06e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab654d7376d3449fdc78edab0e7fed06e">&#9670;&nbsp;</a></span>GetItemLeftChild()</h2>
<div class="memitem">
<div class="memproto">
@@ -483,7 +476,7 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a>* data_structures::tree_234::Node::GetItemLeftChild </td>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> * data_structures::tree_234::Node::GetItemLeftChild </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>item_index</em></td><td>)</td>
@@ -505,18 +498,18 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>left child of items[index]'s </dd></dl>
<div class="fragment"><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span> (item_index &lt; 0 || item_index &gt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1) {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; </div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[item_index];</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> {</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">if</span> (item_index &lt; 0 || item_index &gt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1) {</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> }</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[item_index];</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a976998a7553ab92ef79cc04fac305e5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a976998a7553ab92ef79cc04fac305e5b">&#9670;&nbsp;</a></span>GetItemRightChild()</h2>
<a id="a441cbee9896391f2b167d5aa7b4f8c95" name="a441cbee9896391f2b167d5aa7b4f8c95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a441cbee9896391f2b167d5aa7b4f8c95">&#9670;&nbsp;</a></span>GetItemRightChild()</h2>
<div class="memitem">
<div class="memproto">
@@ -525,7 +518,7 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a>* data_structures::tree_234::Node::GetItemRightChild </td>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> * data_structures::tree_234::Node::GetItemRightChild </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>item_index</em></td><td>)</td>
@@ -547,18 +540,18 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>right child of items[index]'s </dd></dl>
<div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span> (item_index &lt; 0 || item_index &gt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1) {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[item_index + 1];</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> {</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">if</span> (item_index &lt; 0 || item_index &gt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1) {</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> }</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> </div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[item_index + 1];</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a692a971c577511abdf7027e7e92a031b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a692a971c577511abdf7027e7e92a031b">&#9670;&nbsp;</a></span>GetLeftmostChild()</h2>
<a id="ac6f619a1605cb46196360889fff4529e" name="ac6f619a1605cb46196360889fff4529e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6f619a1605cb46196360889fff4529e">&#9670;&nbsp;</a></span>GetLeftmostChild()</h2>
<div class="memitem">
<div class="memproto">
@@ -567,7 +560,7 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a>* data_structures::tree_234::Node::GetLeftmostChild </td>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> * data_structures::tree_234::Node::GetLeftmostChild </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@@ -582,11 +575,11 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<p>Get leftmose child of the current node. </p>
<dl class="section return"><dt>Returns</dt><dd>the leftmost child </dd></dl>
<div class="fragment"><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[0]; }</div>
<div class="fragment"><div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[0]; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2753b6053b8c86c5bd987a44fdfa0a57"></a>
<a id="a2753b6053b8c86c5bd987a44fdfa0a57" name="a2753b6053b8c86c5bd987a44fdfa0a57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2753b6053b8c86c5bd987a44fdfa0a57">&#9670;&nbsp;</a></span>GetMaxItem()</h2>
<div class="memitem">
@@ -611,11 +604,11 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<p>Get max item (rightmost) in the current node. </p>
<dl class="section return"><dt>Returns</dt><dd>max item </dd></dl>
<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[<a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1]; }</div>
<div class="fragment"><div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[<a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1]; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5438d0a47850f520b2262b5a42f75b71"></a>
<a id="a5438d0a47850f520b2262b5a42f75b71" name="a5438d0a47850f520b2262b5a42f75b71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5438d0a47850f520b2262b5a42f75b71">&#9670;&nbsp;</a></span>GetMinItem()</h2>
<div class="memitem">
@@ -640,12 +633,12 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<p>get min item (leftmost) in the current node </p>
<dl class="section return"><dt>Returns</dt><dd>min item </dd></dl>
<div class="fragment"><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[0]; }</div>
<div class="fragment"><div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[0]; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0f60199d0d175c248c67bfad9b9bdafe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f60199d0d175c248c67bfad9b9bdafe">&#9670;&nbsp;</a></span>GetNextPossibleChild()</h2>
<a id="a91322b3bb0b2b2175eb56e9e10d7db46" name="a91322b3bb0b2b2175eb56e9e10d7db46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91322b3bb0b2b2175eb56e9e10d7db46">&#9670;&nbsp;</a></span>GetNextPossibleChild()</h2>
<div class="memitem">
<div class="memproto">
@@ -654,7 +647,7 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a>* data_structures::tree_234::Node::GetNextPossibleChild </td>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> * data_structures::tree_234::Node::GetNextPossibleChild </td>
<td>(</td>
<td class="paramtype">int64_t&#160;</td>
<td class="paramname"><em>item</em></td><td>)</td>
@@ -676,20 +669,20 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the next node that possibly contains item </dd></dl>
<div class="fragment"><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i] &gt; item) {</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i];</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> {</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keywordtype">int</span> i = 0;</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i] &gt; item) {</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> }</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> }</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i];</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="abe9725b6422fd974642f9c9618b0f3be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe9725b6422fd974642f9c9618b0f3be">&#9670;&nbsp;</a></span>GetRightmostChild()</h2>
<a id="a731f9ae385840cf0a06d55e7f9924a94" name="a731f9ae385840cf0a06d55e7f9924a94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a731f9ae385840cf0a06d55e7f9924a94">&#9670;&nbsp;</a></span>GetRightmostChild()</h2>
<div class="memitem">
<div class="memproto">
@@ -698,7 +691,7 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a>* data_structures::tree_234::Node::GetRightmostChild </td>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> * data_structures::tree_234::Node::GetRightmostChild </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@@ -713,11 +706,11 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
<p>Get rightmose child of the current node. </p>
<dl class="section return"><dt>Returns</dt><dd>the rightmost child </dd></dl>
<div class="fragment"><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[<a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>]; }</div>
<div class="fragment"><div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[<a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>]; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8e809ae85ae00e937f67ddb76951b6bb"></a>
<a id="a8e809ae85ae00e937f67ddb76951b6bb" name="a8e809ae85ae00e937f67ddb76951b6bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e809ae85ae00e937f67ddb76951b6bb">&#9670;&nbsp;</a></span>InsertItem()</h2>
<div class="memitem">
@@ -742,7 +735,7 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</div><div class="memdoc">
<p>Insert item to the proper position of the node and return the position index. </p>
<p>This is a helper function we use during insertion. Please mind that when insert a item, we aslo need to take care of two child pointers. One is the original child pointer at the insertion position. It can be placed as new item's either left child or right child. And the other is the new child that should be added. For our dedicated situation here, we choose to use the original child as the new item's left child, and add a null pointer to its right child. So after use the function, please update these two children pointer manually.</p>
<p >This is a helper function we use during insertion. Please mind that when insert a item, we aslo need to take care of two child pointers. One is the original child pointer at the insertion position. It can be placed as new item's either left child or right child. And the other is the new child that should be added. For our dedicated situation here, we choose to use the original child as the new item's left child, and add a null pointer to its right child. So after use the function, please update these two children pointer manually.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">item</td><td>value to be inserted to the node </td></tr>
@@ -750,23 +743,23 @@ int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="..
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>index where item is inserted, caller can use this index to update its left and right child </dd></dl>
<div class="fragment"><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; assert(!<a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a4a37381c0ef93d5ae2118b2e554974dd">IsFull</a>());</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a22fd25c6c811c64b6b27b0850d8c532f">Contains</a>(item)) {</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; int8_t i = 0;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i] &gt; item) {</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a306a30931f54c84098b38d6bc8f4a956">InsertItemByIndex</a>(i, item, <span class="keyword">nullptr</span>, <span class="keyword">true</span>);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> i;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> {</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> assert(!<a class="code hl_function" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a4a37381c0ef93d5ae2118b2e554974dd">IsFull</a>());</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a22fd25c6c811c64b6b27b0850d8c532f">Contains</a>(item)) {</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> }</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> int8_t i = 0;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i] &gt; item) {</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> }</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <a class="code hl_function" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a306a30931f54c84098b38d6bc8f4a956">InsertItemByIndex</a>(i, item, <span class="keyword">nullptr</span>, <span class="keyword">true</span>);</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">return</span> i;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> }</div>
<div class="ttc" id="aclassdata__structures_1_1tree__234_1_1_node_html_a22fd25c6c811c64b6b27b0850d8c532f"><div class="ttname"><a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a22fd25c6c811c64b6b27b0850d8c532f">data_structures::tree_234::Node::Contains</a></div><div class="ttdeci">bool Contains(int64_t item)</div><div class="ttdoc">Check if item is in the node.</div><div class="ttdef"><b>Definition:</b> tree_234.cpp:92</div></div>
<div class="ttc" id="aclassdata__structures_1_1tree__234_1_1_node_html_a306a30931f54c84098b38d6bc8f4a956"><div class="ttname"><a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a306a30931f54c84098b38d6bc8f4a956">data_structures::tree_234::Node::InsertItemByIndex</a></div><div class="ttdeci">void InsertItemByIndex(int8_t index, int64_t item, Node *with_child, bool to_left=true)</div><div class="ttdoc">Insert a value to the index position.</div><div class="ttdef"><b>Definition:</b> tree_234.cpp:189</div></div>
<div class="ttc" id="aclassdata__structures_1_1tree__234_1_1_node_html_a4a37381c0ef93d5ae2118b2e554974dd"><div class="ttname"><a href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a4a37381c0ef93d5ae2118b2e554974dd">data_structures::tree_234::Node::IsFull</a></div><div class="ttdeci">bool IsFull()</div><div class="ttdoc">Check if node is a full (4-node)</div><div class="ttdef"><b>Definition:</b> tree_234.cpp:73</div></div>
@@ -779,7 +772,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a306a30931f54c84098b38d6bc8f4a956"></a>
<a id="a306a30931f54c84098b38d6bc8f4a956" name="a306a30931f54c84098b38d6bc8f4a956"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a306a30931f54c84098b38d6bc8f4a956">&#9670;&nbsp;</a></span>InsertItemByIndex()</h2>
<div class="memitem">
@@ -835,29 +828,29 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; assert(count &lt; 3 &amp;&amp; index &gt;= 0 &amp;&amp; index &lt; 3);</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">for</span> (int8_t i = <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1; i &gt;= index; i--) {</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i + 1] = <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i];</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; </div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[index] = item;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; int8_t start_index = to_left ? index : index + 1;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span> (int8_t i = <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i &gt;= start_index; i--) {</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i + 1] = <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i];</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[start_index] = with_child;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>++;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> {</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> assert(count &lt; 3 &amp;&amp; index &gt;= 0 &amp;&amp; index &lt; 3);</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">for</span> (int8_t i = <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1; i &gt;= index; i--) {</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i + 1] = <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i];</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> }</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[index] = item;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> int8_t start_index = to_left ? index : index + 1;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">for</span> (int8_t i = <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i &gt;= start_index; i--) {</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i + 1] = <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i];</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> }</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[start_index] = with_child;</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>++;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="afd9f83e2d5d7f22f79c1348e98914631"></a>
<a id="afd9f83e2d5d7f22f79c1348e98914631" name="afd9f83e2d5d7f22f79c1348e98914631"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd9f83e2d5d7f22f79c1348e98914631">&#9670;&nbsp;</a></span>Is2Node()</h2>
<div class="memitem">
@@ -882,11 +875,11 @@ Here is the call graph for this function:</div>
<p>Check if node is a 2-node. </p>
<dl class="section return"><dt>Returns</dt><dd>true if node is 2-node, otherwise false </dd></dl>
<div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> == 1; }</div>
<div class="fragment"><div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> == 1; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6c5f929afcbad5219646990edee22e18"></a>
<a id="a6c5f929afcbad5219646990edee22e18" name="a6c5f929afcbad5219646990edee22e18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c5f929afcbad5219646990edee22e18">&#9670;&nbsp;</a></span>Is34Node()</h2>
<div class="memitem">
@@ -911,11 +904,11 @@ Here is the call graph for this function:</div>
<p>Check if node is a 3-node or 4-node, this is useful when we delete item from 2-3-4 tree. </p>
<dl class="section return"><dt>Returns</dt><dd>true if node is 3-node or 4-node, false otherwise </dd></dl>
<div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> == 2 || <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> == 3; }</div>
<div class="fragment"><div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> == 2 || <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> == 3; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4a37381c0ef93d5ae2118b2e554974dd"></a>
<a id="a4a37381c0ef93d5ae2118b2e554974dd" name="a4a37381c0ef93d5ae2118b2e554974dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a37381c0ef93d5ae2118b2e554974dd">&#9670;&nbsp;</a></span>IsFull()</h2>
<div class="memitem">
@@ -940,11 +933,11 @@ Here is the call graph for this function:</div>
<p>Check if node is a full (4-node) </p>
<dl class="section return"><dt>Returns</dt><dd>true if node is full (4-node), false otherwise </dd></dl>
<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> == 3; }</div>
<div class="fragment"><div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> == 3; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a607d8201b00b142bf1d6a34df2f936e8"></a>
<a id="a607d8201b00b142bf1d6a34df2f936e8" name="a607d8201b00b142bf1d6a34df2f936e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a607d8201b00b142bf1d6a34df2f936e8">&#9670;&nbsp;</a></span>IsLeaf()</h2>
<div class="memitem">
@@ -969,12 +962,12 @@ Here is the call graph for this function:</div>
<p>Check if node is a leaf. </p>
<dl class="section return"><dt>Returns</dt><dd>true if node is leaf, false otherwise </dd></dl>
<div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[0] == <span class="keyword">nullptr</span>; }</div>
<div class="fragment"><div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[0] == <span class="keyword">nullptr</span>; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a8384b8c0fdc8e5e443010d2eb1187847"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8384b8c0fdc8e5e443010d2eb1187847">&#9670;&nbsp;</a></span>RemoveItemByIndex()</h2>
<a id="a28944bb16ec22650b47fe3e80e3e13f8" name="a28944bb16ec22650b47fe3e80e3e13f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28944bb16ec22650b47fe3e80e3e13f8">&#9670;&nbsp;</a></span>RemoveItemByIndex()</h2>
<div class="memitem">
<div class="memproto">
@@ -983,7 +976,7 @@ Here is the call graph for this function:</div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a>* data_structures::tree_234::Node::RemoveItemByIndex </td>
<td class="memname"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a> * data_structures::tree_234::Node::RemoveItemByIndex </td>
<td>(</td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>index</em>, </td>
@@ -1016,25 +1009,25 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the removed child pointer </dd></dl>
<div class="fragment"><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; assert(index &gt;= 0 &amp;&amp; index &lt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="../../db/d8b/struct_node.html">Node</a> *removed_child = keep_left ? <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[index + 1] : <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[index];</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">for</span> (int8_t i = index; i &lt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1; i++) {</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i] = <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i + 1];</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; </div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">for</span> (int8_t i = keep_left ? index + 1 : index; i &lt; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i] = <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i + 1];</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>--;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> removed_child;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> {</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> assert(index &gt;= 0 &amp;&amp; index &lt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>);</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <a class="code hl_class" href="../../db/d8b/struct_node.html">Node</a> *removed_child = keep_left ? <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[index + 1] : <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[index];</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">for</span> (int8_t i = index; i &lt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> - 1; i++) {</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i] = <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[i + 1];</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> }</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keywordflow">for</span> (int8_t i = keep_left ? index + 1 : index; i &lt; <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>; i++) {</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i] = <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[i + 1];</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> }</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a>--;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">return</span> removed_child;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> }</div>
<div class="ttc" id="astruct_node_html"><div class="ttname"><a href="../../db/d8b/struct_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> linkedlist_implentation_usingarray.cpp:14</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ab4e5f7b7b260bb81d9441652cc124c74"></a>
<a id="ab4e5f7b7b260bb81d9441652cc124c74" name="ab4e5f7b7b260bb81d9441652cc124c74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4e5f7b7b260bb81d9441652cc124c74">&#9670;&nbsp;</a></span>SetChild()</h2>
<div class="memitem">
@@ -1076,11 +1069,11 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;{ <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[index] = child; }</div>
<div class="fragment"><div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span>{ <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5d6b6ce5fab21ccc88c6bf3153eee5d">children</a>[index] = child; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af564fd4b0992fff69f90de201542d3d1"></a>
<a id="af564fd4b0992fff69f90de201542d3d1" name="af564fd4b0992fff69f90de201542d3d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af564fd4b0992fff69f90de201542d3d1">&#9670;&nbsp;</a></span>SetCount()</h2>
<div class="memitem">
@@ -1105,18 +1098,18 @@ Here is the call graph for this function:</div>
</div><div class="memdoc">
<p>Set the item count of the node. </p>
<p>This is only used when we spliting and merging node where we need to do some raw operation manually. In common inserting and removing operation the count is maintained automatically.</p>
<p >This is only used when we spliting and merging node where we need to do some raw operation manually. In common inserting and removing operation the count is maintained automatically.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">c</td><td>the count to set </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{ <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> = c; }</div>
<div class="fragment"><div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>{ <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a934e6d53cfefae2b971e1241a8a4c921">count</a> = c; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aaa89a3016b5dd1be3552321c34343cbc"></a>
<a id="aaa89a3016b5dd1be3552321c34343cbc" name="aaa89a3016b5dd1be3552321c34343cbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa89a3016b5dd1be3552321c34343cbc">&#9670;&nbsp;</a></span>SetItem()</h2>
<div class="memitem">
@@ -1158,11 +1151,11 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; assert(index &gt;= 0 &amp;&amp; index &lt;= 2);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[index] = new_item;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> {</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> assert(index &gt;= 0 &amp;&amp; index &lt;= 2);</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_variable" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8417d01c88b99ca56289843509fb71f9">items</a>[index] = new_item;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> }</div>
</div><!-- fragment -->
</div>
</div>
@@ -1175,7 +1168,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d5/d3c/namespacedata__structures.html">data_structures</a></li><li class="navelem"><b>tree_234</b></li><li class="navelem"><a class="el" href="../../dd/d40/classdata__structures_1_1tree__234_1_1_node.html">Node</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -2,25 +2,25 @@ var classdata__structures_1_1tree__234_1_1_node =
[
[ "Node", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad5219979ea9a8baa3a273a9ec0f0c670", null ],
[ "Contains", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a22fd25c6c811c64b6b27b0850d8c532f", null ],
[ "GetChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a5f6d943abaac52a236fe5d945e9d0e25", null ],
[ "GetChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a164574a9209b5df66368530d090b32c4", null ],
[ "GetChildIndex", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ad632a0440295bc88ceadae7478fe0d37", null ],
[ "GetCount", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#aac82e17daa088ede9ee00dc69c1e6f06", null ],
[ "GetItem", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a4808acb43668ff8cfd6f7cb44ceedad3", null ],
[ "GetItemIndex", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a650f0ef26b7450e1addb5d80bb0ed629", null ],
[ "GetItemLeftChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a9ba4f652baa900f0634822ec380a6996", null ],
[ "GetItemRightChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a976998a7553ab92ef79cc04fac305e5b", null ],
[ "GetLeftmostChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a692a971c577511abdf7027e7e92a031b", null ],
[ "GetItemLeftChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ab654d7376d3449fdc78edab0e7fed06e", null ],
[ "GetItemRightChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a441cbee9896391f2b167d5aa7b4f8c95", null ],
[ "GetLeftmostChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ac6f619a1605cb46196360889fff4529e", null ],
[ "GetMaxItem", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a2753b6053b8c86c5bd987a44fdfa0a57", null ],
[ "GetMinItem", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a5438d0a47850f520b2262b5a42f75b71", null ],
[ "GetNextPossibleChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a0f60199d0d175c248c67bfad9b9bdafe", null ],
[ "GetRightmostChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#abe9725b6422fd974642f9c9618b0f3be", null ],
[ "GetNextPossibleChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a91322b3bb0b2b2175eb56e9e10d7db46", null ],
[ "GetRightmostChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a731f9ae385840cf0a06d55e7f9924a94", null ],
[ "InsertItem", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8e809ae85ae00e937f67ddb76951b6bb", null ],
[ "InsertItemByIndex", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a306a30931f54c84098b38d6bc8f4a956", null ],
[ "Is2Node", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#afd9f83e2d5d7f22f79c1348e98914631", null ],
[ "Is34Node", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a6c5f929afcbad5219646990edee22e18", null ],
[ "IsFull", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a4a37381c0ef93d5ae2118b2e554974dd", null ],
[ "IsLeaf", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a607d8201b00b142bf1d6a34df2f936e8", null ],
[ "RemoveItemByIndex", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a8384b8c0fdc8e5e443010d2eb1187847", null ],
[ "RemoveItemByIndex", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#a28944bb16ec22650b47fe3e80e3e13f8", null ],
[ "SetChild", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#ab4e5f7b7b260bb81d9441652cc124c74", null ],
[ "SetCount", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#af564fd4b0992fff69f90de201542d3d1", null ],
[ "SetItem", "dd/d40/classdata__structures_1_1tree__234_1_1_node.html#aaa89a3016b5dd1be3552321c34343cbc", null ],

View File

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

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

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

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: math Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d47/namespacemath.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,15 +92,14 @@ $(document).ready(function(){initNavTree('dd/d47/namespacemath.html','../../');
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">math Namespace Reference</div> </div>
<div class="headertitle"><div class="title">math Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>for IO operations
<a href="../../dd/d47/namespacemath.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aec65db4e5c7317323227f026fe50ef11"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">integral_approx</a> (double lb, double ub, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; double(double)&gt; &amp;func, double delta=.0001)</td></tr>
<tr class="memdesc:aec65db4e5c7317323227f026fe50ef11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes integral approximation. <a href="../../dd/d47/namespacemath.html#aec65db4e5c7317323227f026fe50ef11">More...</a><br /></td></tr>
@@ -129,37 +128,37 @@ Functions</h2></td></tr>
<tr class="separator:ae1ca505751f5a6d3977b86372cfe75ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>for IO operations </p>
<p>Math algorithms.</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> and <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></p>
<p>for io operations</p>
<p>Evaluate recurrence relation using <a href="https://www.hackerearth.com/practice/notes/matrix-exponentiation-1/">matrix exponentiation</a>.</p>
<p>for assert</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p>for assert for int32_t type for atoi</p>
<p>Mathematical algorithms</p>
<p>for assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> and <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></p>
<p>Mathematical algorithms</p>
<p>for assert for mathematical functions for passing in functions</p>
<p>Mathematical functions</p>
<p>for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> and <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></p>
<p>Mathematical algorithms</p>
<p>Given a recurrence relation; evaluate the value of nth term. For e.g., For fibonacci series, recurrence series is <code>f(n) = f(n-1) + f(n-2)</code> where <code>f(0) = 0</code> and <code>f(1) = 1</code>. Note that the method used only demonstrates recurrence relation with one variable (n), unlike <code>nCr</code> problem, since it has two (n, r)</p>
<div class="textblock"><p >for IO operations </p>
<p >Math algorithms.</p>
<p >for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> and <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></p>
<p >for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></p>
<p >for io operations</p>
<p >Evaluate recurrence relation using <a href="https://www.hackerearth.com/practice/notes/matrix-exponentiation-1/" target="_blank">matrix exponentiation</a>.</p>
<p >for assert</p>
<p >for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></p>
<p >for assert for int32_t type for atoi</p>
<p >Mathematical algorithms</p>
<p >for assert for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> and <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></p>
<p >Mathematical algorithms</p>
<p >for assert for mathematical functions for passing in functions</p>
<p >Mathematical functions</p>
<p >for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> and <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></p>
<p >Mathematical algorithms</p>
<p >Given a recurrence relation; evaluate the value of nth term. For e.g., For fibonacci series, recurrence series is <code>f(n) = f(n-1) + f(n-2)</code> where <code>f(0) = 0</code> and <code>f(1) = 1</code>. Note that the method used only demonstrates recurrence relation with one variable (n), unlike <code>nCr</code> problem, since it has two (n, r)</p>
<h3><a class="anchor" id="autotoc_md74"></a>
Algorithm</h3>
<p>This problem can be solved using matrix exponentiation method. </p><dl class="section see"><dt>See also</dt><dd>here for simple <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp">number exponentiation algorithm</a> or <a href="https://en.wikipedia.org/wiki/Exponentiation_by_squaring">explaination here</a>. </dd></dl>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/AshishYUO">Ashish Daulatabad</a> for assert for IO operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> STL</dd></dl>
<p >This problem can be solved using matrix exponentiation method. </p><dl class="section see"><dt>See also</dt><dd>here for simple <a href="https://github.com/TheAlgorithms/C-Plus-Plus/blob/master/math/modular_exponentiation.cpp" target="_blank">number exponentiation algorithm</a> or <a href="https://en.wikipedia.org/wiki/Exponentiation_by_squaring" target="_blank">explaination here</a>. </dd></dl>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/AshishYUO" target="_blank">Ashish Daulatabad</a> for assert for IO operations for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> STL</dd></dl>
<p>Mathematical algorithms</p>
<p>for assert</p>
<p>Mathematical algorithms</p>
<p>for std::is_equal, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> for assert for IO operations</p>
<p>Mathematical algorithms</p>
<p>for assert for io operations</p>
<p>Mathematical algorithms</p>
<p>Mathematical algorithms </p>
<p >for assert</p>
<p >Mathematical algorithms</p>
<p >for std::is_equal, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a> for assert for IO operations</p>
<p >Mathematical algorithms</p>
<p >for assert for io operations</p>
<p >Mathematical algorithms</p>
<p >Mathematical algorithms </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae1ca505751f5a6d3977b86372cfe75ea"></a>
<a id="ae1ca505751f5a6d3977b86372cfe75ea" name="ae1ca505751f5a6d3977b86372cfe75ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1ca505751f5a6d3977b86372cfe75ea">&#9670;&nbsp;</a></span>binomialCoeffSum()</h2>
<div class="memitem">
@@ -174,21 +173,21 @@ Algorithm</h3>
</tr>
</table>
</div><div class="memdoc">
<p>Function to calculate sum of binomial coefficients </p><dl class="params"><dt>Parameters</dt><dd>
<p >Function to calculate sum of binomial coefficients </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">n</td><td>number </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Sum of binomial coefficients of number </dd></dl>
<div class="fragment"><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// Calculating 2^n</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> (1 &lt;&lt; n);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// Calculating 2^n</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">return</span> (1 &lt;&lt; n);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aec65db4e5c7317323227f026fe50ef11"></a>
<a id="aec65db4e5c7317323227f026fe50ef11" name="aec65db4e5c7317323227f026fe50ef11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec65db4e5c7317323227f026fe50ef11">&#9670;&nbsp;</a></span>integral_approx()</h2>
<div class="memitem">
@@ -237,23 +236,20 @@ Algorithm</h3>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>integral approximation of function from [lb, ub] </dd></dl>
<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; {</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">double</span> <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = 0;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; uint64_t numDeltas = <span class="keyword">static_cast&lt;</span>uint64_t<span class="keyword">&gt;</span>((ub - lb) / delta);</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; numDeltas; i++) {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/begin.html">begin</a> = lb + i * delta;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/iterator/end.html">end</a> = lb + (i + 1) * delta;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> += delta * (func(begin) + func(end)) / 2;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a>;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div>
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/begin.html">std::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/end.html">std::end</a></div><div class="ttdeci">T end(T... args)</div></div>
<div class="ttc" id="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="fragment"><div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">double</span> result = 0;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> uint64_t numDeltas = <span class="keyword">static_cast&lt;</span>uint64_t<span class="keyword">&gt;</span>((ub - lb) / delta);</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; numDeltas; i++) {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">double</span> begin = lb + i * delta;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">double</span> end = lb + (i + 1) * delta;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> result += delta * (func(begin) + func(end)) / 2;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="afa39ec943a4836c878e1614fd89b146f"></a>
<a id="afa39ec943a4836c878e1614fd89b146f" name="afa39ec943a4836c878e1614fd89b146f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa39ec943a4836c878e1614fd89b146f">&#9670;&nbsp;</a></span>largestPower()</h2>
<div class="memitem">
@@ -288,22 +284,22 @@ Algorithm</h3>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>largest power </dd></dl>
<div class="fragment"><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; { </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// Initialize result </span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">int</span> x = 0; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="comment">// Calculate result </span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">while</span> (n) </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; { </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; n /= p; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; x += n; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; } </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">return</span> x; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> { </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// Initialize result </span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordtype">int</span> x = 0; </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// Calculate result </span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">while</span> (n) </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> { </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> n /= p; </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> x += n; </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> } </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> x; </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a04065193d190d605e1f0d0d93a87e244"></a>
<a id="a04065193d190d605e1f0d0d93a87e244" name="a04065193d190d605e1f0d0d93a87e244"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04065193d190d605e1f0d0d93a87e244">&#9670;&nbsp;</a></span>lcmSum()</h2>
<div class="memitem">
@@ -318,47 +314,47 @@ Algorithm</h3>
</tr>
</table>
</div><div class="memdoc">
<p>Function to compute sum of euler totients in sumOfEulerTotient vector </p><dl class="params"><dt>Parameters</dt><dd>
<p >Function to compute sum of euler totients in sumOfEulerTotient vector </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">num</td><td>input number </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>int Sum of LCMs, i.e. ∑LCM(i, num) from i = 1 to num </dd></dl>
<div class="fragment"><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint64_t i = 0, j = 0;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> eulerTotient(num + 1);</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sumOfEulerTotient(num + 1);</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// storing initial values in eulerTotient vector</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">for</span> (i = 1; i &lt;= num; i++) {</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; eulerTotient[i] = i;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// applying totient sieve</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">for</span> (i = 2; i &lt;= num; i++) {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span> (eulerTotient[i] == i) {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">for</span> (j = i; j &lt;= num; j += i) {</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; eulerTotient[j] = eulerTotient[j] / i;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; eulerTotient[j] = eulerTotient[j] * (i - 1);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// computing sum of euler totients</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">for</span> (i = 1; i &lt;= num; i++) {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span> (j = i; j &lt;= num; j += i) {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; sumOfEulerTotient[j] += eulerTotient[i] * i;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> ((sumOfEulerTotient[num] + 1) * num) / 2;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt; uint64_t &gt;</a></div></div>
<div class="fragment"><div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> {</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> uint64_t i = 0, j = 0;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> eulerTotient(num + 1);</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;uint64_t&gt;</a> sumOfEulerTotient(num + 1);</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// storing initial values in eulerTotient vector</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">for</span> (i = 1; i &lt;= num; i++) {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> eulerTotient[i] = i;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// applying totient sieve</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">for</span> (i = 2; i &lt;= num; i++) {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">if</span> (eulerTotient[i] == i) {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">for</span> (j = i; j &lt;= num; j += i) {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> eulerTotient[j] = eulerTotient[j] / i;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> eulerTotient[j] = eulerTotient[j] * (i - 1);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> }</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> }</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> }</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// computing sum of euler totients</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">for</span> (i = 1; i &lt;= num; i++) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">for</span> (j = i; j &lt;= num; j += i) {</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> sumOfEulerTotient[j] += eulerTotient[i] * i;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> }</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> ((sumOfEulerTotient[num] + 1) * num) / 2;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</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>
</div>
<a id="a8d8e81a7cd59644b311ef9adb268f5f0"></a>
<a id="a8d8e81a7cd59644b311ef9adb268f5f0" name="a8d8e81a7cd59644b311ef9adb268f5f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d8e81a7cd59644b311ef9adb268f5f0">&#9670;&nbsp;</a></span>magic_number()</h2>
<div class="memitem">
@@ -373,30 +369,30 @@ Algorithm</h3>
</tr>
</table>
</div><div class="memdoc">
<p>Function to check if the given number is magic number or not. </p><dl class="params"><dt>Parameters</dt><dd>
<p >Function to check if the given number is magic number or not. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">n</td><td>number to be checked. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>if number is a magic number, returns true, else false. </dd></dl>
<div class="fragment"><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span> (n &lt;= 0) {</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// result stores the modulus of @param n with 9</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; uint64_t <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = n % 9;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// if result is 1 then the number is a magic number else not</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span> (result == 1) {</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span> (n &lt;= 0) {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> }</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// result stores the modulus of @param n with 9</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> uint64_t result = n % 9;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// if result is 1 then the number is a magic number else not</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">if</span> (result == 1) {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> }</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6e2dff75c5de70455b90c799d6ad6967"></a>
<a id="a6e2dff75c5de70455b90c799d6ad6967" name="a6e2dff75c5de70455b90c799d6ad6967"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e2dff75c5de70455b90c799d6ad6967">&#9670;&nbsp;</a></span>n_choose_r()</h2>
<div class="memitem">
@@ -425,7 +421,7 @@ template&lt;class T &gt; </div>
</div><div class="memdoc">
<p>This is the function implementation of \( \binom{n}{r} \). </p>
<p>We are calculating the ans with iterations instead of calculating three different factorials. Also, we are using the fact that \( \frac{n!}{r! (n-r)!} = \frac{(n - r + 1) \times \cdots \times n}{1 \times \cdots \times r} \) </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<p >We are calculating the ans with iterations instead of calculating three different factorials. Also, we are using the fact that \( \frac{n!}{r! (n-r)!} = \frac{(n - r + 1) \times \cdots \times n}{1 \times \cdots \times r} \) </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>Only for integer types such as long, int_64 etc </td></tr>
</table>
@@ -439,17 +435,17 @@ template&lt;class T &gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ans \( \binom{n}{r} \) </dd></dl>
<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; {</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">if</span> (r &gt; n / 2) {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; r = n - r; <span class="comment">// Because of the fact that nCr(n, r) == nCr(n, n - r)</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; T <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = 1;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i &lt;= r; i++) {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> *= n - r + i;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> /= i;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span> (r &gt; n / 2) {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> r = n - r; <span class="comment">// Because of the fact that nCr(n, r) == nCr(n, n - r)</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> T <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = 1;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i &lt;= r; i++) {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> *= n - r + i;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> /= i;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> }</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>}</div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_ad8389ed58fd0ec66df248014775ad1fa"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a></div><div class="ttdeci">ll ans(ll n)</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:91</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -460,7 +456,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="afcd07701d73ed65cd616bcba02737f3d"></a>
<a id="afcd07701d73ed65cd616bcba02737f3d" name="afcd07701d73ed65cd616bcba02737f3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afcd07701d73ed65cd616bcba02737f3d">&#9670;&nbsp;</a></span>power()</h2>
<div class="memitem">
@@ -502,29 +498,29 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a raised to power b modulo c </dd></dl>
<p>Initialize the answer to be returned</p>
<p>Update a if it is more than or equal to c</p>
<p>In case a is divisible by c;</p>
<p>If b is odd, multiply a with answer</p>
<p>b must be even now</p>
<p>b = b/2</p>
<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; {</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; uint64_t <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = 1; <span class="comment">/// Initialize the answer to be returned</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; a = a % c; <span class="comment">/// Update a if it is more than or equal to c</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span> (a == 0) {</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span> 0; <span class="comment">/// In case a is divisible by c;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">while</span> (b &gt; 0) {<span class="comment"></span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> /// If b is odd, multiply a with answer</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"></span> <span class="keywordflow">if</span> (b &amp; 1) {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = ((<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> % c) * (a % c)) % c;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }<span class="comment"></span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> /// b must be even now</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"></span> b = b &gt;&gt; 1; <span class="comment">/// b = b/2</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; a = ((a % c) * (a % c)) % c;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div>
<p >Initialize the answer to be returned</p>
<p >Update a if it is more than or equal to c</p>
<p >In case a is divisible by c;</p>
<p >If b is odd, multiply a with answer</p>
<p >b must be even now</p>
<p >b = b/2</p>
<div class="fragment"><div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> uint64_t <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = 1; <span class="comment">/// Initialize the answer to be returned</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> a = a % c; <span class="comment">/// Update a if it is more than or equal to c</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> (a == 0) {</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">return</span> 0; <span class="comment">/// In case a is divisible by c;</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">while</span> (b &gt; 0) {<span class="comment"></span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> /// If b is odd, multiply a with answer</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment"></span> <span class="keywordflow">if</span> (b &amp; 1) {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> = ((<a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a> % c) * (a % c)) % c;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> }<span class="comment"></span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment"> /// b must be even now</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment"></span> b = b &gt;&gt; 1; <span class="comment">/// b = b/2</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> a = ((a % c) * (a % c)) % c;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">return</span> <a class="code hl_function" href="../../d7/d35/matrix__exponentiation_8cpp.html#ad8389ed58fd0ec66df248014775ad1fa">ans</a>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -534,7 +530,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a89ab7d6c3e3ee72a8cbaa85127986185"></a>
<a id="a89ab7d6c3e3ee72a8cbaa85127986185" name="a89ab7d6c3e3ee72a8cbaa85127986185"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89ab7d6c3e3ee72a8cbaa85127986185">&#9670;&nbsp;</a></span>power_of_two()</h2>
<div class="memitem">
@@ -558,34 +554,34 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<p>This function finds whether a number is power of 2 or not </p><dl class="params"><dt>Parameters</dt><dd>
<p >This function finds whether a number is power of 2 or not </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">n</td><td>value for which we want to check prints the result, as "Yes, the number n is a power of 2" or "No, the number is not a power of 2" without quotes</td></tr>
</table>
</dd>
</dl>
<p>result stores the bitwise and of n and n-1</p>
<div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; {<span class="comment"></span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> /**</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> * This function finds whether a number is power of 2 or not</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * @param n value for which we want to check</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * prints the result, as &quot;Yes, the number n is a power of 2&quot; or</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * &quot;No, the number is not a power of 2&quot; without quotes</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> */</span><span class="comment"></span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> /// result stores the</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> /// bitwise and of n and n-1</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="../../de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa">result</a> = n &amp; (n - 1);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span> (result == 0) {</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Yes, the number &quot;</span> &lt;&lt; n &lt;&lt; <span class="stringliteral">&quot; is a power of 2&quot;</span>;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;No, the number &quot;</span> &lt;&lt; n &lt;&lt; <span class="stringliteral">&quot; is not a power of 2&quot;</span>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> {<span class="comment"></span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment"> * This function finds whether a number is power of 2 or not</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment"> * @param n value for which we want to check</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment"> * prints the result, as &quot;Yes, the number n is a power of 2&quot; or</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment"> * &quot;No, the number is not a power of 2&quot; without quotes</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> */</span><span class="comment"></span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment"> /// result stores the</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment"> /// bitwise and of n and n-1</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment"></span> <span class="keywordtype">int</span> result = n &amp; (n - 1);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">if</span> (result == 0) {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Yes, the number &quot;</span> &lt;&lt; n &lt;&lt; <span class="stringliteral">&quot; is a power of 2&quot;</span>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;No, the number &quot;</span> &lt;&lt; n &lt;&lt; <span class="stringliteral">&quot; is not a power of 2&quot;</span>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>}</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><!-- fragment -->
</div>
</div>
<a id="a50936ee98f4d40f17823befc65a32aec"></a>
<a id="a50936ee98f4d40f17823befc65a32aec" name="a50936ee98f4d40f17823befc65a32aec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50936ee98f4d40f17823befc65a32aec">&#9670;&nbsp;</a></span>test_eval()</h2>
<div class="memitem">
@@ -626,10 +622,10 @@ Here is the call graph for this function:</div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; assert(approx &gt;= expected * (1 - threshold));</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; assert(approx &lt;= expected * (1 + threshold));</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div>
<div class="fragment"><div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> {</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> assert(approx &gt;= expected * (1 - threshold));</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> assert(approx &lt;= expected * (1 + threshold));</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span>}</div>
</div><!-- fragment -->
</div>
</div>
@@ -639,7 +635,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d47/namespacemath.html">math</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -4,30 +4,23 @@ var namespacemath =
[ "calculate", "d8/db1/binomial__calculate_8cpp.html#aae407a2a13362c4c64fbe509ff325978", null ]
] ],
[ "fibonacci_sum", null, [
[ "matrix", "de/dc3/fibonacci__sum_8cpp.html#ae18ea07a8d7fe90ff25abb7c7d1ee5b1", null ],
[ "fiboSum", "de/dc3/fibonacci__sum_8cpp.html#a493fbaa7a94e3b7ca573111237bb3742", null ],
[ "multiply", "de/dc3/fibonacci__sum_8cpp.html#a9c83cca09a3e4ff2a25c816a9303448e", null ],
[ "power", "de/dc3/fibonacci__sum_8cpp.html#a7cf5feaf168b88e74544da59ed830311", null ],
[ "result", "de/dc3/fibonacci__sum_8cpp.html#aadb40ac4c74a7efc0680b83eeee138aa", null ]
] ],
[ "linear_recurrence_matrix", null, [
[ "get_nth_term_of_recurrence_series", "dc/d52/linear__recurrence__matrix_8cpp.html#af5e240c0cfaabed122a0596f800b3d14", null ],
[ "is_zero_matrix", "dc/d52/linear__recurrence__matrix_8cpp.html#a7487322bae85648c89da86f34431c103", null ],
[ "matrix_exponentiation", "dc/d52/linear__recurrence__matrix_8cpp.html#ab55e45ae404ea360e9eebac8f63692f7", null ],
[ "matrix_multiplication", "dc/d52/linear__recurrence__matrix_8cpp.html#a759a232b9d5ab032062b8560343c6af3", null ]
] ],
[ "modular_division", null, [
[ "mod_division", "df/d72/modular__division_8cpp.html#a905e368ae121beb7e7ea35349ddcdac7", null ],
[ "power", "df/d72/modular__division_8cpp.html#a66cdf93153cbd1408bd74ac68961d179", null ]
] ],
[ "n_bonacci", null, [
[ "N_bonacci", "db/d27/n__bonacci_8cpp.html#a767bc5427e0ebaf88ab5a7572a7d852e", null ]
[ "N_bonacci", "db/d27/n__bonacci_8cpp.html#a6849b68f760be628d5975ab3eddec63d", null ]
] ],
[ "ncr_modulo_p", null, [
[ "NCRModuloP", "d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p.html", "d6/dc1/classmath_1_1ncr__modulo__p_1_1_n_c_r_modulo_p" ]
] ],
[ "vector_cross", null, [
[ "cross", "df/d66/vector__cross__product_8cpp.html#abed307975124243d63fe2e118254defe", null ],
[ "cross", "df/d66/vector__cross__product_8cpp.html#a225732399c5c076976eae5b180a9f8c9", null ],
[ "mag", "df/d66/vector__cross__product_8cpp.html#a4b2a9757a87c18e1642d72410ecfaba8", null ]
] ],
[ "binomialCoeffSum", "dd/d47/namespacemath.html#ae1ca505751f5a6d3977b86372cfe75ea", null ],

View File

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

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

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

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

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

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Solution Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d4f/class_solution.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -95,50 +95,146 @@ $(document).ready(function(){initNavTree('dd/d4f/class_solution.html','../../');
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="../../d1/d07/class_solution-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Solution Class Reference</div> </div>
<div class="headertitle"><div class="title">Solution Class Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for Solution:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/d40/class_solution__coll__graph.svg" width="439" height="246"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7ee66ff56c3262f49139516c366a2529"><td class="memItemLeft" align="right" valign="top"><a id="a7ee66ff56c3262f49139516c366a2529"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>search_bridges</b> (int n, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt;&gt; &amp;connections)</td></tr>
<tr class="separator:a7ee66ff56c3262f49139516c366a2529"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98141c9dce5f9551ce6f8417d295514c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d4f/class_solution.html#a98141c9dce5f9551ce6f8417d295514c">search_bridges</a> (int n, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &gt; &amp;connections)</td></tr>
<tr class="separator:a98141c9dce5f9551ce6f8417d295514c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a29d19d87d54fe43d3f22221b8fe1b0bc"><td class="memItemLeft" align="right" valign="top"><a id="a29d19d87d54fe43d3f22221b8fe1b0bc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>dfs</b> (int current_node, int parent)</td></tr>
<tr class="memitem:a29d19d87d54fe43d3f22221b8fe1b0bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d4f/class_solution.html#a29d19d87d54fe43d3f22221b8fe1b0bc">dfs</a> (int current_node, int parent)</td></tr>
<tr class="separator:a29d19d87d54fe43d3f22221b8fe1b0bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a064ff4943e3860399f8f6873862071c9"><td class="memItemLeft" align="right" valign="top"><a id="a064ff4943e3860399f8f6873862071c9"></a>
<tr class="memitem:a064ff4943e3860399f8f6873862071c9"><td class="memItemLeft" align="right" valign="top"><a id="a064ff4943e3860399f8f6873862071c9" name="a064ff4943e3860399f8f6873862071c9"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>graph</b></td></tr>
<tr class="separator:a064ff4943e3860399f8f6873862071c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a7040c6f21dacd58b63e9c3aeecab86"><td class="memItemLeft" align="right" valign="top"><a id="a4a7040c6f21dacd58b63e9c3aeecab86"></a>
<tr class="memitem:a4a7040c6f21dacd58b63e9c3aeecab86"><td class="memItemLeft" align="right" valign="top"><a id="a4a7040c6f21dacd58b63e9c3aeecab86" name="a4a7040c6f21dacd58b63e9c3aeecab86"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>in_time</b></td></tr>
<tr class="separator:a4a7040c6f21dacd58b63e9c3aeecab86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1fcd3d8160363baa35a079244eb2e91"><td class="memItemLeft" align="right" valign="top"><a id="af1fcd3d8160363baa35a079244eb2e91"></a>
<tr class="memitem:af1fcd3d8160363baa35a079244eb2e91"><td class="memItemLeft" align="right" valign="top"><a id="af1fcd3d8160363baa35a079244eb2e91" name="af1fcd3d8160363baa35a079244eb2e91"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>out_time</b></td></tr>
<tr class="separator:af1fcd3d8160363baa35a079244eb2e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8ca86dfb0d034665027aa99af3c88c6"><td class="memItemLeft" align="right" valign="top"><a id="ae8ca86dfb0d034665027aa99af3c88c6"></a>
<tr class="memitem:ae8ca86dfb0d034665027aa99af3c88c6"><td class="memItemLeft" align="right" valign="top"><a id="ae8ca86dfb0d034665027aa99af3c88c6" name="ae8ca86dfb0d034665027aa99af3c88c6"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>timer</b> = 0</td></tr>
<tr class="separator:ae8ca86dfb0d034665027aa99af3c88c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a216a0a43fbf11d0bbe8f77205b0d4ad6"><td class="memItemLeft" align="right" valign="top"><a id="a216a0a43fbf11d0bbe8f77205b0d4ad6"></a>
<tr class="memitem:a216a0a43fbf11d0bbe8f77205b0d4ad6"><td class="memItemLeft" align="right" valign="top"><a id="a216a0a43fbf11d0bbe8f77205b0d4ad6" name="a216a0a43fbf11d0bbe8f77205b0d4ad6"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>bridge</b></td></tr>
<tr class="separator:a216a0a43fbf11d0bbe8f77205b0d4ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a315f536a234d4397d5b07b3c5795973c"><td class="memItemLeft" align="right" valign="top"><a id="a315f536a234d4397d5b07b3c5795973c"></a>
<tr class="memitem:a315f536a234d4397d5b07b3c5795973c"><td class="memItemLeft" align="right" valign="top"><a id="a315f536a234d4397d5b07b3c5795973c" name="a315f536a234d4397d5b07b3c5795973c"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>visited</b></td></tr>
<tr class="separator:a315f536a234d4397d5b07b3c5795973c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a29d19d87d54fe43d3f22221b8fe1b0bc" name="a29d19d87d54fe43d3f22221b8fe1b0bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29d19d87d54fe43d3f22221b8fe1b0bc">&#9670;&nbsp;</a></span>dfs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Solution::dfs </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>current_node</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>parent</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> {</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> visited.at(current_node) = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> in_time[current_node] = out_time[current_node] = timer++;</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; itr : <a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>[current_node]) {</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">if</span> (itr == parent) {</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> }</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">if</span> (!visited[itr]) {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> dfs(itr, current_node);</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">if</span> (out_time[itr] &gt; in_time[current_node]) {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> bridge.push_back({itr, current_node});</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> }</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> }</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> out_time[current_node] =</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/min.html">std::min</a>(out_time[current_node], out_time[itr]);</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> }</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> }</div>
<div class="ttc" id="amin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/min.html">std::min</a></div><div class="ttdeci">T min(T... args)</div></div>
<div class="ttc" id="anamespacegraph_html"><div class="ttname"><a href="../../df/dce/namespacegraph.html">graph</a></div><div class="ttdoc">Graph Algorithms.</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a98141c9dce5f9551ce6f8417d295514c" name="a98141c9dce5f9551ce6f8417d295514c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98141c9dce5f9551ce6f8417d295514c">&#9670;&nbsp;</a></span>search_bridges()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &gt; Solution::search_bridges </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>n</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>connections</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<div class="fragment"><div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> {</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> timer = 0;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>.resize(n);</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> in_time.assign(n, 0);</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> visited.assign(n, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> out_time.assign(n, 0);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; itr : connections) {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>.at(itr[0]).push_back(itr[1]);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_namespace" href="../../df/dce/namespacegraph.html">graph</a>.at(itr[1]).push_back(itr[0]);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> }</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> dfs(0, -1);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">return</span> bridge;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
</div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>graph/bridge_finding_with_tarjan_algorithm.cpp</li>
</ul>
@@ -148,7 +244,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>timer</b> = 0</td></tr
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d4f/class_solution.html">Solution</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,11 +0,0 @@
var class_solution =
[
[ "dfs", "dd/d4f/class_solution.html#a29d19d87d54fe43d3f22221b8fe1b0bc", null ],
[ "search_bridges", "dd/d4f/class_solution.html#a7ee66ff56c3262f49139516c366a2529", null ],
[ "bridge", "dd/d4f/class_solution.html#a216a0a43fbf11d0bbe8f77205b0d4ad6", null ],
[ "graph", "dd/d4f/class_solution.html#a064ff4943e3860399f8f6873862071c9", null ],
[ "in_time", "dd/d4f/class_solution.html#a4a7040c6f21dacd58b63e9c3aeecab86", null ],
[ "out_time", "dd/d4f/class_solution.html#af1fcd3d8160363baa35a079244eb2e91", null ],
[ "timer", "dd/d4f/class_solution.html#ae8ca86dfb0d034665027aa99af3c88c6", null ],
[ "visited", "dd/d4f/class_solution.html#a315f536a234d4397d5b07b3c5795973c", null ]
];

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Member List</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d1/dc2/classstack.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,31 +90,30 @@ $(document).ready(function(){initNavTree('d1/dc2/classstack.html','../../'); ini
</div>
<div class="header">
<div class="headertitle">
<div class="title">stack&lt; Type &gt; Member List</div> </div>
<div class="headertitle"><div class="title">stack&lt; Type &gt; Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a5cc5efbbd4ea14b3e378580f1388423b">clear</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a67f65710c376f67d1ba3bde45a9cb628">display</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a67f65710c376f67d1ba3bde45a9cb628">display</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a066e4505155b009913c47b2648b1067a">isEmptyStack</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a61370d5fbaf9ec6bca4a8c114c1058e1">operator=</a>(const stack&lt; Type &gt; &amp;otherStack)</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a2b4d767447067c8bebca791b747733a1">operator=</a>(const stack&lt; Type &gt; &amp;otherStack)</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a6cd4b95d5de00d41b2491392338384dc">pop</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a5705c3926dcf5fd3f9c964467a50b81d">push</a>(Type item)</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a5705c3926dcf5fd3f9c964467a50b81d">push</a>(Type item)</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#ac512a3efdc84a5f5c9f53905c8e219b0">size</a></td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a5b64337ec34b12e98458bb9b9d5f8f83">stack</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#ae8547e097cc753d5eab0207ed23d8920">stack</a>(const stack&lt; Type &gt; &amp;otherStack)</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a></td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a7289037c059aaad492b4d68e6bd54453">stackTop</a></td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a21c0bb6ce7dcfe445cc12031977ea344">top</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a0ac1dba9c7019acdc825b31d06eb0b71">~stack</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d1/dc2/classstack.html#a0ac1dba9c7019acdc825b31d06eb0b71">~stack</a>()</td><td class="entry"><a class="el" href="../../d1/dc2/classstack.html">stack&lt; Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Member List</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d9/dde/structdouble__hashing_1_1_entry.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,21 +90,20 @@ $(document).ready(function(){initNavTree('d9/dde/structdouble__hashing_1_1_entry
</div>
<div class="header">
<div class="headertitle">
<div class="title">double_hashing::Entry Member List</div> </div>
<div class="headertitle"><div class="title">double_hashing::Entry Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html">double_hashing::Entry</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html#a287b92112b6b43b34808a93778873475">Entry</a>(int key=notPresent)</td><td class="entry"><a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html">double_hashing::Entry</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html#ae114967c89dbba3b754dc4976bba3248">key</a></td><td class="entry"><a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html">double_hashing::Entry</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html#ae114967c89dbba3b754dc4976bba3248">key</a></td><td class="entry"><a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html">double_hashing::Entry</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

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

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: numerical_methods/lu_decompose.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d65/lu__decompose_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,12 +92,11 @@ $(document).ready(function(){initNavTree('dd/d65/lu__decompose_8cpp.html','../..
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">lu_decompose.cpp File Reference</div> </div>
<div class="headertitle"><div class="title">lu_decompose.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a href="https://en.wikipedia.org/wiki/LU_decompositon">LU decomposition</a> of a square matrix
<p><a href="https://en.wikipedia.org/wiki/LU_decompositon" target="_blank">LU decomposition</a> of a square matrix
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;ctime&gt;</code><br />
@@ -111,11 +110,11 @@ Include dependency graph for lu_decompose.cpp:</div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a9459fcd1f020373d73eae2bad43786d0"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a9459fcd1f020373d73eae2bad43786d0"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dd/d65/lu__decompose_8cpp.html#a9459fcd1f020373d73eae2bad43786d0">operator&lt;&lt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;out, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T &gt; const &amp;v)</td></tr>
<tr class="separator:a9459fcd1f020373d73eae2bad43786d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575c989afcc78e875031cd4273e62a3e"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a575c989afcc78e875031cd4273e62a3e"><td class="memTemplItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../dd/d65/lu__decompose_8cpp.html#a575c989afcc78e875031cd4273e62a3e">operator&lt;&lt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;out, <a class="el" href="../../d1/dbe/lu__decomposition_8h.html#aed8766713ee9b561a4acdcdff5f90ea5">matrix</a>&lt; T &gt; const &amp;v)</td></tr>
<tr class="separator:a575c989afcc78e875031cd4273e62a3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d65/lu__decompose_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a> ()</td></tr>
<tr class="separator:a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0283886819c7c140a023582b7269e2d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d65/lu__decompose_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a> ()</td></tr>
@@ -124,10 +123,10 @@ Functions</h2></td></tr>
<tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a href="https://en.wikipedia.org/wiki/LU_decompositon">LU decomposition</a> of a square matrix </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/kvedala">Krishna Vedala</a> </dd></dl>
<div class="textblock"><p ><a href="https://en.wikipedia.org/wiki/LU_decompositon" target="_blank">LU decomposition</a> of a square matrix </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/kvedala" target="_blank">Krishna Vedala</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
<a id="a3c04138a5bfe5d72780bb7e82a18e627" name="a3c04138a5bfe5d72780bb7e82a18e627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
@@ -152,14 +151,14 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a>(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a>(NULL)); <span class="comment">// random number initializer</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="../../dd/d65/lu__decompose_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a>();</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="../../dd/d65/lu__decompose_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a>();</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}</div>
<p >Main function </p>
<div class="fragment"><div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a>(NULL)); <span class="comment">// random number initializer</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_function" href="../../dd/d65/lu__decompose_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a>();</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_function" href="../../dd/d65/lu__decompose_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a>();</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span>}</div>
<div class="ttc" id="alu__decompose_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="../../dd/d65/lu__decompose_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdef"><b>Definition:</b> lu_decompose.cpp:66</div></div>
<div class="ttc" id="alu__decompose_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="../../dd/d65/lu__decompose_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdef"><b>Definition:</b> lu_decompose.cpp:36</div></div>
<div class="ttc" id="asrand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a></div><div class="ttdeci">T srand(T... args)</div></div>
@@ -173,8 +172,8 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a9459fcd1f020373d73eae2bad43786d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9459fcd1f020373d73eae2bad43786d0">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
<a id="a575c989afcc78e875031cd4273e62a3e" name="a575c989afcc78e875031cd4273e62a3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a575c989afcc78e875031cd4273e62a3e">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
<div class="memitem">
<div class="memproto">
@@ -182,7 +181,7 @@ Here is the call graph for this function:</div>
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a>&amp; operator&lt;&lt; </td>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp; operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td>
<td class="paramname"><em>out</em>, </td>
@@ -200,20 +199,20 @@ template&lt;typename T &gt; </div>
</tr>
</table>
</div><div class="memdoc">
<p>operator to print a matrix </p>
<div class="fragment"><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; {</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> width = 10;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> separator = <span class="charliteral">&#39; &#39;</span>;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row &lt; v.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); row++) {</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> col = 0; col &lt; v[row].<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); col++)</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; out &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/left.html">std::left</a> &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(width) &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setfill.html">std::setfill</a>(separator)</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; &lt;&lt; v[row][col];</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; out &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; }</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div>
<p >operator to print a matrix </p>
<div class="fragment"><div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> {</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">const</span> <span class="keywordtype">int</span> width = 10;</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">const</span> <span class="keywordtype">char</span> separator = <span class="charliteral">&#39; &#39;</span>;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> row = 0; row &lt; v.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); row++) {</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> col = 0; col &lt; v[row].<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); col++)</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> out &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/left.html">std::left</a> &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(width) &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setfill.html">std::setfill</a>(separator)</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> &lt;&lt; v[row][col];</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> out &lt;&lt; <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> }</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">return</span> out;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>}</div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="aleft_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/left.html">std::left</a></div><div class="ttdeci">T left(T... args)</div></div>
<div class="ttc" id="asetfill_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/setfill.html">std::setfill</a></div><div class="ttdeci">T setfill(T... args)</div></div>
@@ -222,13 +221,13 @@ template&lt;typename T &gt; </div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d65/lu__decompose_8cpp_a9459fcd1f020373d73eae2bad43786d0_cgraph.svg" width="260" height="240"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d65/lu__decompose_8cpp_a575c989afcc78e875031cd4273e62a3e_cgraph.svg" width="260" height="240"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a1440a7779ac56f47a3f355ce4a8c7da0"></a>
<a id="a1440a7779ac56f47a3f355ce4a8c7da0" name="a1440a7779ac56f47a3f355ce4a8c7da0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1440a7779ac56f47a3f355ce4a8c7da0">&#9670;&nbsp;</a></span>test1()</h2>
<div class="memitem">
@@ -242,40 +241,40 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Test LU decomposition </p><dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000006">Todo:</a></b></dt><dd>better ways to self-check a matrix output? </dd></dl>
<div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">int</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> = 3; <span class="comment">// default matrix size</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> range = 50;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> range2 = range &gt;&gt; 1;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">/* Create a square matrix with random values */</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> A(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>));</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> L(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>)); <span class="comment">// output</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> U(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>, <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>)); <span class="comment">// output</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// calloc so that all valeus are &#39;0&#39; by default</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; j++)</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">/* create random values in the limits [-range2, range-1] */</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; A[i][j] = <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a>() % range - range2);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a> start_t = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509">lu_decomposition</a>(A, &amp;L, &amp;U);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a> end_t = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Time taken: &quot;</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; &lt;&lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(end_t - start_t) / CLOCKS_PER_SEC &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;A = \n&quot;</span> &lt;&lt; A &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;L = \n&quot;</span> &lt;&lt; L &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;U = \n&quot;</span> &lt;&lt; U &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div>
<p >Test LU decomposition </p><dl class="todo"><dt><b><a class="el" href="../../dd/da0/todo.html#_todo000006">Todo:</a></b></dt><dd>better ways to self-check a matrix output? </dd></dl>
<div class="fragment"><div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a> = 3; <span class="comment">// default matrix size</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">const</span> <span class="keywordtype">int</span> range = 50;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">const</span> <span class="keywordtype">int</span> range2 = range &gt;&gt; 1;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="comment">/* Create a square matrix with random values */</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> A(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>));</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> L(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>)); <span class="comment">// output</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;double&gt;</a> U(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>, <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(<a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>)); <span class="comment">// output</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; i++) {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// calloc so that all valeus are &#39;0&#39; by default</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; <a class="code hl_variable" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a>; j++)</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="comment">/* create random values in the limits [-range2, range-1] */</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> A[i][j] = <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a>() % range - range2);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a> start_t = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_function" href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509">lu_decomposition</a>(A, &amp;L, &amp;U);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a> end_t = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Time taken: &quot;</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> &lt;&lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(end_t - start_t) / CLOCKS_PER_SEC &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;A = \n&quot;</span> &lt;&lt; A &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;L = \n&quot;</span> &lt;&lt; L &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;U = \n&quot;</span> &lt;&lt; U &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</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="aclock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a></div><div class="ttdeci">T clock(T... args)</div></div>
<div class="ttc" id="aclock_t_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a></div></div>
<div class="ttc" id="alu__decomposition_8h_html_a75b8a228c6419ecda6077255d6d60509"><div class="ttname"><a href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509">lu_decomposition</a></div><div class="ttdeci">int lu_decomposition(const matrix&lt; T &gt; &amp;A, matrix&lt; double &gt; *L, matrix&lt; double &gt; *U)</div><div class="ttdef"><b>Definition:</b> lu_decomposition.h:29</div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_a9977ad12548c4a49dee9dc3f0685aa54"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#a9977ad12548c4a49dee9dc3f0685aa54">mat_size</a></div><div class="ttdeci">ll mat_size</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:45</div></div>
<div class="ttc" id="arand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a></div><div class="ttdeci">T rand(T... args)</div></div>
<div class="ttc" id="avalarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt; double &gt;</a></div></div>
<div class="ttc" id="avalarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a></div></div>
<div 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>
@@ -286,7 +285,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a0283886819c7c140a023582b7269e2d0"></a>
<a id="a0283886819c7c140a023582b7269e2d0" name="a0283886819c7c140a023582b7269e2d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0283886819c7c140a023582b7269e2d0">&#9670;&nbsp;</a></span>test2()</h2>
<div class="memitem">
@@ -300,23 +299,23 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Test determinant computation using LU decomposition </p>
<div class="fragment"><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Determinant test 1...&quot;</span>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;int&gt;</a> A1({{1, 2, 3}, {4, 9, 6}, {7, 8, 9}});</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; assert(<a class="code" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(A1) == -48);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Determinant test 2...&quot;</span>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;int&gt;</a> A2({{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; assert(<a class="code" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(A2) == 0);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Determinant test 3...&quot;</span>;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;float&gt;</a> A3({{1.2, 2.3, 3.4}, {4.5, 5.6, 6.7}, {7.8, 8.9, 9.0}});</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; assert(<a class="code" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(A3) == 3.63);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div>
<p >Test determinant computation using LU decomposition </p>
<div class="fragment"><div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Determinant test 1...&quot;</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;int&gt;</a> A1({{1, 2, 3}, {4, 9, 6}, {7, 8, 9}});</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> assert(<a class="code hl_function" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(A1) == -48);</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Determinant test 2...&quot;</span>;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;int&gt;</a> A2({{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> assert(<a class="code hl_function" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(A2) == 0);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Determinant test 3...&quot;</span>;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">matrix&lt;float&gt;</a> A3({{1.2, 2.3, 3.4}, {4.5, 5.6, 6.7}, {7.8, 8.9, 9.0}});</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> assert(<a class="code hl_function" href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a>(A3) == 3.63);</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;passed\n&quot;</span>;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>}</div>
<div class="ttc" id="alu__decomposition_8h_html_a3108d43bd32c6fb3b3c158476c51ba7f"><div class="ttname"><a href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f">determinant_lu</a></div><div class="ttdeci">double determinant_lu(const matrix&lt; T &gt; &amp;A)</div><div class="ttdef"><b>Definition:</b> lu_decomposition.h:90</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -333,7 +332,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_9c6faab82c22511b50177aa2e38e2780.html">numerical_methods</a></li><li class="navelem"><a class="el" href="../../dd/d65/lu__decompose_8cpp.html">lu_decompose.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,7 +1,7 @@
var lu__decompose_8cpp =
[
[ "main", "dd/d65/lu__decompose_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627", null ],
[ "operator<<", "dd/d65/lu__decompose_8cpp.html#a9459fcd1f020373d73eae2bad43786d0", null ],
[ "operator<<", "dd/d65/lu__decompose_8cpp.html#a575c989afcc78e875031cd4273e62a3e", null ],
[ "test1", "dd/d65/lu__decompose_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0", null ],
[ "test2", "dd/d65/lu__decompose_8cpp.html#a0283886819c7c140a023582b7269e2d0", null ]
];

View File

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

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

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

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

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

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

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

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

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

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: range_queries Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d69/namespacerange__queries.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -92,32 +92,31 @@ $(document).ready(function(){initNavTree('dd/d69/namespacerange__queries.html','
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle">
<div class="title">range_queries Namespace Reference</div> </div>
<div class="headertitle"><div class="title">range_queries Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Algorithms and Data Structures that support range queries and updates.
<a href="../../dd/d69/namespacerange__queries.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d28/classrange__queries_1_1per_seg_tree.html">perSegTree</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Range query here is range sum, but the code can be modified to make different queries like range max or min. <a href="../../d8/d28/classrange__queries_1_1per_seg_tree.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Algorithms and Data Structures that support range queries and updates. </p>
<p>Range Queries algorithms.</p>
<p>Range queries algorithms.</p>
<p>for IO operations to manage dynamic memory for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> </p>
<div class="textblock"><p >Algorithms and Data Structures that support range queries and updates. </p>
<p >Range Queries algorithms.</p>
<p >Range queries algorithms.</p>
<p >for IO operations to manage dynamic memory for <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a> </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d69/namespacerange__queries.html">range_queries</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -1,13 +1,13 @@
var namespacerange__queries =
[
[ "heavy_light_decomposition", null, [
[ "Tree", "d1/d51/classrange__queries_1_1heavy__light__decomposition_1_1_tree.html", "d1/d51/classrange__queries_1_1heavy__light__decomposition_1_1_tree" ],
[ "HLD", "d2/d8a/classrange__queries_1_1heavy__light__decomposition_1_1_h_l_d.html", "d2/d8a/classrange__queries_1_1heavy__light__decomposition_1_1_h_l_d" ],
[ "SG", "d9/d35/classrange__queries_1_1heavy__light__decomposition_1_1_s_g.html", "d9/d35/classrange__queries_1_1heavy__light__decomposition_1_1_s_g" ],
[ "HLD", "d2/d8a/classrange__queries_1_1heavy__light__decomposition_1_1_h_l_d.html", "d2/d8a/classrange__queries_1_1heavy__light__decomposition_1_1_h_l_d" ]
[ "Tree", "d1/d51/classrange__queries_1_1heavy__light__decomposition_1_1_tree.html", "d1/d51/classrange__queries_1_1heavy__light__decomposition_1_1_tree" ]
] ],
[ "sparse_table", null, [
[ "buildTable", "d4/d96/range__queries_2sparse__table_8cpp.html#a328ed1c01cccd07aeb1500c11b609be3", null ],
[ "computeLogs", "d4/d96/range__queries_2sparse__table_8cpp.html#ad71ae7840af3a52e7ee56186bb0c3063", null ],
[ "buildTable", "d4/d96/range__queries_2sparse__table_8cpp.html#a803a2451e87021d14ae06f148383e6bc", null ],
[ "computeLogs", "d4/d96/range__queries_2sparse__table_8cpp.html#a40810d8c0fe3f8cf432ab128b1ae0300", null ],
[ "getMinimum", "d4/d96/range__queries_2sparse__table_8cpp.html#a932816c3de9e5ad122b180de60978e8f", null ]
] ],
[ "perSegTree", "d8/d28/classrange__queries_1_1per_seg_tree.html", "d8/d28/classrange__queries_1_1per_seg_tree" ]

View File

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

View File

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

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: Member List</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('d9/dee/classdouble__linked__list.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -90,25 +90,24 @@ $(document).ready(function(){initNavTree('d9/dee/classdouble__linked__list.html'
</div>
<div class="header">
<div class="headertitle">
<div class="title">double_linked_list Member List</div> </div>
<div class="headertitle"><div class="title">double_linked_list Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>double_linked_list</b>() (defined in <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>)</td><td class="entry"><a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>insert</b>(int x) (defined in <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>)</td><td class="entry"><a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>insert</b>(int x) (defined in <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>)</td><td class="entry"><a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>remove</b>(int x) (defined in <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>)</td><td class="entry"><a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>reverseShow</b>() (defined in <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>)</td><td class="entry"><a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>reverseShow</b>() (defined in <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>)</td><td class="entry"><a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>search</b>(int x) (defined in <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>)</td><td class="entry"><a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>() (defined in <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>)</td><td class="entry"><a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>show</b>() (defined in <a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a>)</td><td class="entry"><a class="el" href="../../d9/dee/classdouble__linked__list.html">double_linked_list</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

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

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

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

View File

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

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

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

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: FenwickTree Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d91/class_fenwick_tree.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -95,18 +95,11 @@ $(document).ready(function(){initNavTree('dd/d91/class_fenwick_tree.html','../..
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="../../de/d29/class_fenwick_tree-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">FenwickTree Class Reference</div> </div>
<div class="headertitle"><div class="title">FenwickTree Class Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for FenwickTree:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d9/da4/class_fenwick_tree__coll__graph.svg" width="131" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aaddab1f03d4941212a82cc647b1adb17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d91/class_fenwick_tree.html#aaddab1f03d4941212a82cc647b1adb17">FenwickTree</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt; &amp;arr)</td></tr>
<tr class="separator:aaddab1f03d4941212a82cc647b1adb17"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -119,24 +112,24 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a115ff5c548b429b737ea09f75817d1f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d91/class_fenwick_tree.html#a115ff5c548b429b737ea09f75817d1f9">sum_range</a> (int l, int r)</td></tr>
<tr class="separator:a115ff5c548b429b737ea09f75817d1f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:aaae15ea71455315e257baa11017cec10"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d91/class_fenwick_tree.html#aaae15ea71455315e257baa11017cec10">offset</a> (int x)</td></tr>
<tr class="separator:aaae15ea71455315e257baa11017cec10"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a4816596da965b5f0871d77b5a1985aa1"><td class="memItemLeft" align="right" valign="top"><a id="a4816596da965b5f0871d77b5a1985aa1"></a>
<tr class="memitem:a4816596da965b5f0871d77b5a1985aa1"><td class="memItemLeft" align="right" valign="top"><a id="a4816596da965b5f0871d77b5a1985aa1" name="a4816596da965b5f0871d77b5a1985aa1"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>n</b></td></tr>
<tr class="separator:a4816596da965b5f0871d77b5a1985aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8ecebf6f4ad9faaf4b826668d9409bb"><td class="memItemLeft" align="right" valign="top"><a id="aa8ecebf6f4ad9faaf4b826668d9409bb"></a>
<tr class="memitem:aa8ecebf6f4ad9faaf4b826668d9409bb"><td class="memItemLeft" align="right" valign="top"><a id="aa8ecebf6f4ad9faaf4b826668d9409bb" name="aa8ecebf6f4ad9faaf4b826668d9409bb"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>bit</b></td></tr>
<tr class="separator:aa8ecebf6f4ad9faaf4b826668d9409bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>n --&gt; No. of elements present in input array. bit[0..n] --&gt; Array that represents Binary Indexed Tree. </p>
<div class="textblock"><p >n --&gt; No. of elements present in input array. bit[0..n] --&gt; Array that represents Binary Indexed Tree. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aaddab1f03d4941212a82cc647b1adb17"></a>
<a id="aaddab1f03d4941212a82cc647b1adb17" name="aaddab1f03d4941212a82cc647b1adb17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaddab1f03d4941212a82cc647b1adb17">&#9670;&nbsp;</a></span>FenwickTree() <span class="overload">[1/2]</span></h2>
<div class="memitem">
@@ -159,20 +152,19 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>n</b></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor </p><dl class="params"><dt>Parameters</dt><dd>
<p >Constructor </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>--&gt; Input array for which prefix sum is evaluated. </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; {</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; n = arr.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; bit.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/assign.html">assign</a>(n + 1, 0);</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="../../dd/d91/class_fenwick_tree.html#a2e9ea4fcbe0786487f4535c1cfc7aa00">update</a>(i, arr[i]);</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div>
<div class="ttc" id="aassign_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/assign.html">std::vector::assign</a></div><div class="ttdeci">T assign(T... args)</div></div>
<div class="fragment"><div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> {</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> n = arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> bit.assign(n + 1, 0);</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n; ++i) {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_function" href="../../dd/d91/class_fenwick_tree.html#a2e9ea4fcbe0786487f4535c1cfc7aa00">update</a>(i, arr[i]);</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> }</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
<div class="ttc" id="aclass_fenwick_tree_html_a2e9ea4fcbe0786487f4535c1cfc7aa00"><div class="ttname"><a href="../../dd/d91/class_fenwick_tree.html#a2e9ea4fcbe0786487f4535c1cfc7aa00">FenwickTree::update</a></div><div class="ttdeci">void update(int id, int val)</div><div class="ttdef"><b>Definition:</b> fenwick_tree.cpp:45</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
@@ -184,7 +176,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a70f8c261393ca09ec1ad716ac806ead6"></a>
<a id="a70f8c261393ca09ec1ad716ac806ead6" name="a70f8c261393ca09ec1ad716ac806ead6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70f8c261393ca09ec1ad716ac806ead6">&#9670;&nbsp;</a></span>FenwickTree() <span class="overload">[2/2]</span></h2>
<div class="memitem">
@@ -207,16 +199,16 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor </p><dl class="params"><dt>Parameters</dt><dd>
<p >Constructor </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>--&gt; Size of array that represents Binary Indexed Tree. </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; n = x;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; bit.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/assign.html">assign</a>(n + 1, 0);</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> n = x;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> bit.assign(n + 1, 0);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -227,7 +219,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aaae15ea71455315e257baa11017cec10"></a>
<a id="aaae15ea71455315e257baa11017cec10" name="aaae15ea71455315e257baa11017cec10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaae15ea71455315e257baa11017cec10">&#9670;&nbsp;</a></span>offset()</h2>
<div class="memitem">
@@ -250,12 +242,12 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the highest power of two which is not more than x </p>
<div class="fragment"><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{ <span class="keywordflow">return</span> (x &amp; (-x)); }</div>
<p >Returns the highest power of two which is not more than x </p>
<div class="fragment"><div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span>{ <span class="keywordflow">return</span> (x &amp; (-x)); }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ade1d6a3d49af9d9df33e2fb26cab1699"></a>
<a id="ade1d6a3d49af9d9df33e2fb26cab1699" name="ade1d6a3d49af9d9df33e2fb26cab1699"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade1d6a3d49af9d9df33e2fb26cab1699">&#9670;&nbsp;</a></span>sum()</h2>
<div class="memitem">
@@ -278,16 +270,16 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Get prefix sum upto id </p>
<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">id</span>++;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">int</span> res = 0;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">while</span> (<span class="keywordtype">id</span> &gt; 0) {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; res += bit[id];</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">id</span> -= <a class="code" href="../../dd/d91/class_fenwick_tree.html#aaae15ea71455315e257baa11017cec10">offset</a>(<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> res;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div>
<p >Get prefix sum upto id </p>
<div class="fragment"><div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">id</span>++;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">int</span> res = 0;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">while</span> (<span class="keywordtype">id</span> &gt; 0) {</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> res += bit[id];</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">id</span> -= <a class="code hl_function" href="../../dd/d91/class_fenwick_tree.html#aaae15ea71455315e257baa11017cec10">offset</a>(<span class="keywordtype">id</span>);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> }</div>
<div class="ttc" id="aclass_fenwick_tree_html_aaae15ea71455315e257baa11017cec10"><div class="ttname"><a href="../../dd/d91/class_fenwick_tree.html#aaae15ea71455315e257baa11017cec10">FenwickTree::offset</a></div><div class="ttdeci">int offset(int x)</div><div class="ttdef"><b>Definition:</b> fenwick_tree.cpp:22</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -298,7 +290,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a115ff5c548b429b737ea09f75817d1f9"></a>
<a id="a115ff5c548b429b737ea09f75817d1f9" name="a115ff5c548b429b737ea09f75817d1f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a115ff5c548b429b737ea09f75817d1f9">&#9670;&nbsp;</a></span>sum_range()</h2>
<div class="memitem">
@@ -331,8 +323,8 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the prefix sum in range from l to r </p>
<div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../dd/d91/class_fenwick_tree.html#ade1d6a3d49af9d9df33e2fb26cab1699">sum</a>(r) - <a class="code" href="../../dd/d91/class_fenwick_tree.html#ade1d6a3d49af9d9df33e2fb26cab1699">sum</a>(l - 1); }</div>
<p >Returns the prefix sum in range from l to r </p>
<div class="fragment"><div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="../../dd/d91/class_fenwick_tree.html#ade1d6a3d49af9d9df33e2fb26cab1699">sum</a>(r) - <a class="code hl_function" href="../../dd/d91/class_fenwick_tree.html#ade1d6a3d49af9d9df33e2fb26cab1699">sum</a>(l - 1); }</div>
<div class="ttc" id="aclass_fenwick_tree_html_ade1d6a3d49af9d9df33e2fb26cab1699"><div class="ttname"><a href="../../dd/d91/class_fenwick_tree.html#ade1d6a3d49af9d9df33e2fb26cab1699">FenwickTree::sum</a></div><div class="ttdeci">int sum(int id)</div><div class="ttdef"><b>Definition:</b> fenwick_tree.cpp:54</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -343,7 +335,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="a2e9ea4fcbe0786487f4535c1cfc7aa00"></a>
<a id="a2e9ea4fcbe0786487f4535c1cfc7aa00" name="a2e9ea4fcbe0786487f4535c1cfc7aa00"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e9ea4fcbe0786487f4535c1cfc7aa00">&#9670;&nbsp;</a></span>update()</h2>
<div class="memitem">
@@ -376,14 +368,14 @@ Here is the call graph for this function:</div>
</tr>
</table>
</div><div class="memdoc">
<p>Add val at id </p>
<div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">id</span>++;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">while</span> (<span class="keywordtype">id</span> &lt;= n) {</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; bit[id] += val;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">id</span> += <a class="code" href="../../dd/d91/class_fenwick_tree.html#aaae15ea71455315e257baa11017cec10">offset</a>(<span class="keywordtype">id</span>);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div>
<p >Add val at id </p>
<div class="fragment"><div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordtype">id</span>++;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">while</span> (<span class="keywordtype">id</span> &lt;= n) {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> bit[id] += val;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordtype">id</span> += <a class="code hl_function" href="../../dd/d91/class_fenwick_tree.html#aaae15ea71455315e257baa11017cec10">offset</a>(<span class="keywordtype">id</span>);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -402,7 +394,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d91/class_fenwick_tree.html">FenwickTree</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -5,7 +5,5 @@ var class_fenwick_tree =
[ "offset", "dd/d91/class_fenwick_tree.html#aaae15ea71455315e257baa11017cec10", null ],
[ "sum", "dd/d91/class_fenwick_tree.html#ade1d6a3d49af9d9df33e2fb26cab1699", null ],
[ "sum_range", "dd/d91/class_fenwick_tree.html#a115ff5c548b429b737ea09f75817d1f9", null ],
[ "update", "dd/d91/class_fenwick_tree.html#a2e9ea4fcbe0786487f4535c1cfc7aa00", null ],
[ "bit", "dd/d91/class_fenwick_tree.html#aa8ecebf6f4ad9faaf4b826668d9409bb", null ],
[ "n", "dd/d91/class_fenwick_tree.html#a4816596da965b5f0871d77b5a1985aa1", null ]
[ "update", "dd/d91/class_fenwick_tree.html#a2e9ea4fcbe0786487f4535c1cfc7aa00", null ]
];

View File

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

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

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

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -2,8 +2,8 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: machine_learning::aystar_search::EightPuzzle&lt; N &gt; Class Template Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -17,9 +17,9 @@
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
@@ -32,8 +32,7 @@
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
@@ -42,21 +41,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search','.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -70,7 +70,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html','../../'); initResizable(); });
/* @license-end */
</script>
@@ -96,35 +96,26 @@ $(document).ready(function(){initNavTree('dd/d9c/classmachine__learning_1_1aysta
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="../../db/df3/classmachine__learning_1_1aystar__search_1_1_eight_puzzle-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">machine_learning::aystar_search::EightPuzzle&lt; N &gt; Class Template Reference</div> </div>
<div class="headertitle"><div class="title">machine_learning::aystar_search::EightPuzzle&lt; N &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>A class defining <a href="https://en.wikipedia.org/wiki/15_puzzle">EightPuzzle/15-Puzzle game</a>.
<p>A class defining <a href="https://en.wikipedia.org/wiki/15_puzzle" target="_blank">EightPuzzle/15-Puzzle game</a>.
<a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for machine_learning::aystar_search::EightPuzzle&lt; N &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d0/dff/classmachine__learning_1_1aystar__search_1_1_eight_puzzle__coll__graph.svg" width="651" height="118"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa5c0486c7f29f323a2aced2ab33af420"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa5c0486c7f29f323a2aced2ab33af420">get</a> (size_t i, size_t j) const</td></tr>
<tr class="memdesc:aa5c0486c7f29f323a2aced2ab33af420"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the value from i units from right and j units from left side of the board <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa5c0486c7f29f323a2aced2ab33af420">More...</a><br /></td></tr>
<tr class="separator:aa5c0486c7f29f323a2aced2ab33af420"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a104ce464744254f6be45781e65c40404"><td class="memItemLeft" align="right" valign="top"><a id="a104ce464744254f6be45781e65c40404"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, N &gt;, N &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a104ce464744254f6be45781e65c40404">get_state</a> ()</td></tr>
<tr class="memdesc:a104ce464744254f6be45781e65c40404"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current state of the board. <br /></td></tr>
<tr class="separator:a104ce464744254f6be45781e65c40404"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade14b0e1a88543b91426e2008e4d0f99"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, N &gt;, N &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#ade14b0e1a88543b91426e2008e4d0f99">get_state</a> ()</td></tr>
<tr class="memdesc:ade14b0e1a88543b91426e2008e4d0f99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current state of the board. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#ade14b0e1a88543b91426e2008e4d0f99">More...</a><br /></td></tr>
<tr class="separator:ade14b0e1a88543b91426e2008e4d0f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae145ac4a0d2ec58945b58fad3c04f00f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#ae145ac4a0d2ec58945b58fad3c04f00f">get_size</a> () const</td></tr>
<tr class="memdesc:ae145ac4a0d2ec58945b58fad3c04f00f"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the size of the <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html" title="A class defining EightPuzzle/15-Puzzle game.">EightPuzzle</a> (number of row / column) <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#ae145ac4a0d2ec58945b58fad3c04f00f">More...</a><br /></td></tr>
<tr class="separator:ae145ac4a0d2ec58945b58fad3c04f00f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dc09f4742a0e1167ed202f7bf94721b"><td class="memItemLeft" align="right" valign="top"><a id="a3dc09f4742a0e1167ed202f7bf94721b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a3dc09f4742a0e1167ed202f7bf94721b">EightPuzzle</a> ()</td></tr>
<tr class="memdesc:a3dc09f4742a0e1167ed202f7bf94721b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor for <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html" title="A class defining EightPuzzle/15-Puzzle game.">EightPuzzle</a>. <br /></td></tr>
<tr class="memitem:a3dc09f4742a0e1167ed202f7bf94721b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a3dc09f4742a0e1167ed202f7bf94721b">EightPuzzle</a> ()</td></tr>
<tr class="memdesc:a3dc09f4742a0e1167ed202f7bf94721b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor for <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html" title="A class defining EightPuzzle/15-Puzzle game.">EightPuzzle</a>. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a3dc09f4742a0e1167ed202f7bf94721b">More...</a><br /></td></tr>
<tr class="separator:a3dc09f4742a0e1167ed202f7bf94721b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7fd890a7ccf756e4b3313087b76a8c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#ab7fd890a7ccf756e4b3313087b76a8c2">EightPuzzle</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, N &gt;, N &gt; &amp;init)</td></tr>
<tr class="memdesc:ab7fd890a7ccf756e4b3313087b76a8c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parameterized Constructor for <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html" title="A class defining EightPuzzle/15-Puzzle game.">EightPuzzle</a>. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#ab7fd890a7ccf756e4b3313087b76a8c2">More...</a><br /></td></tr>
@@ -135,19 +126,19 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:af22395b8e9e04222aa93a329523faef9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#af22395b8e9e04222aa93a329523faef9">EightPuzzle</a> (const <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt; N &gt; &amp;&amp;A) noexcept</td></tr>
<tr class="memdesc:af22395b8e9e04222aa93a329523faef9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#af22395b8e9e04222aa93a329523faef9">More...</a><br /></td></tr>
<tr class="separator:af22395b8e9e04222aa93a329523faef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a194c2973b51a5467fc17064a4ea4e6f9"><td class="memItemLeft" align="right" valign="top"><a id="a194c2973b51a5467fc17064a4ea4e6f9"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a194c2973b51a5467fc17064a4ea4e6f9">~EightPuzzle</a> ()=default</td></tr>
<tr class="memitem:a194c2973b51a5467fc17064a4ea4e6f9"><td class="memItemLeft" align="right" valign="top"><a id="a194c2973b51a5467fc17064a4ea4e6f9" name="a194c2973b51a5467fc17064a4ea4e6f9"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>~EightPuzzle</b> ()=default</td></tr>
<tr class="memdesc:a194c2973b51a5467fc17064a4ea4e6f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor of <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html" title="A class defining EightPuzzle/15-Puzzle game.">EightPuzzle</a>. <br /></td></tr>
<tr class="separator:a194c2973b51a5467fc17064a4ea4e6f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a079587a19a47c75c51a5a726d9263fb9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a079587a19a47c75c51a5a726d9263fb9">operator=</a> (const <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp;A)</td></tr>
<tr class="memdesc:a079587a19a47c75c51a5a726d9263fb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy assignment operator. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a079587a19a47c75c51a5a726d9263fb9">More...</a><br /></td></tr>
<tr class="separator:a079587a19a47c75c51a5a726d9263fb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ac8dff819bc37f2136951a5bc9fc799"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a2ac8dff819bc37f2136951a5bc9fc799">operator=</a> (<a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp;&amp;A) noexcept</td></tr>
<tr class="memdesc:a2ac8dff819bc37f2136951a5bc9fc799"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a2ac8dff819bc37f2136951a5bc9fc799">More...</a><br /></td></tr>
<tr class="separator:a2ac8dff819bc37f2136951a5bc9fc799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8cc0c234ebd261ee27bc3c391f837e3"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt; N &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#af8cc0c234ebd261ee27bc3c391f837e3">generate_possible_moves</a> ()</td></tr>
<tr class="memdesc:af8cc0c234ebd261ee27bc3c391f837e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find all possible states after processing all possible moves, given the current state of the puzzle. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#af8cc0c234ebd261ee27bc3c391f837e3">More...</a><br /></td></tr>
<tr class="separator:af8cc0c234ebd261ee27bc3c391f837e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a467e722dc1fcc82bfb4cef55744e04e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a467e722dc1fcc82bfb4cef55744e04e2">operator=</a> (const <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp;A)</td></tr>
<tr class="memdesc:a467e722dc1fcc82bfb4cef55744e04e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy assignment operator. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a467e722dc1fcc82bfb4cef55744e04e2">More...</a><br /></td></tr>
<tr class="separator:a467e722dc1fcc82bfb4cef55744e04e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1802cf6197a255055cb734d626abc101"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a1802cf6197a255055cb734d626abc101">operator=</a> (<a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp;&amp;A) noexcept</td></tr>
<tr class="memdesc:a1802cf6197a255055cb734d626abc101"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a1802cf6197a255055cb734d626abc101">More...</a><br /></td></tr>
<tr class="separator:a1802cf6197a255055cb734d626abc101"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26a976171392d257ca0f814ed73e0658"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt; N &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a26a976171392d257ca0f814ed73e0658">generate_possible_moves</a> ()</td></tr>
<tr class="memdesc:a26a976171392d257ca0f814ed73e0658"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find all possible states after processing all possible moves, given the current state of the puzzle. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a26a976171392d257ca0f814ed73e0658">More...</a><br /></td></tr>
<tr class="separator:a26a976171392d257ca0f814ed73e0658"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa17e0227321b109ed91e156ac1332915"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa17e0227321b109ed91e156ac1332915">operator==</a> (const <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt; N &gt; &amp;check) const</td></tr>
<tr class="memdesc:aa17e0227321b109ed91e156ac1332915"><td class="mdescLeft">&#160;</td><td class="mdescRight">check whether two boards are equal <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa17e0227321b109ed91e156ac1332915">More...</a><br /></td></tr>
<tr class="separator:aa17e0227321b109ed91e156ac1332915"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -158,44 +149,79 @@ Public Member Functions</h2></td></tr>
<tr class="memdesc:af778034b2942ecac6df1e9ec8b5412ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">check whether one board is lexicographically smaller or equal <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#af778034b2942ecac6df1e9ec8b5412ee">More...</a><br /></td></tr>
<tr class="separator:af778034b2942ecac6df1e9ec8b5412ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a01564e5136ca270c45382e5ea55dc6ec"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint32_t, uint32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a01564e5136ca270c45382e5ea55dc6ec">find_zero</a> ()</td></tr>
<tr class="memdesc:a01564e5136ca270c45382e5ea55dc6ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">A helper array to evaluate the next state from current state;. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a01564e5136ca270c45382e5ea55dc6ec">More...</a><br /></td></tr>
<tr class="separator:a01564e5136ca270c45382e5ea55dc6ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94f794bf44f424b1b0ca6ef9f4f6ebd3"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint32_t, uint32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a94f794bf44f424b1b0ca6ef9f4f6ebd3">find_zero</a> ()</td></tr>
<tr class="memdesc:a94f794bf44f424b1b0ca6ef9f4f6ebd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">A helper array to evaluate the next state from current state;. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a94f794bf44f424b1b0ca6ef9f4f6ebd3">More...</a><br /></td></tr>
<tr class="separator:a94f794bf44f424b1b0ca6ef9f4f6ebd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48d054230468b79037964f474d842b6e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">in_range</a> (const uint32_t value) const</td></tr>
<tr class="memdesc:a48d054230468b79037964f474d842b6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">check whether the index value is bounded within the puzzle area <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">More...</a><br /></td></tr>
<tr class="separator:a48d054230468b79037964f474d842b6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a35d8f14ca17218f236c09ff9ad864f9c"><td class="memItemLeft" align="right" valign="top"><a id="a35d8f14ca17218f236c09ff9ad864f9c"></a>
<tr class="memitem:a35d8f14ca17218f236c09ff9ad864f9c"><td class="memItemLeft" align="right" valign="top"><a id="a35d8f14ca17218f236c09ff9ad864f9c" name="a35d8f14ca17218f236c09ff9ad864f9c"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, N &gt;, N &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>board</b></td></tr>
<tr class="separator:a35d8f14ca17218f236c09ff9ad864f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa73857052e69b86347859d9148933f71"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; int8_t, int8_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa73857052e69b86347859d9148933f71">moves</a></td></tr>
<tr class="memdesc:aa73857052e69b86347859d9148933f71"><td class="mdescLeft">&#160;</td><td class="mdescRight">N x N array to store the current state of the Puzzle. <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa73857052e69b86347859d9148933f71">More...</a><br /></td></tr>
<tr class="separator:aa73857052e69b86347859d9148933f71"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a53237f6f7d19e9601a1e6ba90749a20d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a53237f6f7d19e9601a1e6ba90749a20d">operator&lt;&lt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;op, const <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt; N &gt; &amp;SomeState)</td></tr>
<tr class="memdesc:a53237f6f7d19e9601a1e6ba90749a20d"><td class="mdescLeft">&#160;</td><td class="mdescRight">friend operator to display EightPuzzle&lt;&gt; <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a53237f6f7d19e9601a1e6ba90749a20d">More...</a><br /></td></tr>
<tr class="separator:a53237f6f7d19e9601a1e6ba90749a20d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9517e162e2988f7db052296bd550a742"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a9517e162e2988f7db052296bd550a742">operator&lt;&lt;</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;op, const <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt; N &gt; &amp;SomeState)</td></tr>
<tr class="memdesc:a9517e162e2988f7db052296bd550a742"><td class="mdescLeft">&#160;</td><td class="mdescRight">friend operator to display EightPuzzle&lt;&gt; <a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a9517e162e2988f7db052296bd550a742">More...</a><br /></td></tr>
<tr class="separator:a9517e162e2988f7db052296bd550a742"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;size_t N = 3&gt;<br />
class machine_learning::aystar_search::EightPuzzle&lt; N &gt;</h3>
<p>A class defining <a href="https://en.wikipedia.org/wiki/15_puzzle">EightPuzzle/15-Puzzle game</a>. </p>
<p>A well known 3 x 3 puzzle of the form ` 1 2 3 4 5 6 7 8 0 <code> where</code>0` represents an empty space in the puzzle Given any random state, the goal is to achieve the above configuration (or any other configuration if possible) </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<div class="textblock"><div class="compoundTemplParams">template&lt;size_t N = 3&gt;<br />
class machine_learning::aystar_search::EightPuzzle&lt; N &gt;</div><p >A class defining <a href="https://en.wikipedia.org/wiki/15_puzzle" target="_blank">EightPuzzle/15-Puzzle game</a>. </p>
<p >A well known 3 x 3 puzzle of the form ` 1 2 3 4 5 6 7 8 0 <code> where</code>0` represents an empty space in the puzzle Given any random state, the goal is to achieve the above configuration (or any other configuration if possible) </p><dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">N</td><td>size of the square Puzzle, default is set to 3 (since it is <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html" title="A class defining EightPuzzle/15-Puzzle game.">EightPuzzle</a>) </td></tr>
</table>
</dd>
</dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab7fd890a7ccf756e4b3313087b76a8c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7fd890a7ccf756e4b3313087b76a8c2">&#9670;&nbsp;</a></span>EightPuzzle() <span class="overload">[1/3]</span></h2>
<a id="a3dc09f4742a0e1167ed202f7bf94721b" name="a3dc09f4742a0e1167ed202f7bf94721b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3dc09f4742a0e1167ed202f7bf94721b">&#9670;&nbsp;</a></span>EightPuzzle() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;size_t N = 3&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::<a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor for <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html" title="A class defining EightPuzzle/15-Puzzle game.">EightPuzzle</a>. </p>
<div class="fragment"><div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> board[i][j] = ((i * 3 + j + 1) % (N * N));</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> }</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
<div class="ttc" id="adata__structures_2sparse__table_8cpp_html_a10f3ffb3f6f7e1b83d556b9c8de89a5d"><div class="ttname"><a href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">data_structures::sparse_table::N</a></div><div class="ttdeci">constexpr uint32_t N</div><div class="ttdoc">A struct to represent sparse table for min() as their invariant function, for the given array A....</div><div class="ttdef"><b>Definition:</b> sparse_table.cpp:47</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ab7fd890a7ccf756e4b3313087b76a8c2" name="ab7fd890a7ccf756e4b3313087b76a8c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7fd890a7ccf756e4b3313087b76a8c2">&#9670;&nbsp;</a></span>EightPuzzle() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -227,12 +253,12 @@ template&lt;size_t N = 3&gt; </div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; : board(init) {}</div>
<div class="fragment"><div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> : board(init) {}</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad45fde095ac00effe1fe00b1d85ff9c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad45fde095ac00effe1fe00b1d85ff9c7">&#9670;&nbsp;</a></span>EightPuzzle() <span class="overload">[2/3]</span></h2>
<a id="ad45fde095ac00effe1fe00b1d85ff9c7" name="ad45fde095ac00effe1fe00b1d85ff9c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad45fde095ac00effe1fe00b1d85ff9c7">&#9670;&nbsp;</a></span>EightPuzzle() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -264,12 +290,12 @@ template&lt;size_t N = 3&gt; </div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;: board(A.board) {}</div>
<div class="fragment"><div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span>: board(A.board) {}</div>
</div><!-- fragment -->
</div>
</div>
<a id="af22395b8e9e04222aa93a329523faef9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af22395b8e9e04222aa93a329523faef9">&#9670;&nbsp;</a></span>EightPuzzle() <span class="overload">[3/3]</span></h2>
<a id="af22395b8e9e04222aa93a329523faef9" name="af22395b8e9e04222aa93a329523faef9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af22395b8e9e04222aa93a329523faef9">&#9670;&nbsp;</a></span>EightPuzzle() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -301,14 +327,14 @@ template&lt;size_t N = 3&gt; </div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; : board(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a>(A.board)) {}</div>
<div class="fragment"><div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> : board(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a>(A.board)) {}</div>
<div class="ttc" id="amove_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a></div><div class="ttdeci">T move(T... args)</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a01564e5136ca270c45382e5ea55dc6ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a01564e5136ca270c45382e5ea55dc6ec">&#9670;&nbsp;</a></span>find_zero()</h2>
<a id="a94f794bf44f424b1b0ca6ef9f4f6ebd3" name="a94f794bf44f424b1b0ca6ef9f4f6ebd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94f794bf44f424b1b0ca6ef9f4f6ebd3">&#9670;&nbsp;</a></span>find_zero()</h2>
<div class="memitem">
<div class="memproto">
@@ -319,7 +345,7 @@ template&lt;size_t N = 3&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt;uint32_t, uint32_t&gt; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::find_zero </td>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; uint32_t, uint32_t &gt; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::find_zero </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@@ -333,23 +359,22 @@ template&lt;size_t N = 3&gt; </div>
</div><div class="memdoc">
<p>A helper array to evaluate the next state from current state;. </p>
<p>Finds an empty space in puzzle (in this case; a zero) </p><dl class="section return"><dt>Returns</dt><dd>a pair indicating integer distances from top and right respectively, else returns -1, -1 </dd></dl>
<div class="fragment"><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (!board[i][j]) {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> {i, j};</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> {-1, -1};</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</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>
<p >Finds an empty space in puzzle (in this case; a zero) </p><dl class="section return"><dt>Returns</dt><dd>a pair indicating integer distances from top and right respectively, else returns -1, -1 </dd></dl>
<div class="fragment"><div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">if</span> (!board[i][j]) {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">return</span> {i, j};</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> }</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> }</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> }</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">return</span> {-1, -1};</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af8cc0c234ebd261ee27bc3c391f837e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8cc0c234ebd261ee27bc3c391f837e3">&#9670;&nbsp;</a></span>generate_possible_moves()</h2>
<a id="a26a976171392d257ca0f814ed73e0658" name="a26a976171392d257ca0f814ed73e0658"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26a976171392d257ca0f814ed73e0658">&#9670;&nbsp;</a></span>generate_possible_moves()</h2>
<div class="memitem">
<div class="memproto">
@@ -360,7 +385,7 @@ template&lt;size_t N = 3&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt;N&gt; &gt; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::generate_possible_moves </td>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt; N &gt; &gt; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::generate_possible_moves </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@@ -376,28 +401,28 @@ template&lt;size_t N = 3&gt; </div>
<p>Find all possible states after processing all possible moves, given the current state of the puzzle. </p>
<dl class="section return"><dt>Returns</dt><dd>list of vector containing all possible next moves </dd></dl>
<dl class="section note"><dt>Note</dt><dd>the implementation is compulsory to create A* search </dd></dl>
<div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">auto</span> zero_pos = <a class="code" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a01564e5136ca270c45382e5ea55dc6ec">find_zero</a>();</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// vector which will contain all possible state from current state</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;EightPuzzle&lt;N&gt;</a>&gt; NewStates;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;move : <a class="code" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa73857052e69b86347859d9148933f71">moves</a>) {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">in_range</a>(zero_pos.first + <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">move</a>.first) &amp;&amp;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">in_range</a>(zero_pos.second + <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">move</a>.second)) {</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// swap with the possible moves</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::array&lt;uint32_t, N&gt;</a>, <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>&gt; new_config = board;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>(new_config[zero_pos.first][zero_pos.second],</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; new_config[zero_pos.first + <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">move</a>.first]</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; [zero_pos.second + <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">move</a>.second]);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; EightPuzzle&lt;N&gt; new_state(new_config);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// Store new state and calculate heuristic value, and depth</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; NewStates.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/emplace_back.html">emplace_back</a>(new_state);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> NewStates;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> {</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">auto</span> zero_pos = <a class="code hl_function" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a94f794bf44f424b1b0ca6ef9f4f6ebd3">find_zero</a>();</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// vector which will contain all possible state from current state</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;EightPuzzle&lt;N&gt;</a>&gt; NewStates;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;move : <a class="code hl_variable" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa73857052e69b86347859d9148933f71">moves</a>) {</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">in_range</a>(zero_pos.first + <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">move</a>.first) &amp;&amp;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <a class="code hl_function" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">in_range</a>(zero_pos.second + <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">move</a>.second)) {</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// swap with the possible moves</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::array&lt;uint32_t, N&gt;</a>, <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>&gt; new_config = board;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a>(new_config[zero_pos.first][zero_pos.second],</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> new_config[zero_pos.first + <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">move</a>.first]</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> [zero_pos.second + <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">move</a>.second]);</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> EightPuzzle&lt;N&gt; new_state(new_config);</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// Store new state and calculate heuristic value, and depth</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> NewStates.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/emplace_back.html">emplace_back</a>(new_state);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> }</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> }</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">return</span> NewStates;</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> }</div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></div>
<div class="ttc" id="aclassmachine__learning_1_1aystar__search_1_1_eight_puzzle_html_a01564e5136ca270c45382e5ea55dc6ec"><div class="ttname"><a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a01564e5136ca270c45382e5ea55dc6ec">machine_learning::aystar_search::EightPuzzle::find_zero</a></div><div class="ttdeci">std::pair&lt; uint32_t, uint32_t &gt; find_zero()</div><div class="ttdoc">A helper array to evaluate the next state from current state;.</div><div class="ttdef"><b>Definition:</b> a_star_search.cpp:75</div></div>
<div class="ttc" id="aclassmachine__learning_1_1aystar__search_1_1_eight_puzzle_html_a48d054230468b79037964f474d842b6e"><div class="ttname"><a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">machine_learning::aystar_search::EightPuzzle::in_range</a></div><div class="ttdeci">bool in_range(const uint32_t value) const</div><div class="ttdoc">check whether the index value is bounded within the puzzle area</div><div class="ttdef"><b>Definition:</b> a_star_search.cpp:90</div></div>
<div class="ttc" id="aclassmachine__learning_1_1aystar__search_1_1_eight_puzzle_html_a94f794bf44f424b1b0ca6ef9f4f6ebd3"><div class="ttname"><a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a94f794bf44f424b1b0ca6ef9f4f6ebd3">machine_learning::aystar_search::EightPuzzle::find_zero</a></div><div class="ttdeci">std::pair&lt; uint32_t, uint32_t &gt; find_zero()</div><div class="ttdoc">A helper array to evaluate the next state from current state;.</div><div class="ttdef"><b>Definition:</b> a_star_search.cpp:75</div></div>
<div class="ttc" id="aclassmachine__learning_1_1aystar__search_1_1_eight_puzzle_html_aa73857052e69b86347859d9148933f71"><div class="ttname"><a href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa73857052e69b86347859d9148933f71">machine_learning::aystar_search::EightPuzzle::moves</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; int8_t, int8_t &gt; &gt; moves</div><div class="ttdoc">N x N array to store the current state of the Puzzle.</div><div class="ttdef"><b>Definition:</b> a_star_search.cpp:64</div></div>
<div class="ttc" id="aemplace_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/emplace_back.html">std::vector::emplace_back</a></div><div class="ttdeci">T emplace_back(T... args)</div></div>
<div class="ttc" id="aswap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a></div><div class="ttdeci">T swap(T... args)</div></div>
@@ -405,13 +430,13 @@ template&lt;size_t N = 3&gt; </div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle_af8cc0c234ebd261ee27bc3c391f837e3_cgraph.svg" width="475" height="220"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle_a26a976171392d257ca0f814ed73e0658_cgraph.svg" width="475" height="220"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="aa5c0486c7f29f323a2aced2ab33af420"></a>
<a id="aa5c0486c7f29f323a2aced2ab33af420" name="aa5c0486c7f29f323a2aced2ab33af420"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5c0486c7f29f323a2aced2ab33af420">&#9670;&nbsp;</a></span>get()</h2>
<div class="memitem">
@@ -458,12 +483,12 @@ template&lt;size_t N = 3&gt; </div>
<dl class="section return"><dt>Returns</dt><dd>non-negative integer denoting the value at ith row and jth column </dd>
<dd>
-1 if invalid i or j position </dd></dl>
<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">in_range</a>(i) &amp;&amp; <a class="code" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">in_range</a>(j)) {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> board[i][j];</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">in_range</a>(i) &amp;&amp; <a class="code hl_function" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e">in_range</a>(j)) {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">return</span> board[i][j];</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> }</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -473,7 +498,7 @@ Here is the call graph for this function:</div>
</div>
</div>
<a id="ae145ac4a0d2ec58945b58fad3c04f00f"></a>
<a id="ae145ac4a0d2ec58945b58fad3c04f00f" name="ae145ac4a0d2ec58945b58fad3c04f00f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae145ac4a0d2ec58945b58fad3c04f00f">&#9670;&nbsp;</a></span>get_size()</h2>
<div class="memitem">
@@ -500,11 +525,41 @@ template&lt;size_t N = 3&gt; </div>
<p>returns the size of the <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html" title="A class defining EightPuzzle/15-Puzzle game.">EightPuzzle</a> (number of row / column) </p>
<dl class="section return"><dt>Returns</dt><dd>N, the size of the puzzle. </dd></dl>
<div class="fragment"><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; }</div>
<div class="fragment"><div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a48d054230468b79037964f474d842b6e"></a>
<a id="ade14b0e1a88543b91426e2008e4d0f99" name="ade14b0e1a88543b91426e2008e4d0f99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade14b0e1a88543b91426e2008e4d0f99">&#9670;&nbsp;</a></span>get_state()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;size_t N = 3&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; uint32_t, N &gt;, N &gt; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::get_state </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the current state of the board. </p>
<div class="fragment"><div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>{ <span class="keywordflow">return</span> board; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a48d054230468b79037964f474d842b6e" name="a48d054230468b79037964f474d842b6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48d054230468b79037964f474d842b6e">&#9670;&nbsp;</a></span>in_range()</h2>
<div class="memitem">
@@ -538,11 +593,11 @@ template&lt;size_t N = 3&gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if index is within the board, else <code>false</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{ <span class="keywordflow">return</span> value &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; }</div>
<div class="fragment"><div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span>{ <span class="keywordflow">return</span> value &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a64815f10cf9fb9fdb4cc92731ccf10ba"></a>
<a id="a64815f10cf9fb9fdb4cc92731ccf10ba" name="a64815f10cf9fb9fdb4cc92731ccf10ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64815f10cf9fb9fdb4cc92731ccf10ba">&#9670;&nbsp;</a></span>operator&lt;()</h2>
<div class="memitem">
@@ -570,21 +625,21 @@ template&lt;size_t N = 3&gt; </div>
<p>check whether one board is lexicographically smaller </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if this-&gt;state is lexicographically smaller than <code>check.state</code>, else <code>false</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span> (board[i][j] != <a class="code" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j]) {</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> board[i][j] &lt; <a class="code" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j];</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> {</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordflow">if</span> (board[i][j] != <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j]) {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">return</span> board[i][j] &lt; <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j];</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> }</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> }</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> }</div>
<div class="ttc" id="aword__break_8cpp_html_a272b0f5cdb4e41fd6dee4538b808c06a"><div class="ttname"><a href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">dynamic_programming::word_break::check</a></div><div class="ttdeci">bool check(const std::string &amp;s, const std::unordered_set&lt; std::string &gt; &amp;strSet, int pos, std::vector&lt; int &gt; *dp)</div><div class="ttdoc">Function that checks if the string passed in param can be segmented from position 'pos',...</div><div class="ttdef"><b>Definition:</b> word_break.cpp:80</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="af778034b2942ecac6df1e9ec8b5412ee"></a>
<a id="af778034b2942ecac6df1e9ec8b5412ee" name="af778034b2942ecac6df1e9ec8b5412ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af778034b2942ecac6df1e9ec8b5412ee">&#9670;&nbsp;</a></span>operator&lt;=()</h2>
<div class="memitem">
@@ -612,21 +667,21 @@ template&lt;size_t N = 3&gt; </div>
<p>check whether one board is lexicographically smaller or equal </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if this-&gt;state is lexicographically smaller than <code>check.state</code> or same, else <code>false</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (board[i][j] != <a class="code" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j]) {</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> board[i][j] &lt; <a class="code" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j];</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> {</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">if</span> (board[i][j] != <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j]) {</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span> board[i][j] &lt; <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j];</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> }</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> }</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> }</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a079587a19a47c75c51a5a726d9263fb9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a079587a19a47c75c51a5a726d9263fb9">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<a id="a467e722dc1fcc82bfb4cef55744e04e2" name="a467e722dc1fcc82bfb4cef55744e04e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a467e722dc1fcc82bfb4cef55744e04e2">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -637,7 +692,7 @@ template&lt;size_t N = 3&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&amp; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::operator= </td>
<td class="memname"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt; N &gt; &amp;&#160;</td>
<td class="paramname"><em>A</em></td><td>)</td>
@@ -658,15 +713,15 @@ template&lt;size_t N = 3&gt; </div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; board = A.board;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> board = A.board;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2ac8dff819bc37f2136951a5bc9fc799"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ac8dff819bc37f2136951a5bc9fc799">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<a id="a1802cf6197a255055cb734d626abc101" name="a1802cf6197a255055cb734d626abc101"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1802cf6197a255055cb734d626abc101">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -677,7 +732,7 @@ template&lt;size_t N = 3&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&amp; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::operator= </td>
<td class="memname"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a> &amp; <a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">machine_learning::aystar_search::EightPuzzle</a>&lt; N &gt;::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a>&lt; N &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>A</em></td><td>)</td>
@@ -698,20 +753,20 @@ template&lt;size_t N = 3&gt; </div>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; board = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a>(A.board);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> {</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> board = <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a>(A.board);</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle_a2ac8dff819bc37f2136951a5bc9fc799_cgraph.svg" width="351" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle_a1802cf6197a255055cb734d626abc101_cgraph.svg" width="351" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="aa17e0227321b109ed91e156ac1332915"></a>
<a id="aa17e0227321b109ed91e156ac1332915" name="aa17e0227321b109ed91e156ac1332915"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa17e0227321b109ed91e156ac1332915">&#9670;&nbsp;</a></span>operator==()</h2>
<div class="memitem">
@@ -739,25 +794,25 @@ template&lt;size_t N = 3&gt; </div>
<p>check whether two boards are equal </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if check.state is equal to <code>this-&gt;state</code>, else <code>false</code> </dd></dl>
<div class="fragment"><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.get_size() != N) {</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (board[i][j] != <a class="code" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j]) {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> {</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.get_size() != N) {</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> }</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">if</span> (board[i][j] != <a class="code hl_function" href="../../d3/d84/word__break_8cpp.html#a272b0f5cdb4e41fd6dee4538b808c06a">check</a>.board[i][j]) {</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> }</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> }</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> }</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a53237f6f7d19e9601a1e6ba90749a20d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53237f6f7d19e9601a1e6ba90749a20d">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
<a id="a9517e162e2988f7db052296bd550a742" name="a9517e162e2988f7db052296bd550a742"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9517e162e2988f7db052296bd550a742">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
<div class="memitem">
<div class="memproto">
@@ -768,7 +823,7 @@ template&lt;size_t N = 3&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a>&amp; operator&lt;&lt; </td>
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp; operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;&#160;</td>
<td class="paramname"><em>op</em>, </td>
@@ -801,20 +856,20 @@ template&lt;size_t N = 3&gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ostream operator op </dd></dl>
<div class="fragment"><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; op &lt;&lt; SomeState.board[i][j] &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; op &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> op;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div>
<div class="fragment"><div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> {</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++i) {</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; <a class="code hl_variable" href="../../d6/d42/data__structures_2sparse__table_8cpp.html#a10f3ffb3f6f7e1b83d556b9c8de89a5d">N</a>; ++j) {</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> op &lt;&lt; SomeState.board[i][j] &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> }</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> op &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> }</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordflow">return</span> op;</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aa73857052e69b86347859d9148933f71"></a>
<a id="aa73857052e69b86347859d9148933f71" name="aa73857052e69b86347859d9148933f71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa73857052e69b86347859d9148933f71">&#9670;&nbsp;</a></span>moves</h2>
<div class="memitem">
@@ -855,7 +910,7 @@ template&lt;size_t N = 3&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d8/d77/namespacemachine__learning.html">machine_learning</a></li><li class="navelem"><b>aystar_search</b></li><li class="navelem"><a class="el" href="../../dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html">EightPuzzle</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>

View File

@@ -5,18 +5,17 @@ var classmachine__learning_1_1aystar__search_1_1_eight_puzzle =
[ "EightPuzzle", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#ad45fde095ac00effe1fe00b1d85ff9c7", null ],
[ "EightPuzzle", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#af22395b8e9e04222aa93a329523faef9", null ],
[ "~EightPuzzle", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a194c2973b51a5467fc17064a4ea4e6f9", null ],
[ "find_zero", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a01564e5136ca270c45382e5ea55dc6ec", null ],
[ "generate_possible_moves", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#af8cc0c234ebd261ee27bc3c391f837e3", null ],
[ "find_zero", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a94f794bf44f424b1b0ca6ef9f4f6ebd3", null ],
[ "generate_possible_moves", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a26a976171392d257ca0f814ed73e0658", null ],
[ "get", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa5c0486c7f29f323a2aced2ab33af420", null ],
[ "get_size", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#ae145ac4a0d2ec58945b58fad3c04f00f", null ],
[ "get_state", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a104ce464744254f6be45781e65c40404", null ],
[ "get_state", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#ade14b0e1a88543b91426e2008e4d0f99", null ],
[ "in_range", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a48d054230468b79037964f474d842b6e", null ],
[ "operator<", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a64815f10cf9fb9fdb4cc92731ccf10ba", null ],
[ "operator<=", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#af778034b2942ecac6df1e9ec8b5412ee", null ],
[ "operator=", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a079587a19a47c75c51a5a726d9263fb9", null ],
[ "operator=", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a2ac8dff819bc37f2136951a5bc9fc799", null ],
[ "operator=", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a467e722dc1fcc82bfb4cef55744e04e2", null ],
[ "operator=", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a1802cf6197a255055cb734d626abc101", null ],
[ "operator==", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa17e0227321b109ed91e156ac1332915", null ],
[ "operator<<", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a53237f6f7d19e9601a1e6ba90749a20d", null ],
[ "board", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a35d8f14ca17218f236c09ff9ad864f9c", null ],
[ "operator<<", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#a9517e162e2988f7db052296bd550a742", null ],
[ "moves", "dd/d9c/classmachine__learning_1_1aystar__search_1_1_eight_puzzle.html#aa73857052e69b86347859d9148933f71", null ]
];

View File

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

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

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