Documentation for 62562abce3

This commit is contained in:
github-actions
2020-07-31 09:51:29 +00:00
parent 5eba000e6f
commit 930e001204
415 changed files with 18569 additions and 12110 deletions

View File

@@ -489,13 +489,7 @@ Here is the call graph for this function:</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">return</span> decrypt_key;</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d6/d26/classciphers_1_1_hill_cipher_abb2c4dc2b8a59d3dfe0fa22c2adc086b_cgraph.svg" width="100%" height="568"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7ca10cd1a0e8e3732391e0427d2d0213"></a>
@@ -576,13 +570,7 @@ Here is the call graph for this function:</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; </div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> encrypt_key;</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</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="../../d6/d26/classciphers_1_1_hill_cipher_a7ca10cd1a0e8e3732391e0427d2d0213_cgraph.svg" width="519" height="206"><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>
<a id="a14bfcd14af6cd853130cbacd32e35c13"></a>
@@ -647,13 +635,7 @@ Here is the call graph for this function:</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(encrypt_key, decrypt_key);</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d6/d26/classciphers_1_1_hill_cipher_a14bfcd14af6cd853130cbacd32e35c13_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae77cad522fa44b8c985779a7188d2f41"></a>

View File

@@ -1,19 +0,0 @@
<map id="ciphers::HillCipher::generate_keys" name="ciphers::HillCipher::generate_keys">
<area shape="rect" id="node1" title="Generate encryption and decryption key pair." alt="" coords="5,263,135,305"/>
<area shape="rect" id="node2" href="$d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" title=" " alt="" coords="431,56,538,83"/>
<area shape="rect" id="node5" href="$d6/d26/classciphers_1_1_hill_cipher.html#abb2c4dc2b8a59d3dfe0fa22c2adc086b" title="Generate decryption matrix from an encryption matrix key." alt="" coords="183,209,357,250"/>
<area shape="rect" id="node11" href="$d6/d26/classciphers_1_1_hill_cipher.html#a7ca10cd1a0e8e3732391e0427d2d0213" title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid..." alt="" coords="183,343,357,385"/>
<area shape="rect" id="node17" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/pair/make_pair.html#" title=" " alt="" coords="216,409,324,436"/>
<area shape="rect" id="node3" href="$d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" title=" " alt="" coords="612,5,735,32"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="783,81,899,108"/>
<area shape="rect" id="node6" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/program/exit.html#" title=" " alt="" coords="450,157,519,184"/>
<area shape="rect" id="node7" href="$d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b" title=" " alt="" coords="420,209,549,250"/>
<area shape="rect" id="node9" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/round.html#" title=" " alt="" coords="445,275,525,301"/>
<area shape="rect" id="node10" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="445,325,525,352"/>
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="637,216,709,243"/>
<area shape="rect" id="node12" href="$d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" title="Compute GCD of two integers using Euler&#39;s algorithm." alt="" coords="405,376,564,403"/>
<area shape="rect" id="node14" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/isfinite.html#" title=" " alt="" coords="441,427,528,453"/>
<area shape="rect" id="node15" href="$d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" title="Function to generate a random integer in a given interval." alt="" coords="420,478,549,519"/>
<area shape="rect" id="node13" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="634,376,713,403"/>
<area shape="rect" id="node16" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="637,485,710,512"/>
</map>

View File

@@ -1 +0,0 @@
8a914c7a4857626425bc8c7d42a9189f

View File

@@ -1,385 +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.44.1 (20200629.0846)
-->
<!-- Title: ciphers::HillCipher::generate_keys Pages: 1 -->
<!--zoomable 394 -->
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
<style type="text/css"><![CDATA[
.edge:hover path { stroke: red; }
.edge:hover polygon { stroke: red; fill: red; }
]]></style>
<script type="text/javascript"><![CDATA[
var edges = document.getElementsByTagName('g');
if (edges && edges.length) {
for (var i=0;i<edges.length;i++) {
if (edges[i].id.substr(0,4)=='edge') {
edges[i].setAttribute('class','edge');
}
}
}
]]></script>
<defs>
<circle id="rim" cx="0" cy="0" r="7"/>
<circle id="rim2" cx="0" cy="0" r="3.5"/>
<g id="zoomPlus">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/>
</use>
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
</g>
<g id="zoomMin">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/>
</use>
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
</g>
<g id="dirArrow">
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="resetDef">
<use xlink:href="#rim2" fill="#404040">
<set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/>
</use>
</g>
</defs>
<script type="text/javascript">
var viewWidth = 678;
var viewHeight = 394;
var sectionId = 'dynsection-6';
</script>
<script xlink:href="../../svgpan.js"/>
<svg id="graph" class="graph">
<g id="viewport">
<title>ciphers::HillCipher::generate_keys</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-389.5 674,-389.5 674,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Generate encryption and decryption key pair.">
<polygon fill="#bfbfbf" stroke="black" points="0,-161.5 0,-191.5 97,-191.5 97,-161.5 0,-161.5"/>
<text text-anchor="start" x="8" y="-179.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_keys</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="319.5,-328 319.5,-347 399.5,-347 399.5,-328 319.5,-328"/>
<text text-anchor="middle" x="359.5" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M65.8,-191.56C81.97,-205.95 107.89,-227.6 133,-242.5 194.61,-279.05 272.9,-308.67 319.16,-324.63"/>
<polygon fill="midnightblue" stroke="midnightblue" points="318.21,-328 328.8,-327.92 320.47,-321.38 318.21,-328"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#abb2c4dc2b8a59d3dfe0fa22c2adc086b" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<polygon fill="white" stroke="black" points="133,-202.5 133,-232.5 264,-232.5 264,-202.5 133,-202.5"/>
<text text-anchor="start" x="141" y="-220.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="198.5" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M97.14,-189.7C108.74,-192.91 121.34,-196.4 133.56,-199.79"/>
<polygon fill="midnightblue" stroke="midnightblue" points="132.69,-203.18 143.26,-202.47 134.56,-196.43 132.69,-203.18"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a7ca10cd1a0e8e3732391e0427d2d0213" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<polygon fill="white" stroke="black" points="133,-101.5 133,-131.5 264,-131.5 264,-101.5 133,-101.5"/>
<text text-anchor="start" x="141" y="-119.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="198.5" y="-108.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_encryption_key</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge14" class="edge">
<title>Node1&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M86.85,-161.36C106.29,-153.48 130.25,-143.76 150.89,-135.39"/>
<polygon fill="midnightblue" stroke="midnightblue" points="152.47,-138.53 160.42,-131.53 149.84,-132.05 152.47,-138.53"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="158,-63 158,-82 239,-82 239,-63 158,-63"/>
<text text-anchor="middle" x="198.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">std::make_pair</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node17 -->
<g id="edge21" class="edge">
<title>Node1&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M60.8,-161.22C75.45,-142.44 102.75,-110.82 133,-92.5 137.76,-89.62 142.98,-87.11 148.32,-84.95"/>
<polygon fill="midnightblue" stroke="midnightblue" points="149.79,-88.14 157.98,-81.41 147.39,-81.56 149.79,-88.14"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="455,-366 455,-385 547,-385 547,-366 455,-366"/>
<text text-anchor="middle" x="501" y="-373" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M395.7,-347.09C413.71,-351.99 435.83,-358.02 455.06,-363.26"/>
<polygon fill="midnightblue" stroke="midnightblue" points="454.24,-366.66 464.81,-365.91 456.08,-359.91 454.24,-366.66"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="583,-309 583,-328 670,-328 670,-309 583,-309"/>
<text text-anchor="middle" x="626.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node2&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M399.6,-334.7C445.4,-331.41 521.48,-325.96 572.54,-322.3"/>
<polygon fill="midnightblue" stroke="midnightblue" points="573,-325.77 582.72,-321.57 572.5,-318.79 573,-325.77"/>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M522.67,-365.96C542.62,-356.75 573.03,-342.72 595.62,-332.29"/>
<polygon fill="midnightblue" stroke="midnightblue" points="597.15,-335.44 604.76,-328.07 594.22,-329.08 597.15,-335.44"/>
</g>
<!-- Node5&#45;&gt;Node2 -->
<g id="edge6" class="edge">
<title>Node5&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M214.08,-232.75C237.13,-256.62 281.28,-301.34 300,-313.5 306.14,-317.49 313.05,-321.03 319.91,-324.08"/>
<polygon fill="midnightblue" stroke="midnightblue" points="318.59,-327.32 329.17,-327.94 321.28,-320.86 318.59,-327.32"/>
</g>
<!-- Node5&#45;&gt;Node4 -->
<g id="edge12" class="edge">
<title>Node5&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M253.7,-232.63C257.3,-234.39 260.77,-236.34 264,-238.5 284.45,-252.15 278.3,-268.95 300,-280.5 345.96,-304.97 492.59,-313.87 572.44,-316.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="572.66,-320.47 582.78,-317.34 572.92,-313.48 572.66,-320.47"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="333.5,-252 333.5,-271 385.5,-271 385.5,-252 333.5,-252"/>
<text text-anchor="middle" x="359.5" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node6 -->
<g id="edge7" class="edge">
<title>Node5&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M253.77,-232.52C276.86,-238.91 303.12,-246.17 323.56,-251.83"/>
<polygon fill="midnightblue" stroke="midnightblue" points="322.81,-255.26 333.39,-254.55 324.68,-248.51 322.81,-255.26"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="311,-202.5 311,-232.5 408,-232.5 408,-202.5 311,-202.5"/>
<text text-anchor="start" x="319" y="-220.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="359.5" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node7 -->
<g id="edge8" class="edge">
<title>Node5&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M264.17,-217.5C276.27,-217.5 288.85,-217.5 300.73,-217.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="300.96,-221 310.96,-217.5 300.96,-214 300.96,-221"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="329.5,-164 329.5,-183 389.5,-183 389.5,-164 329.5,-164"/>
<text text-anchor="middle" x="359.5" y="-171" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node9 -->
<g id="edge11" class="edge">
<title>Node5&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M253.77,-202.48C275.38,-196.5 299.75,-189.76 319.55,-184.28"/>
<polygon fill="midnightblue" stroke="midnightblue" points="320.74,-187.58 329.45,-181.54 318.87,-180.83 320.74,-187.58"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="329.5,-126 329.5,-145 389.5,-145 389.5,-126 329.5,-126"/>
<text text-anchor="middle" x="359.5" y="-133" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node10 -->
<g id="edge13" class="edge">
<title>Node5&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M220.2,-202.39C239.94,-188.52 270.89,-168.1 300,-154.5 306.24,-151.59 313.05,-148.93 319.75,-146.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="321,-149.87 329.39,-143.4 318.8,-143.22 321,-149.87"/>
</g>
<!-- Node7&#45;&gt;Node4 -->
<g id="edge10" class="edge">
<title>Node7&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M403.69,-232.58C441.63,-245.99 498.23,-266.37 547,-285.5 562.66,-291.64 579.9,-298.84 594.22,-304.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="593.05,-308.25 603.62,-308.97 595.81,-301.81 593.05,-308.25"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="474,-208 474,-227 528,-227 528,-208 474,-208"/>
<text text-anchor="middle" x="501" y="-215" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node7&#45;&gt;Node8 -->
<g id="edge9" class="edge">
<title>Node7&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M408.12,-217.5C426.29,-217.5 446.7,-217.5 463.65,-217.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="463.72,-221 473.72,-217.5 463.72,-214 463.72,-221"/>
</g>
<!-- Node11&#45;&gt;Node10 -->
<g id="edge20" class="edge">
<title>Node11&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M264.17,-124.23C282.65,-126.44 302.24,-128.78 318.74,-130.75"/>
<polygon fill="midnightblue" stroke="midnightblue" points="318.76,-134.28 329.11,-131.99 319.59,-127.33 318.76,-134.28"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" target="_top" xlink:title="Compute GCD of two integers using Euler&#39;s algorithm.">
<polygon fill="white" stroke="black" points="300,-88 300,-107 419,-107 419,-88 300,-88"/>
<text text-anchor="middle" x="359.5" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node12 -->
<g id="edge15" class="edge">
<title>Node11&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M264.17,-108.77C272.55,-107.77 281.15,-106.74 289.59,-105.73"/>
<polygon fill="midnightblue" stroke="midnightblue" points="290.26,-109.18 299.77,-104.52 289.43,-102.23 290.26,-109.18"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="327,-50 327,-69 392,-69 392,-50 327,-50"/>
<text text-anchor="middle" x="359.5" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">std::isfinite</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node14 -->
<g id="edge17" class="edge">
<title>Node11&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M238,-101.45C256.65,-94.29 279.41,-85.73 300,-78.5 305.95,-76.41 312.27,-74.27 318.47,-72.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="319.63,-75.53 328.05,-69.09 317.45,-68.87 319.63,-75.53"/>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<title>Node15</title>
<g id="a_node15"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" target="_top" xlink:title="Function to generate a random integer in a given interval.">
<polygon fill="white" stroke="black" points="311,-0.5 311,-30.5 408,-30.5 408,-0.5 311,-0.5"/>
<text text-anchor="start" x="319" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="359.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node15 -->
<g id="edge18" class="edge">
<title>Node11&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M247.72,-101.5C253.49,-98.66 259.08,-95.34 264,-91.5 285.87,-74.42 278.43,-57.95 300,-40.5 302.03,-38.86 304.18,-37.31 306.42,-35.84"/>
<polygon fill="midnightblue" stroke="midnightblue" points="308.49,-38.69 315.37,-30.63 304.97,-32.64 308.49,-38.69"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="471.5,-88 471.5,-107 530.5,-107 530.5,-88 471.5,-88"/>
<text text-anchor="middle" x="501" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node13 -->
<g id="edge16" class="edge">
<title>Node12&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M419.26,-97.5C433.47,-97.5 448.32,-97.5 461.34,-97.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="461.35,-101 471.35,-97.5 461.35,-94 461.35,-101"/>
</g>
<!-- Node16 -->
<g id="node16" class="node">
<title>Node16</title>
<g id="a_node16"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="473.5,-6 473.5,-25 528.5,-25 528.5,-6 473.5,-6"/>
<text text-anchor="middle" x="501" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node16 -->
<g id="edge19" class="edge">
<title>Node15&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M408.12,-15.5C426.16,-15.5 446.4,-15.5 463.29,-15.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="463.32,-19 473.32,-15.5 463.32,-12 463.32,-19"/>
</g>
</g>
</svg>
<g id="navigator" transform="translate(0 0)" fill="#404254">
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
<g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/>
</use>
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/>
</use>
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/>
</use>
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/>
</use>
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
</g>
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
<g id="arrow_out" transform="scale(0.3 0.3)">
<a xlink:href="classciphers_1_1_hill_cipher_a14bfcd14af6cd853130cbacd32e35c13_cgraph_org.svg" target="_base">
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
<path id="arrow"
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
style="fill:#404040;"/>
</a>
</g>
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -1,297 +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.44.1 (20200629.0846)
-->
<!-- Title: ciphers::HillCipher::generate_keys Pages: 1 -->
<svg width="678pt" height="394pt"
viewBox="0.00 0.00 678.00 393.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 389.5)">
<title>ciphers::HillCipher::generate_keys</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-389.5 674,-389.5 674,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Generate encryption and decryption key pair.">
<polygon fill="#bfbfbf" stroke="black" points="0,-161.5 0,-191.5 97,-191.5 97,-161.5 0,-161.5"/>
<text text-anchor="start" x="8" y="-179.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_keys</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="319.5,-328 319.5,-347 399.5,-347 399.5,-328 319.5,-328"/>
<text text-anchor="middle" x="359.5" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M65.8,-191.56C81.97,-205.95 107.89,-227.6 133,-242.5 194.61,-279.05 272.9,-308.67 319.16,-324.63"/>
<polygon fill="midnightblue" stroke="midnightblue" points="318.21,-328 328.8,-327.92 320.47,-321.38 318.21,-328"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#abb2c4dc2b8a59d3dfe0fa22c2adc086b" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<polygon fill="white" stroke="black" points="133,-202.5 133,-232.5 264,-232.5 264,-202.5 133,-202.5"/>
<text text-anchor="start" x="141" y="-220.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="198.5" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M97.14,-189.7C108.74,-192.91 121.34,-196.4 133.56,-199.79"/>
<polygon fill="midnightblue" stroke="midnightblue" points="132.69,-203.18 143.26,-202.47 134.56,-196.43 132.69,-203.18"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a7ca10cd1a0e8e3732391e0427d2d0213" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<polygon fill="white" stroke="black" points="133,-101.5 133,-131.5 264,-131.5 264,-101.5 133,-101.5"/>
<text text-anchor="start" x="141" y="-119.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="198.5" y="-108.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_encryption_key</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge14" class="edge">
<title>Node1&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M86.85,-161.36C106.29,-153.48 130.25,-143.76 150.89,-135.39"/>
<polygon fill="midnightblue" stroke="midnightblue" points="152.47,-138.53 160.42,-131.53 149.84,-132.05 152.47,-138.53"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="158,-63 158,-82 239,-82 239,-63 158,-63"/>
<text text-anchor="middle" x="198.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">std::make_pair</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node17 -->
<g id="edge21" class="edge">
<title>Node1&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M60.8,-161.22C75.45,-142.44 102.75,-110.82 133,-92.5 137.76,-89.62 142.98,-87.11 148.32,-84.95"/>
<polygon fill="midnightblue" stroke="midnightblue" points="149.79,-88.14 157.98,-81.41 147.39,-81.56 149.79,-88.14"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="455,-366 455,-385 547,-385 547,-366 455,-366"/>
<text text-anchor="middle" x="501" y="-373" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M395.7,-347.09C413.71,-351.99 435.83,-358.02 455.06,-363.26"/>
<polygon fill="midnightblue" stroke="midnightblue" points="454.24,-366.66 464.81,-365.91 456.08,-359.91 454.24,-366.66"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="583,-309 583,-328 670,-328 670,-309 583,-309"/>
<text text-anchor="middle" x="626.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node2&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M399.6,-334.7C445.4,-331.41 521.48,-325.96 572.54,-322.3"/>
<polygon fill="midnightblue" stroke="midnightblue" points="573,-325.77 582.72,-321.57 572.5,-318.79 573,-325.77"/>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M522.67,-365.96C542.62,-356.75 573.03,-342.72 595.62,-332.29"/>
<polygon fill="midnightblue" stroke="midnightblue" points="597.15,-335.44 604.76,-328.07 594.22,-329.08 597.15,-335.44"/>
</g>
<!-- Node5&#45;&gt;Node2 -->
<g id="edge6" class="edge">
<title>Node5&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M214.08,-232.75C237.13,-256.62 281.28,-301.34 300,-313.5 306.14,-317.49 313.05,-321.03 319.91,-324.08"/>
<polygon fill="midnightblue" stroke="midnightblue" points="318.59,-327.32 329.17,-327.94 321.28,-320.86 318.59,-327.32"/>
</g>
<!-- Node5&#45;&gt;Node4 -->
<g id="edge12" class="edge">
<title>Node5&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M253.7,-232.63C257.3,-234.39 260.77,-236.34 264,-238.5 284.45,-252.15 278.3,-268.95 300,-280.5 345.96,-304.97 492.59,-313.87 572.44,-316.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="572.66,-320.47 582.78,-317.34 572.92,-313.48 572.66,-320.47"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="333.5,-252 333.5,-271 385.5,-271 385.5,-252 333.5,-252"/>
<text text-anchor="middle" x="359.5" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node6 -->
<g id="edge7" class="edge">
<title>Node5&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M253.77,-232.52C276.86,-238.91 303.12,-246.17 323.56,-251.83"/>
<polygon fill="midnightblue" stroke="midnightblue" points="322.81,-255.26 333.39,-254.55 324.68,-248.51 322.81,-255.26"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="311,-202.5 311,-232.5 408,-232.5 408,-202.5 311,-202.5"/>
<text text-anchor="start" x="319" y="-220.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="359.5" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node7 -->
<g id="edge8" class="edge">
<title>Node5&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M264.17,-217.5C276.27,-217.5 288.85,-217.5 300.73,-217.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="300.96,-221 310.96,-217.5 300.96,-214 300.96,-221"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="329.5,-164 329.5,-183 389.5,-183 389.5,-164 329.5,-164"/>
<text text-anchor="middle" x="359.5" y="-171" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node9 -->
<g id="edge11" class="edge">
<title>Node5&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M253.77,-202.48C275.38,-196.5 299.75,-189.76 319.55,-184.28"/>
<polygon fill="midnightblue" stroke="midnightblue" points="320.74,-187.58 329.45,-181.54 318.87,-180.83 320.74,-187.58"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="329.5,-126 329.5,-145 389.5,-145 389.5,-126 329.5,-126"/>
<text text-anchor="middle" x="359.5" y="-133" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node10 -->
<g id="edge13" class="edge">
<title>Node5&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M220.2,-202.39C239.94,-188.52 270.89,-168.1 300,-154.5 306.24,-151.59 313.05,-148.93 319.75,-146.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="321,-149.87 329.39,-143.4 318.8,-143.22 321,-149.87"/>
</g>
<!-- Node7&#45;&gt;Node4 -->
<g id="edge10" class="edge">
<title>Node7&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M403.69,-232.58C441.63,-245.99 498.23,-266.37 547,-285.5 562.66,-291.64 579.9,-298.84 594.22,-304.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="593.05,-308.25 603.62,-308.97 595.81,-301.81 593.05,-308.25"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="474,-208 474,-227 528,-227 528,-208 474,-208"/>
<text text-anchor="middle" x="501" y="-215" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node7&#45;&gt;Node8 -->
<g id="edge9" class="edge">
<title>Node7&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M408.12,-217.5C426.29,-217.5 446.7,-217.5 463.65,-217.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="463.72,-221 473.72,-217.5 463.72,-214 463.72,-221"/>
</g>
<!-- Node11&#45;&gt;Node10 -->
<g id="edge20" class="edge">
<title>Node11&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M264.17,-124.23C282.65,-126.44 302.24,-128.78 318.74,-130.75"/>
<polygon fill="midnightblue" stroke="midnightblue" points="318.76,-134.28 329.11,-131.99 319.59,-127.33 318.76,-134.28"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" target="_top" xlink:title="Compute GCD of two integers using Euler&#39;s algorithm.">
<polygon fill="white" stroke="black" points="300,-88 300,-107 419,-107 419,-88 300,-88"/>
<text text-anchor="middle" x="359.5" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node12 -->
<g id="edge15" class="edge">
<title>Node11&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M264.17,-108.77C272.55,-107.77 281.15,-106.74 289.59,-105.73"/>
<polygon fill="midnightblue" stroke="midnightblue" points="290.26,-109.18 299.77,-104.52 289.43,-102.23 290.26,-109.18"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="327,-50 327,-69 392,-69 392,-50 327,-50"/>
<text text-anchor="middle" x="359.5" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">std::isfinite</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node14 -->
<g id="edge17" class="edge">
<title>Node11&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M238,-101.45C256.65,-94.29 279.41,-85.73 300,-78.5 305.95,-76.41 312.27,-74.27 318.47,-72.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="319.63,-75.53 328.05,-69.09 317.45,-68.87 319.63,-75.53"/>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<title>Node15</title>
<g id="a_node15"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" target="_top" xlink:title="Function to generate a random integer in a given interval.">
<polygon fill="white" stroke="black" points="311,-0.5 311,-30.5 408,-30.5 408,-0.5 311,-0.5"/>
<text text-anchor="start" x="319" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="359.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node15 -->
<g id="edge18" class="edge">
<title>Node11&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M247.72,-101.5C253.49,-98.66 259.08,-95.34 264,-91.5 285.87,-74.42 278.43,-57.95 300,-40.5 302.03,-38.86 304.18,-37.31 306.42,-35.84"/>
<polygon fill="midnightblue" stroke="midnightblue" points="308.49,-38.69 315.37,-30.63 304.97,-32.64 308.49,-38.69"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="471.5,-88 471.5,-107 530.5,-107 530.5,-88 471.5,-88"/>
<text text-anchor="middle" x="501" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node13 -->
<g id="edge16" class="edge">
<title>Node12&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M419.26,-97.5C433.47,-97.5 448.32,-97.5 461.34,-97.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="461.35,-101 471.35,-97.5 461.35,-94 461.35,-101"/>
</g>
<!-- Node16 -->
<g id="node16" class="node">
<title>Node16</title>
<g id="a_node16"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="473.5,-6 473.5,-25 528.5,-25 528.5,-6 473.5,-6"/>
<text text-anchor="middle" x="501" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node16 -->
<g id="edge19" class="edge">
<title>Node15&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M408.12,-15.5C426.16,-15.5 446.4,-15.5 463.29,-15.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="463.32,-19 473.32,-15.5 463.32,-12 463.32,-19"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,9 +0,0 @@
<map id="ciphers::HillCipher::generate_encryption_key" name="ciphers::HillCipher::generate_encryption_key">
<area shape="rect" id="node1" title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid..." alt="" coords="5,78,180,119"/>
<area shape="rect" id="node2" href="$d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" title="Compute GCD of two integers using Euler&#39;s algorithm." alt="" coords="228,5,387,32"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/isfinite.html#" title=" " alt="" coords="264,56,351,83"/>
<area shape="rect" id="node5" href="$d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" title="Function to generate a random integer in a given interval." alt="" coords="243,107,372,149"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="267,173,347,200"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="435,5,513,32"/>
<area shape="rect" id="node6" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="437,115,511,141"/>
</map>

View File

@@ -1 +0,0 @@
a6ced2ff2420a81ad90fc98eaa8a5fee

View File

@@ -1,114 +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.44.1 (20200629.0846)
-->
<!-- Title: ciphers::HillCipher::generate_encryption_key Pages: 1 -->
<svg width="389pt" height="154pt"
viewBox="0.00 0.00 389.00 154.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 150)">
<title>ciphers::HillCipher::generate_encryption_key</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-150 385,-150 385,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<polygon fill="#bfbfbf" stroke="black" points="0,-61 0,-91 131,-91 131,-61 0,-61"/>
<text text-anchor="start" x="8" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="65.5" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_encryption_key</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" target="_top" xlink:title="Compute GCD of two integers using Euler&#39;s algorithm.">
<polygon fill="white" stroke="black" points="167,-126.5 167,-145.5 286,-145.5 286,-126.5 167,-126.5"/>
<text text-anchor="middle" x="226.5" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</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="M101.6,-91.06C120.79,-99.1 145.06,-108.97 167,-117 172.72,-119.09 178.79,-121.19 184.78,-123.2"/>
<polygon fill="midnightblue" stroke="midnightblue" points="184.1,-126.66 194.69,-126.46 186.29,-120.01 184.1,-126.66"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="194,-88.5 194,-107.5 259,-107.5 259,-88.5 194,-88.5"/>
<text text-anchor="middle" x="226.5" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::isfinite</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M131.17,-84.95C148.94,-87.41 167.74,-90.01 183.84,-92.24"/>
<polygon fill="midnightblue" stroke="midnightblue" points="183.61,-95.74 193.99,-93.64 184.57,-88.8 183.61,-95.74"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" target="_top" xlink:title="Function to generate a random integer in a given interval.">
<polygon fill="white" stroke="black" points="178,-39 178,-69 275,-69 275,-39 178,-39"/>
<text text-anchor="start" x="186" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="226.5" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M131.17,-67.05C143.27,-65.38 155.85,-63.64 167.73,-61.99"/>
<polygon fill="midnightblue" stroke="midnightblue" points="168.53,-65.42 177.96,-60.58 167.57,-58.48 168.53,-65.42"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="196.5,-0.5 196.5,-19.5 256.5,-19.5 256.5,-0.5 196.5,-0.5"/>
<text text-anchor="middle" x="226.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<title>Node1&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M96.42,-60.82C116.19,-51.09 142.81,-38.54 167,-29 173.34,-26.5 180.16,-24.06 186.82,-21.82"/>
<polygon fill="midnightblue" stroke="midnightblue" points="187.98,-25.12 196.39,-18.68 185.79,-18.47 187.98,-25.12"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="322,-126.5 322,-145.5 381,-145.5 381,-126.5 322,-126.5"/>
<text text-anchor="middle" x="351.5" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M286.12,-136C294.72,-136 303.4,-136 311.48,-136"/>
<polygon fill="midnightblue" stroke="midnightblue" points="311.7,-139.5 321.7,-136 311.7,-132.5 311.7,-139.5"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="324,-44.5 324,-63.5 379,-63.5 379,-44.5 324,-44.5"/>
<text text-anchor="middle" x="351.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node5&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M275.06,-54C287.81,-54 301.42,-54 313.51,-54"/>
<polygon fill="midnightblue" stroke="midnightblue" points="313.69,-57.5 323.69,-54 313.69,-50.5 313.69,-57.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -1,11 +0,0 @@
<map id="ciphers::HillCipher::generate_decryption_key" name="ciphers::HillCipher::generate_decryption_key">
<area shape="rect" id="node1" title="Generate decryption matrix from an encryption matrix key." alt="" coords="5,179,180,221"/>
<area shape="rect" id="node2" href="$d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" title=" " alt="" coords="239,56,346,83"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="576,81,692,108"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/program/exit.html#" title=" " alt="" coords="258,157,327,184"/>
<area shape="rect" id="node6" href="$d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b" title=" " alt="" coords="228,209,357,250"/>
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/round.html#" title=" " alt="" coords="253,275,333,301"/>
<area shape="rect" id="node9" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="253,325,333,352"/>
<area shape="rect" id="node3" href="$d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" title=" " alt="" coords="405,5,528,32"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="431,216,503,243"/>
</map>

View File

@@ -1 +0,0 @@
caed926b5285caf4aa15dd928b5c3fd1

View File

@@ -1,250 +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.44.1 (20200629.0846)
-->
<!-- Title: ciphers::HillCipher::generate_decryption_key Pages: 1 -->
<!--zoomable 268 -->
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
<style type="text/css"><![CDATA[
.edge:hover path { stroke: red; }
.edge:hover polygon { stroke: red; fill: red; }
]]></style>
<script type="text/javascript"><![CDATA[
var edges = document.getElementsByTagName('g');
if (edges && edges.length) {
for (var i=0;i<edges.length;i++) {
if (edges[i].id.substr(0,4)=='edge') {
edges[i].setAttribute('class','edge');
}
}
}
]]></script>
<defs>
<circle id="rim" cx="0" cy="0" r="7"/>
<circle id="rim2" cx="0" cy="0" r="3.5"/>
<g id="zoomPlus">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/>
</use>
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
</g>
<g id="zoomMin">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/>
</use>
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
</g>
<g id="dirArrow">
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="resetDef">
<use xlink:href="#rim2" fill="#404040">
<set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/>
</use>
</g>
</defs>
<script type="text/javascript">
var viewWidth = 523;
var viewHeight = 268;
var sectionId = 'dynsection-4';
</script>
<script xlink:href="../../svgpan.js"/>
<svg id="graph" class="graph">
<g id="viewport">
<title>ciphers::HillCipher::generate_decryption_key</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-264 519,-264 519,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Generate decryption matrix from an encryption matrix key.">
<polygon fill="#bfbfbf" stroke="black" points="0,-99 0,-129 131,-129 131,-99 0,-99"/>
<text text-anchor="start" x="8" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="65.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="175.5,-202.5 175.5,-221.5 255.5,-221.5 255.5,-202.5 175.5,-202.5"/>
<text text-anchor="middle" x="215.5" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</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="M85.1,-129.17C104.8,-144.87 137.1,-169.62 167,-188 172.58,-191.43 178.71,-194.8 184.66,-197.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="183.25,-201.09 193.75,-202.45 186.39,-194.83 183.25,-201.09"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="428,-183.5 428,-202.5 515,-202.5 515,-183.5 428,-183.5"/>
<text text-anchor="middle" x="471.5" y="-190.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge10" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M97.46,-129.11C116.97,-138 142.94,-148.7 167,-155 253.08,-177.53 356.49,-186.84 417.68,-190.59"/>
<polygon fill="midnightblue" stroke="midnightblue" points="417.67,-194.1 427.86,-191.19 418.08,-187.11 417.67,-194.1"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="189.5,-126.5 189.5,-145.5 241.5,-145.5 241.5,-126.5 189.5,-126.5"/>
<text text-anchor="middle" x="215.5" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M131.41,-123.65C147.91,-126.1 165.03,-128.65 179.4,-130.78"/>
<polygon fill="midnightblue" stroke="midnightblue" points="178.93,-134.25 189.34,-132.26 179.96,-127.33 178.93,-134.25"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="167,-77 167,-107 264,-107 264,-77 167,-77"/>
<text text-anchor="start" x="175" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="215.5" y="-84" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge6" class="edge">
<title>Node1&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M131.41,-104.35C139.92,-103.09 148.58,-101.8 156.95,-100.55"/>
<polygon fill="midnightblue" stroke="midnightblue" points="157.61,-104 166.99,-99.06 156.58,-97.07 157.61,-104"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="185.5,-38.5 185.5,-57.5 245.5,-57.5 245.5,-38.5 185.5,-38.5"/>
<text text-anchor="middle" x="215.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node8 -->
<g id="edge9" class="edge">
<title>Node1&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M97.53,-98.93C117.29,-89.48 143.49,-77.19 167,-67 171.24,-65.16 175.72,-63.29 180.16,-61.46"/>
<polygon fill="midnightblue" stroke="midnightblue" points="181.78,-64.59 189.74,-57.6 179.15,-58.1 181.78,-64.59"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="185.5,-0.5 185.5,-19.5 245.5,-19.5 245.5,-0.5 185.5,-0.5"/>
<text text-anchor="middle" x="215.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node9 -->
<g id="edge11" class="edge">
<title>Node1&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M81.3,-98.77C99.92,-80.3 133.51,-49.13 167,-29 170.15,-27.1 173.53,-25.32 176.98,-23.67"/>
<polygon fill="midnightblue" stroke="midnightblue" points="178.43,-26.86 186.15,-19.61 175.59,-20.46 178.43,-26.86"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="300,-240.5 300,-259.5 392,-259.5 392,-240.5 300,-240.5"/>
<text text-anchor="middle" x="346" y="-247.5" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M248.93,-221.59C265.21,-226.4 285.14,-232.3 302.62,-237.47"/>
<polygon fill="midnightblue" stroke="midnightblue" points="302,-240.93 312.58,-240.41 303.99,-234.22 302,-240.93"/>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node2&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M255.63,-209.07C299.06,-205.82 369.38,-200.56 417.68,-196.95"/>
<polygon fill="midnightblue" stroke="midnightblue" points="418.22,-200.42 427.93,-196.18 417.7,-193.44 418.22,-200.42"/>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M367.67,-240.46C387.62,-231.25 418.03,-217.22 440.62,-206.79"/>
<polygon fill="midnightblue" stroke="midnightblue" points="442.15,-209.94 449.76,-202.57 439.22,-203.58 442.15,-209.94"/>
</g>
<!-- Node6&#45;&gt;Node4 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M256.36,-107.07C292.01,-120.65 345.64,-141.28 392,-160 407.48,-166.25 424.58,-173.41 438.86,-179.46"/>
<polygon fill="midnightblue" stroke="midnightblue" points="437.66,-182.75 448.24,-183.44 440.4,-176.31 437.66,-182.75"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="319,-82.5 319,-101.5 373,-101.5 373,-82.5 319,-82.5"/>
<text text-anchor="middle" x="346" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge7" class="edge">
<title>Node6&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M264.35,-92C279.02,-92 294.91,-92 308.68,-92"/>
<polygon fill="midnightblue" stroke="midnightblue" points="308.74,-95.5 318.74,-92 308.74,-88.5 308.74,-95.5"/>
</g>
</g>
</svg>
<g id="navigator" transform="translate(0 0)" fill="#404254">
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
<g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/>
</use>
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/>
</use>
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/>
</use>
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)">
<use xlink:href="#rim" fill="#404040">
<set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/>
</use>
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
</g>
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
<g id="arrow_out" transform="scale(0.3 0.3)">
<a xlink:href="classciphers_1_1_hill_cipher_abb2c4dc2b8a59d3dfe0fa22c2adc086b_cgraph_org.svg" target="_base">
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
<path id="arrow"
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
style="fill:#404040;"/>
</a>
</g>
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,162 +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.44.1 (20200629.0846)
-->
<!-- Title: ciphers::HillCipher::generate_decryption_key Pages: 1 -->
<svg width="523pt" height="268pt"
viewBox="0.00 0.00 523.00 268.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 264)">
<title>ciphers::HillCipher::generate_decryption_key</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-264 519,-264 519,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Generate decryption matrix from an encryption matrix key.">
<polygon fill="#bfbfbf" stroke="black" points="0,-99 0,-129 131,-129 131,-99 0,-99"/>
<text text-anchor="start" x="8" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="65.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="175.5,-202.5 175.5,-221.5 255.5,-221.5 255.5,-202.5 175.5,-202.5"/>
<text text-anchor="middle" x="215.5" y="-209.5" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</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="M85.1,-129.17C104.8,-144.87 137.1,-169.62 167,-188 172.58,-191.43 178.71,-194.8 184.66,-197.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="183.25,-201.09 193.75,-202.45 186.39,-194.83 183.25,-201.09"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="428,-183.5 428,-202.5 515,-202.5 515,-183.5 428,-183.5"/>
<text text-anchor="middle" x="471.5" y="-190.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge10" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M97.46,-129.11C116.97,-138 142.94,-148.7 167,-155 253.08,-177.53 356.49,-186.84 417.68,-190.59"/>
<polygon fill="midnightblue" stroke="midnightblue" points="417.67,-194.1 427.86,-191.19 418.08,-187.11 417.67,-194.1"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="189.5,-126.5 189.5,-145.5 241.5,-145.5 241.5,-126.5 189.5,-126.5"/>
<text text-anchor="middle" x="215.5" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M131.41,-123.65C147.91,-126.1 165.03,-128.65 179.4,-130.78"/>
<polygon fill="midnightblue" stroke="midnightblue" points="178.93,-134.25 189.34,-132.26 179.96,-127.33 178.93,-134.25"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="167,-77 167,-107 264,-107 264,-77 167,-77"/>
<text text-anchor="start" x="175" y="-95" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="215.5" y="-84" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge6" class="edge">
<title>Node1&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M131.41,-104.35C139.92,-103.09 148.58,-101.8 156.95,-100.55"/>
<polygon fill="midnightblue" stroke="midnightblue" points="157.61,-104 166.99,-99.06 156.58,-97.07 157.61,-104"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="185.5,-38.5 185.5,-57.5 245.5,-57.5 245.5,-38.5 185.5,-38.5"/>
<text text-anchor="middle" x="215.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node8 -->
<g id="edge9" class="edge">
<title>Node1&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M97.53,-98.93C117.29,-89.48 143.49,-77.19 167,-67 171.24,-65.16 175.72,-63.29 180.16,-61.46"/>
<polygon fill="midnightblue" stroke="midnightblue" points="181.78,-64.59 189.74,-57.6 179.15,-58.1 181.78,-64.59"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="185.5,-0.5 185.5,-19.5 245.5,-19.5 245.5,-0.5 185.5,-0.5"/>
<text text-anchor="middle" x="215.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node9 -->
<g id="edge11" class="edge">
<title>Node1&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M81.3,-98.77C99.92,-80.3 133.51,-49.13 167,-29 170.15,-27.1 173.53,-25.32 176.98,-23.67"/>
<polygon fill="midnightblue" stroke="midnightblue" points="178.43,-26.86 186.15,-19.61 175.59,-20.46 178.43,-26.86"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="300,-240.5 300,-259.5 392,-259.5 392,-240.5 300,-240.5"/>
<text text-anchor="middle" x="346" y="-247.5" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M248.93,-221.59C265.21,-226.4 285.14,-232.3 302.62,-237.47"/>
<polygon fill="midnightblue" stroke="midnightblue" points="302,-240.93 312.58,-240.41 303.99,-234.22 302,-240.93"/>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node2&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M255.63,-209.07C299.06,-205.82 369.38,-200.56 417.68,-196.95"/>
<polygon fill="midnightblue" stroke="midnightblue" points="418.22,-200.42 427.93,-196.18 417.7,-193.44 418.22,-200.42"/>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M367.67,-240.46C387.62,-231.25 418.03,-217.22 440.62,-206.79"/>
<polygon fill="midnightblue" stroke="midnightblue" points="442.15,-209.94 449.76,-202.57 439.22,-203.58 442.15,-209.94"/>
</g>
<!-- Node6&#45;&gt;Node4 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M256.36,-107.07C292.01,-120.65 345.64,-141.28 392,-160 407.48,-166.25 424.58,-173.41 438.86,-179.46"/>
<polygon fill="midnightblue" stroke="midnightblue" points="437.66,-182.75 448.24,-183.44 440.4,-176.31 437.66,-182.75"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="319,-82.5 319,-101.5 373,-101.5 373,-82.5 319,-82.5"/>
<text text-anchor="middle" x="346" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge7" class="edge">
<title>Node6&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M264.35,-92C279.02,-92 294.91,-92 308.68,-92"/>
<polygon fill="midnightblue" stroke="midnightblue" points="308.74,-95.5 318.74,-92 308.74,-88.5 308.74,-95.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -0,0 +1,286 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: hashing/double_hash_hash_table.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
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>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<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>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<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');
/* @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 */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('d6/d80/double__hash__hash__table_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">double_hash_hash_table.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Storage mechanism using <a href="https://en.wikipedia.org/wiki/Double_hashing">double-hashed keys</a>.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;memory&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for double_hash_hash_table.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/dda/double__hash__hash__table_8cpp__incl.svg" width="259" height="127"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a 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="../../d9/dde/structdouble__hashing_1_1_entry.html">double_hashing::Entry</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d0/d65/namespacedouble__hashing"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html">double_hashing</a></td></tr>
<tr class="memdesc:d0/d65/namespacedouble__hashing"><td class="mdescLeft">&#160;</td><td class="mdescRight">An implementation of hash table using <a href="https://en.wikipedia.org/wiki/Double_hashing">double hashing</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="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a4b68c58d0e039662991f8e220129efd9"><td class="memItemLeft" align="right" valign="top"><a id="a4b68c58d0e039662991f8e220129efd9"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::Entry</b> = struct <a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html">Entry</a></td></tr>
<tr class="separator:a4b68c58d0e039662991f8e220129efd9"><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>
Functions</h2></td></tr>
<tr class="memitem:ac2adfce49ac57f6dbd1778d2c1ce0d2b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#ac2adfce49ac57f6dbd1778d2c1ce0d2b">double_hashing::putProber</a> (const <a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html">Entry</a> &amp;entry, int key)</td></tr>
<tr class="separator:ac2adfce49ac57f6dbd1778d2c1ce0d2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29f543e2626bad58907661e1e45028a6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a29f543e2626bad58907661e1e45028a6">double_hashing::searchingProber</a> (const <a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html">Entry</a> &amp;entry, int key)</td></tr>
<tr class="separator:a29f543e2626bad58907661e1e45028a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79a9c914a6c68275b3640303d7faad8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a79a9c914a6c68275b3640303d7faad8a">double_hashing::add</a> (int key)</td></tr>
<tr class="separator:a79a9c914a6c68275b3640303d7faad8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d90726ed1de7b3d2ae261baed048003"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a0d90726ed1de7b3d2ae261baed048003">double_hashing::hashFxn</a> (int key)</td></tr>
<tr class="memdesc:a0d90726ed1de7b3d2ae261baed048003"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hash a key. Uses the STL library's <code><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/hash.html">std::hash()</a></code> function. <a href="../../d0/d65/namespacedouble__hashing.html#a0d90726ed1de7b3d2ae261baed048003">More...</a><br /></td></tr>
<tr class="separator:a0d90726ed1de7b3d2ae261baed048003"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33968a1178289ab61445dd4000df7082"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a33968a1178289ab61445dd4000df7082">double_hashing::otherHashFxn</a> (int key)</td></tr>
<tr class="memdesc:a33968a1178289ab61445dd4000df7082"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for second hash function. <a href="../../d0/d65/namespacedouble__hashing.html#a33968a1178289ab61445dd4000df7082">More...</a><br /></td></tr>
<tr class="separator:a33968a1178289ab61445dd4000df7082"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f8ff4fb018e1bb32d67d8a1885d3200"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a8f8ff4fb018e1bb32d67d8a1885d3200">double_hashing::doubleHash</a> (int key, bool searching)</td></tr>
<tr class="memdesc:a8f8ff4fb018e1bb32d67d8a1885d3200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs double hashing to resolve collisions. <a href="../../d0/d65/namespacedouble__hashing.html#a8f8ff4fb018e1bb32d67d8a1885d3200">More...</a><br /></td></tr>
<tr class="separator:a8f8ff4fb018e1bb32d67d8a1885d3200"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e901418c759627557eff359b8db38cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a1e901418c759627557eff359b8db38cd">double_hashing::display</a> ()</td></tr>
<tr class="separator:a1e901418c759627557eff359b8db38cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4981819aae8bc7e7beeaef02615e30d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#af4981819aae8bc7e7beeaef02615e30d">double_hashing::rehash</a> ()</td></tr>
<tr class="separator:af4981819aae8bc7e7beeaef02615e30d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28083ecac6eb94b643281875c8665931"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a28083ecac6eb94b643281875c8665931">double_hashing::remove</a> (int key)</td></tr>
<tr class="separator:a28083ecac6eb94b643281875c8665931"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c652b2e467e5d250dfe3bed83b12560"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a9c652b2e467e5d250dfe3bed83b12560">double_hashing::addInfo</a> (int key)</td></tr>
<tr class="separator:a9c652b2e467e5d250dfe3bed83b12560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d06e4598569526294f10104875f6824"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d65/namespacedouble__hashing.html#a5d06e4598569526294f10104875f6824">double_hashing::removalInfo</a> (int key)</td></tr>
<tr class="separator:a5d06e4598569526294f10104875f6824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d80/double__hash__hash__table_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a77d33a0c49294b9ec22ad86eeff79585"><td class="memItemLeft" align="right" valign="top"><a id="a77d33a0c49294b9ec22ad86eeff79585"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::notPresent</b></td></tr>
<tr class="separator:a77d33a0c49294b9ec22ad86eeff79585"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e2ff0f9cfc7b54e60a6561f792d8b26"><td class="memItemLeft" align="right" valign="top"><a id="a0e2ff0f9cfc7b54e60a6561f792d8b26"></a>
<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="../../d9/dde/structdouble__hashing_1_1_entry.html">Entry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::table</b></td></tr>
<tr class="separator:a0e2ff0f9cfc7b54e60a6561f792d8b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60a52265027518b25655d730f960013a"><td class="memItemLeft" align="right" valign="top"><a id="a60a52265027518b25655d730f960013a"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::totalSize</b></td></tr>
<tr class="separator:a60a52265027518b25655d730f960013a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e9a7219d34e781e4e73d74a968b26c1"><td class="memItemLeft" align="right" valign="top"><a id="a4e9a7219d34e781e4e73d74a968b26c1"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::tomb</b> = -1</td></tr>
<tr class="separator:a4e9a7219d34e781e4e73d74a968b26c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f5323b52037218cf5ae888778b7f980"><td class="memItemLeft" align="right" valign="top"><a id="a5f5323b52037218cf5ae888778b7f980"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::size</b></td></tr>
<tr class="separator:a5f5323b52037218cf5ae888778b7f980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5d042a7f6038a2ec9e5718d0c7fb31f"><td class="memItemLeft" align="right" valign="top"><a id="ae5d042a7f6038a2ec9e5718d0c7fb31f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>double_hashing::rehashing</b></td></tr>
<tr class="separator:ae5d042a7f6038a2ec9e5718d0c7fb31f"><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>Storage mechanism using <a href="https://en.wikipedia.org/wiki/Double_hashing">double-hashed keys</a>. </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/achance6">achance6</a> </dd>
<dd>
<a href="https://github.com/kvedala">Krishna Vedala</a> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The implementation can be optimized by using OOP style. </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main program </p><dl class="section return"><dt>Returns</dt><dd>0 on success </dd></dl>
<div class="fragment"><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordtype">int</span> cmd = 0, hash = 0, key = 0;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</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 initial size of Hash Table. = &quot;</span>;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; totalSize;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; table = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;Entry&gt;</a>(totalSize);</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">bool</span> loop = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">while</span> (loop) {</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</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="l00258"></a><span class="lineno"> 258</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;PLEASE CHOOSE -&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="l00259"></a><span class="lineno"> 259</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;1. Add key. (Numeric only)&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="l00260"></a><span class="lineno"> 260</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;2. Remove key.&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="l00261"></a><span class="lineno"> 261</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;3. Find key.&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="l00262"></a><span class="lineno"> 262</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;4. Generate Hash. (Numeric only)&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="l00263"></a><span class="lineno"> 263</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;5. Display Hash table.&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="l00264"></a><span class="lineno"> 264</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;6. Exit.&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="l00265"></a><span class="lineno"> 265</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; cmd;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">switch</span> (cmd) {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">case</span> 1:</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</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 key to add = &quot;</span>;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; key;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="../../d0/d65/namespacedouble__hashing.html#a9c652b2e467e5d250dfe3bed83b12560">double_hashing::addInfo</a>(key);</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">case</span> 2:</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</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 key to remove = &quot;</span>;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; key;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="../../d0/d65/namespacedouble__hashing.html#a5d06e4598569526294f10104875f6824">double_hashing::removalInfo</a>(key);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">case</span> 3: {</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</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 key to search = &quot;</span>;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; key;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="../../d9/dde/structdouble__hashing_1_1_entry.html">Entry</a> entry = table[<a class="code" href="../../d0/d65/namespacedouble__hashing.html#a8f8ff4fb018e1bb32d67d8a1885d3200">double_hashing::doubleHash</a>(key, <span class="keyword">true</span>)];</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (entry.<a class="code" href="../../d9/dde/structdouble__hashing_1_1_entry.html#ae114967c89dbba3b754dc4976bba3248">key</a> == double_hashing::notPresent) {</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Key not present&quot;</span>;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">case</span> 4:</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Enter element to generate hash = &quot;</span>;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_istream.html">std::cin</a> &gt;&gt; key;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</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;Hash of &quot;</span> &lt;&lt; key</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; &lt;&lt; <span class="stringliteral">&quot; is = &quot;</span> &lt;&lt; <a class="code" href="../../d0/d65/namespacedouble__hashing.html#a0d90726ed1de7b3d2ae261baed048003">double_hashing::hashFxn</a>(key);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">case</span> 5:</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="../../d0/d65/namespacedouble__hashing.html#a1e901418c759627557eff359b8db38cd">double_hashing::display</a>();</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; loop = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">// delete[] table;</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</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="l00301"></a><span class="lineno"> 301</span>&#160; }</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="astructdouble__hashing_1_1_entry_html"><div class="ttname"><a href="../../d9/dde/structdouble__hashing_1_1_entry.html">double_hashing::Entry</a></div><div class="ttdef"><b>Definition:</b> double_hash_hash_table.cpp:36</div></div>
<div class="ttc" id="anamespacedouble__hashing_html_a9c652b2e467e5d250dfe3bed83b12560"><div class="ttname"><a href="../../d0/d65/namespacedouble__hashing.html#a9c652b2e467e5d250dfe3bed83b12560">double_hashing::addInfo</a></div><div class="ttdeci">void addInfo(int key)</div><div class="ttdef"><b>Definition:</b> double_hash_hash_table.cpp:212</div></div>
<div class="ttc" id="anamespacedouble__hashing_html_a5d06e4598569526294f10104875f6824"><div class="ttname"><a href="../../d0/d65/namespacedouble__hashing.html#a5d06e4598569526294f10104875f6824">double_hashing::removalInfo</a></div><div class="ttdeci">void removalInfo(int key)</div><div class="ttdef"><b>Definition:</b> double_hash_hash_table.cpp:227</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 class="ttdoc">STL class.</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="anamespacedouble__hashing_html_a0d90726ed1de7b3d2ae261baed048003"><div class="ttname"><a href="../../d0/d65/namespacedouble__hashing.html#a0d90726ed1de7b3d2ae261baed048003">double_hashing::hashFxn</a></div><div class="ttdeci">size_t hashFxn(int key)</div><div class="ttdoc">Hash a key. Uses the STL library's std::hash() function.</div><div class="ttdef"><b>Definition:</b> double_hash_hash_table.cpp:47</div></div>
<div class="ttc" id="anamespacedouble__hashing_html_a1e901418c759627557eff359b8db38cd"><div class="ttname"><a href="../../d0/d65/namespacedouble__hashing.html#a1e901418c759627557eff359b8db38cd">double_hashing::display</a></div><div class="ttdeci">void display()</div><div class="ttdef"><b>Definition:</b> double_hash_hash_table.cpp:143</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="anamespacedouble__hashing_html_a8f8ff4fb018e1bb32d67d8a1885d3200"><div class="ttname"><a href="../../d0/d65/namespacedouble__hashing.html#a8f8ff4fb018e1bb32d67d8a1885d3200">double_hashing::doubleHash</a></div><div class="ttdeci">int doubleHash(int key, bool searching)</div><div class="ttdoc">Performs double hashing to resolve collisions.</div><div class="ttdef"><b>Definition:</b> double_hash_hash_table.cpp:71</div></div>
<div class="ttc" id="astructdouble__hashing_1_1_entry_html_ae114967c89dbba3b754dc4976bba3248"><div class="ttname"><a href="../../d9/dde/structdouble__hashing_1_1_entry.html#ae114967c89dbba3b754dc4976bba3248">double_hashing::Entry::key</a></div><div class="ttdeci">int key</div><div class="ttdoc">key value</div><div class="ttdef"><b>Definition:</b> double_hash_hash_table.cpp:38</div></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>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_ece9b94c107bbaa1dd68197a8c9983b9.html">hashing</a></li><li class="navelem"><a class="el" href="../../d6/d80/double__hash__hash__table_8cpp.html">double_hash_hash_table.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,23 @@
var double__hash__hash__table_8cpp =
[
[ "Entry", "d9/dde/structdouble__hashing_1_1_entry.html", "d9/dde/structdouble__hashing_1_1_entry" ],
[ "Entry", "d6/d80/double__hash__hash__table_8cpp.html#a4b68c58d0e039662991f8e220129efd9", null ],
[ "add", "d6/d80/double__hash__hash__table_8cpp.html#a79a9c914a6c68275b3640303d7faad8a", null ],
[ "addInfo", "d6/d80/double__hash__hash__table_8cpp.html#a9c652b2e467e5d250dfe3bed83b12560", null ],
[ "display", "d6/d80/double__hash__hash__table_8cpp.html#a1e901418c759627557eff359b8db38cd", null ],
[ "doubleHash", "d6/d80/double__hash__hash__table_8cpp.html#a8f8ff4fb018e1bb32d67d8a1885d3200", null ],
[ "hashFxn", "d6/d80/double__hash__hash__table_8cpp.html#a0d90726ed1de7b3d2ae261baed048003", null ],
[ "main", "d6/d80/double__hash__hash__table_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ],
[ "otherHashFxn", "d6/d80/double__hash__hash__table_8cpp.html#a33968a1178289ab61445dd4000df7082", null ],
[ "putProber", "d6/d80/double__hash__hash__table_8cpp.html#ac2adfce49ac57f6dbd1778d2c1ce0d2b", null ],
[ "rehash", "d6/d80/double__hash__hash__table_8cpp.html#af4981819aae8bc7e7beeaef02615e30d", null ],
[ "removalInfo", "d6/d80/double__hash__hash__table_8cpp.html#a5d06e4598569526294f10104875f6824", null ],
[ "remove", "d6/d80/double__hash__hash__table_8cpp.html#a28083ecac6eb94b643281875c8665931", null ],
[ "searchingProber", "d6/d80/double__hash__hash__table_8cpp.html#a29f543e2626bad58907661e1e45028a6", null ],
[ "notPresent", "d6/d80/double__hash__hash__table_8cpp.html#a77d33a0c49294b9ec22ad86eeff79585", null ],
[ "rehashing", "d6/d80/double__hash__hash__table_8cpp.html#ae5d042a7f6038a2ec9e5718d0c7fb31f", null ],
[ "size", "d6/d80/double__hash__hash__table_8cpp.html#a5f5323b52037218cf5ae888778b7f980", null ],
[ "table", "d6/d80/double__hash__hash__table_8cpp.html#a0e2ff0f9cfc7b54e60a6561f792d8b26", null ],
[ "tomb", "d6/d80/double__hash__hash__table_8cpp.html#a4e9a7219d34e781e4e73d74a968b26c1", null ],
[ "totalSize", "d6/d80/double__hash__hash__table_8cpp.html#a60a52265027518b25655d730f960013a", null ]
];