Documentation for 0953376d31

This commit is contained in:
github-actions
2023-06-16 21:18:14 +00:00
parent 26f1eee566
commit 14deeecd50
7241 changed files with 234176 additions and 54779 deletions

View File

@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.6"/>
<meta name="generator" content="Doxygen 1.9.7"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers/hill_cipher.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
@@ -41,7 +41,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<!-- Generated by Doxygen 1.9.7 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -120,8 +120,7 @@ $(document).ready(function(){initNavTree('d7/db9/hill__cipher_8cpp.html','../../
</div><div class="textblock"><div class="dynheader">
Include dependency graph for hill_cipher.cpp:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d3/d1a/hill__cipher_8cpp__incl.svg" width="100%" height="449"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d3/d1a/hill__cipher_8cpp__incl.svg" width="100%" height="449"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
@@ -198,17 +197,16 @@ The matrix generation algorithm is very rudimentary and does not guarantee an in
<div class="line"><span class="lineno"> 543</span>}</div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="adsu__path__compression_8cpp_html_a45d94ead4cf4e1ff9f87c38bc99f59ae"><div class="ttname"><a href="../../d3/dae/dsu__path__compression_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae">test2</a></div><div class="ttdeci">static void test2()</div><div class="ttdoc">Self-implementations, 2nd test.</div><div class="ttdef"><b>Definition:</b> dsu_path_compression.cpp:186</div></div>
<div class="ttc" id="adsu__path__compression_8cpp_html_ae7880ce913f3058a35ff106d5be9e243"><div class="ttname"><a href="../../d3/dae/dsu__path__compression_8cpp.html#ae7880ce913f3058a35ff106d5be9e243">test1</a></div><div class="ttdeci">static void test1()</div><div class="ttdoc">Self-test implementations, 1st test.</div><div class="ttdef"><b>Definition:</b> dsu_path_compression.cpp:169</div></div>
<div class="ttc" id="anamespaceciphers_html_ab9aec0ccf4b6809f652bb540be87c216"><div class="ttname"><a href="../../d6/d4e/namespaceciphers.html#ab9aec0ccf4b6809f652bb540be87c216">ciphers::STRKEY</a></div><div class="ttdeci">static const char * STRKEY</div><div class="ttdef"><b>Definition:</b> hill_cipher.cpp:73</div></div>
<div class="ttc" id="adsu__path__compression_8cpp_html_a45d94ead4cf4e1ff9f87c38bc99f59ae"><div class="ttname"><a href="../../d3/dae/dsu__path__compression_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae">test2</a></div><div class="ttdeci">static void test2()</div><div class="ttdoc">Self-implementations, 2nd test.</div><div class="ttdef"><b>Definition</b> dsu_path_compression.cpp:186</div></div>
<div class="ttc" id="adsu__path__compression_8cpp_html_ae7880ce913f3058a35ff106d5be9e243"><div class="ttname"><a href="../../d3/dae/dsu__path__compression_8cpp.html#ae7880ce913f3058a35ff106d5be9e243">test1</a></div><div class="ttdeci">static void test1()</div><div class="ttdoc">Self-test implementations, 1st test.</div><div class="ttdef"><b>Definition</b> dsu_path_compression.cpp:169</div></div>
<div class="ttc" id="anamespaceciphers_html_ab9aec0ccf4b6809f652bb540be87c216"><div class="ttname"><a href="../../d6/d4e/namespaceciphers.html#ab9aec0ccf4b6809f652bb540be87c216">ciphers::STRKEY</a></div><div class="ttdeci">static const char * STRKEY</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:73</div></div>
<div class="ttc" id="asrand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a></div><div class="ttdeci">T srand(T... args)</div></div>
<div class="ttc" id="astrlen_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/byte/strlen.html">std::strlen</a></div><div class="ttdeci">T strlen(T... args)</div></div>
<div class="ttc" id="atime_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a></div><div class="ttdeci">T time(T... args)</div></div>
</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="../../d7/db9/hill__cipher_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="628" height="410"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/db9/hill__cipher_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="628" height="410"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
@@ -270,8 +268,7 @@ template&lt;typename T &gt; </div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/db9/hill__cipher_8cpp_a34bfcd756610834acac501f9eea1e2eb_cgraph.svg" width="259" height="234"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d7/db9/hill__cipher_8cpp_a34bfcd756610834acac501f9eea1e2eb_cgraph.svg" width="259" height="234"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
@@ -329,16 +326,15 @@ Here is the call graph for this function:</div>
<div class="line"><span class="lineno"> 497</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Passed :)\n&quot;</span>;</div>
<div class="line"><span class="lineno"> 498</span>}</div>
<div class="ttc" id="abasic_ofstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream.html">std::ofstream</a></div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a405b0a28d66a61239d3565d5256f9cb5"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5">ciphers::HillCipher::generate_keys</a></div><div class="ttdeci">static std::pair&lt; matrix&lt; int &gt;, matrix&lt; int &gt; &gt; generate_keys(size_t size, int limit1=0, int limit2=10)</div><div class="ttdoc">Generate encryption and decryption key pair.</div><div class="ttdef"><b>Definition:</b> hill_cipher.cpp:424</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a427acfac1dbff3f48a2b071d449d965b"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b">ciphers::HillCipher::decrypt_text</a></div><div class="ttdeci">static const std::string decrypt_text(const std::string &amp;text, const matrix&lt; int &gt; &amp;decrypt_key)</div><div class="ttdoc">Decrypt a given text using a given key.</div><div class="ttdef"><b>Definition:</b> hill_cipher.cpp:457</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_aa8bbb6e4a5749f6008b06602d5103917"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917">ciphers::HillCipher::encrypt_text</a></div><div class="ttdeci">static const std::string encrypt_text(const std::string &amp;text, const matrix&lt; int &gt; &amp;encrypt_key)</div><div class="ttdoc">Encrypt a given text using a given key.</div><div class="ttdef"><b>Definition:</b> hill_cipher.cpp:445</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a405b0a28d66a61239d3565d5256f9cb5"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5">ciphers::HillCipher::generate_keys</a></div><div class="ttdeci">static std::pair&lt; matrix&lt; int &gt;, matrix&lt; int &gt; &gt; generate_keys(size_t size, int limit1=0, int limit2=10)</div><div class="ttdoc">Generate encryption and decryption key pair.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:424</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_a427acfac1dbff3f48a2b071d449d965b"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b">ciphers::HillCipher::decrypt_text</a></div><div class="ttdeci">static const std::string decrypt_text(const std::string &amp;text, const matrix&lt; int &gt; &amp;decrypt_key)</div><div class="ttdoc">Decrypt a given text using a given key.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:457</div></div>
<div class="ttc" id="aclassciphers_1_1_hill_cipher_html_aa8bbb6e4a5749f6008b06602d5103917"><div class="ttname"><a href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917">ciphers::HillCipher::encrypt_text</a></div><div class="ttdeci">static const std::string encrypt_text(const std::string &amp;text, const matrix&lt; int &gt; &amp;encrypt_key)</div><div class="ttdoc">Encrypt a given text using a given key.</div><div class="ttdef"><b>Definition</b> hill_cipher.cpp:445</div></div>
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d7/db9/hill__cipher_8cpp_a3147ad576f8a94a2a6b66948672b452b_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 class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d7/db9/hill__cipher_8cpp_a3147ad576f8a94a2a6b66948672b452b_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>
@@ -395,8 +391,7 @@ Here is the call graph for this function:</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="../../d7/db9/hill__cipher_8cpp_a04391124480d2a49f2dec900237b0712_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 class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d7/db9/hill__cipher_8cpp_a04391124480d2a49f2dec900237b0712_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>
@@ -407,7 +402,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_4d6e05837bf820fb089a8a8cdf2f42b7.html">ciphers</a></li><li class="navelem"><a class="el" href="../../d7/db9/hill__cipher_8cpp.html">hill_cipher.cpp</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7 </li>
</ul>
</div>
</body>

View File

@@ -1,28 +1,66 @@
<map id="test2" name="test2">
<area shape="rect" id="node1" title="Self test 2 &#45; using 8x8 randomly generated key." alt="" coords="5,260,56,286"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="104,5,241,31"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/compare.html#" title=" " alt="" coords="104,55,241,80"/>
<area shape="rect" id="node4" href="$d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" title="Decrypt a given text using a given key." alt="" coords="108,674,237,715"/>
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/size.html#" title=" " alt="" coords="529,917,651,943"/>
<area shape="rect" id="node10" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="887,421,1002,447"/>
<area shape="rect" id="node11" href="$d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" title="Encrypt a given text using a given key." alt="" coords="108,485,237,525"/>
<area shape="rect" id="node12" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="742,185,814,211"/>
<area shape="rect" id="node13" href="$d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" title="Generate encryption and decryption key pair." alt="" coords="108,357,237,397"/>
<area shape="rect" id="node5" href="$d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" title="Convenience function to perform block cipher operations. The operations are identical for both encryp..." alt="" coords="312,766,440,807"/>
<area shape="rect" id="node6" href="$d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" title="Get the index of a character in the STRKEY." alt="" coords="526,737,654,777"/>
<area shape="rect" id="node9" href="$d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" title="helper function to perform vector multiplication with encryption or decryption matrix" alt="" coords="526,802,654,843"/>
<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="738,716,818,742"/>
<area shape="rect" id="node14" href="$d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" title=" " alt="" coords="537,421,643,447"/>
<area shape="rect" id="node16" href="$d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" title="Generate decryption matrix from an encryption matrix key." alt="" coords="289,357,463,397"/>
<area shape="rect" id="node20" href="$d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid..." alt="" coords="289,579,463,620"/>
<area shape="rect" id="node26" 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="323,307,430,332"/>
<area shape="rect" id="node15" href="$d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" title=" " alt="" coords="717,421,839,447"/>
<area shape="rect" id="node17" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/program/exit.html#" title=" " alt="" coords="556,271,624,296"/>
<area shape="rect" id="node18" href="$d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" title=" " alt="" coords="526,206,654,247"/>
<area shape="rect" id="node19" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/round.html#" title=" " alt="" coords="550,320,630,346"/>
<area shape="rect" id="node21" href="$d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" title="Compute GCD of two integers using Euler&#39;s algorithm." alt="" coords="511,587,669,612"/>
<area shape="rect" id="node23" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/isfinite.html#" title=" " alt="" coords="547,636,633,662"/>
<area shape="rect" id="node24" href="$d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" title="Function to generate a random integer in a given interval." alt="" coords="526,471,654,512"/>
<area shape="rect" id="node22" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="739,587,817,612"/>
<area shape="rect" id="node25" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="742,523,814,548"/>
<area shape="rect" id="Node000001" title="Self test 2 &#45; using 8x8 randomly generated key." alt="" coords="5,260,56,286"/>
<area shape="rect" id="Node000002" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="104,5,241,31"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="29,260,32,218,43,160,64,97,81,67,102,40,104,38,108,42,106,44,85,70,69,99,48,161,38,219,35,260"/>
<area shape="rect" id="Node000003" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/compare.html#" title=" " alt="" coords="104,55,241,80"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="31,259,38,228,51,185,72,139,102,98,116,86,120,90,106,101,77,142,56,187,43,229,37,260"/>
<area shape="rect" id="Node000004" href="$d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" title="Decrypt a given text using a given key." alt="" coords="108,674,237,715"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="37,286,63,390,106,536,132,602,157,659,153,662,127,604,101,538,58,392,32,287"/>
<area shape="rect" id="Node000008" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/size.html#" title=" " alt="" coords="529,917,651,943"/>
<area shape="poly" id="edge38_Node000001_Node000008" title=" " alt="" coords="35,286,40,373,52,504,73,636,88,688,106,725,147,770,195,809,249,840,305,866,363,886,418,901,515,920,514,925,417,906,361,891,303,871,246,845,192,813,143,774,101,728,83,690,68,637,46,504,34,373,30,286"/>
<area shape="rect" id="Node000010" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="887,421,1002,447"/>
<area shape="poly" id="edge37_Node000001_Node000010" title=" " alt="" coords="47,257,98,219,177,172,223,150,272,132,323,120,375,116,591,116,666,114,726,115,753,121,781,131,810,147,841,171,866,197,887,226,917,291,935,355,943,406,938,407,929,356,912,293,882,229,862,200,837,175,807,152,779,136,752,126,725,121,665,119,591,121,375,121,324,125,273,137,225,155,179,177,101,224,50,262"/>
<area shape="rect" id="Node000011" href="$d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" title="Encrypt a given text using a given key." alt="" coords="108,485,237,525"/>
<area shape="poly" id="edge12_Node000001_Node000011" title=" " alt="" coords="41,285,68,339,106,407,149,471,144,474,101,410,63,342,36,287"/>
<area shape="rect" id="Node000012" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="742,185,814,211"/>
<area shape="poly" id="edge14_Node000001_Node000012" title=" " alt="" coords="56,265,243,228,375,207,511,192,590,189,669,192,728,193,727,199,669,197,590,194,512,197,376,212,244,233,57,270"/>
<area shape="rect" id="Node000013" href="$d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" title="Generate encryption and decryption key pair." alt="" coords="108,357,237,397"/>
<area shape="poly" id="edge15_Node000001_Node000013" title=" " alt="" coords="51,284,133,345,130,349,48,288"/>
<area shape="rect" id="Node000005" href="$d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" title="Convenience function to perform block cipher operations. The operations are identical for both encryp..." alt="" coords="312,766,440,807"/>
<area shape="poly" id="edge4_Node000004_Node000005" title=" " alt="" coords="220,713,317,757,315,762,218,717"/>
<area shape="rect" id="Node000006" href="$d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" title="Get the index of a character in the STRKEY." alt="" coords="526,737,654,777"/>
<area shape="poly" id="edge5_Node000005_Node000006" title=" " alt="" coords="440,775,511,765,512,770,441,780"/>
<area shape="poly" id="edge7_Node000005_Node000008" title=" " alt="" coords="400,805,449,850,513,896,538,909,535,913,510,900,446,854,396,809"/>
<area shape="rect" id="Node000009" href="$d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" title="helper function to perform vector multiplication with encryption or decryption matrix" alt="" coords="526,802,654,843"/>
<area shape="poly" id="edge8_Node000005_Node000009" title=" " alt="" coords="441,794,512,806,511,812,440,800"/>
<area shape="poly" id="edge11_Node000005_Node000010" title=" " alt="" coords="410,805,457,831,512,852,608,874,650,881,689,884,726,879,762,868,799,847,837,815,856,789,873,750,902,649,924,543,937,461,942,462,929,544,907,651,878,752,860,792,841,819,802,851,764,873,727,885,689,889,649,887,607,880,511,857,454,836,407,809"/>
<area shape="rect" id="Node000007" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="738,716,818,742"/>
<area shape="poly" id="edge6_Node000006_Node000007" title=" " alt="" coords="654,745,723,734,724,739,655,750"/>
<area shape="poly" id="edge10_Node000009_Node000007" title=" " alt="" coords="641,799,667,786,741,747,743,752,670,791,643,804"/>
<area shape="poly" id="edge9_Node000009_Node000010" title=" " alt="" coords="655,818,700,813,748,801,796,782,837,752,865,719,888,682,906,641,919,600,934,522,940,461,945,462,940,522,924,601,911,643,893,684,870,723,841,756,798,786,750,806,701,818,655,824"/>
<area shape="poly" id="edge13_Node000011_Node000005" title=" " alt="" coords="191,524,354,752,349,755,186,527"/>
<area shape="rect" id="Node000014" href="$d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" title=" " alt="" coords="537,421,643,447"/>
<area shape="poly" id="edge16_Node000013_Node000014" title=" " alt="" coords="237,394,289,406,413,422,522,429,522,435,412,427,289,411,236,399"/>
<area shape="rect" id="Node000016" href="$d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" title="Generate decryption matrix from an encryption matrix key." alt="" coords="289,357,463,397"/>
<area shape="poly" id="edge20_Node000013_Node000016" title=" " alt="" coords="237,374,274,374,274,380,237,380"/>
<area shape="rect" id="Node000020" href="$d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid..." alt="" coords="289,579,463,620"/>
<area shape="poly" id="edge29_Node000013_Node000020" title=" " alt="" coords="195,396,349,566,345,570,191,400"/>
<area shape="rect" id="Node000026" 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="323,307,430,332"/>
<area shape="poly" id="edge36_Node000013_Node000026" title=" " alt="" coords="236,356,313,334,315,339,237,361"/>
<area shape="poly" id="edge19_Node000014_Node000010" title=" " alt="" coords="644,444,717,457,778,461,839,457,883,449,884,454,839,462,778,467,716,462,643,450"/>
<area shape="rect" id="Node000015" href="$d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" title=" " alt="" coords="717,421,839,447"/>
<area shape="poly" id="edge17_Node000014_Node000015" title=" " alt="" coords="643,432,702,432,702,437,643,437"/>
<area shape="poly" id="edge18_Node000015_Node000010" title=" " alt="" coords="839,432,872,432,872,437,839,437"/>
<area shape="poly" id="edge28_Node000016_Node000007" title=" " alt="" coords="393,396,441,458,475,492,513,521,534,533,554,539,591,545,629,551,649,559,670,572,692,595,718,629,764,702,759,705,713,632,688,598,667,576,646,563,627,556,591,550,553,545,532,538,510,526,471,496,437,461,389,399"/>
<area shape="poly" id="edge27_Node000016_Node000010" title=" " alt="" coords="464,376,638,384,739,393,839,406,882,415,881,420,839,411,738,399,638,390,464,381"/>
<area shape="poly" id="edge21_Node000016_Node000014" title=" " alt="" coords="455,395,526,414,524,419,454,400"/>
<area shape="rect" id="Node000017" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/program/exit.html#" title=" " alt="" coords="556,271,624,296"/>
<area shape="poly" id="edge22_Node000016_Node000017" title=" " alt="" coords="439,354,462,343,486,324,510,305,540,293,542,298,513,310,489,328,465,347,442,358"/>
<area shape="rect" id="Node000018" href="$d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" title=" " alt="" coords="526,206,654,247"/>
<area shape="poly" id="edge23_Node000016_Node000018" title=" " alt="" coords="445,354,462,343,478,322,485,301,492,279,509,256,513,253,517,257,513,260,497,281,490,303,483,325,465,347,448,358"/>
<area shape="rect" id="Node000019" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/round.html#" title=" " alt="" coords="550,320,630,346"/>
<area shape="poly" id="edge26_Node000016_Node000019" title=" " alt="" coords="463,356,535,341,536,347,465,361"/>
<area shape="poly" id="edge25_Node000018_Node000010" title=" " alt="" coords="646,245,670,256,741,295,810,338,916,411,913,415,807,343,738,300,667,261,644,249"/>
<area shape="poly" id="edge24_Node000018_Node000012" title=" " alt="" coords="654,214,727,203,728,208,655,219"/>
<area shape="poly" id="edge35_Node000020_Node000007" title=" " alt="" coords="410,618,457,646,512,672,567,689,624,703,724,720,723,725,623,708,566,694,510,677,455,651,407,623"/>
<area shape="rect" id="Node000021" href="$d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" title="Compute GCD of two integers using Euler&#39;s algorithm." alt="" coords="511,587,669,612"/>
<area shape="poly" id="edge30_Node000020_Node000021" title=" " alt="" coords="464,597,496,597,496,602,464,602"/>
<area shape="rect" id="Node000023" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/isfinite.html#" title=" " alt="" coords="547,636,633,662"/>
<area shape="poly" id="edge32_Node000020_Node000023" title=" " alt="" coords="465,617,534,633,532,638,463,622"/>
<area shape="rect" id="Node000024" href="$d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" title="Function to generate a random integer in a given interval." alt="" coords="526,471,654,512"/>
<area shape="poly" id="edge33_Node000020_Node000024" title=" " alt="" coords="417,576,534,517,536,521,419,581"/>
<area shape="rect" id="Node000022" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="739,587,817,612"/>
<area shape="poly" id="edge31_Node000021_Node000022" title=" " alt="" coords="669,597,724,597,724,602,669,602"/>
<area shape="rect" id="Node000025" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="742,523,814,548"/>
<area shape="poly" id="edge34_Node000024_Node000025" title=" " alt="" coords="655,504,728,521,727,526,654,509"/>
</map>

View File

@@ -1 +1 @@
5e3de1759561fba53cccb6c8ea34eb52
977ef6d69a64e2cecede16a9000ef7e4

View File

@@ -5,98 +5,104 @@
-->
<!-- Title: test2 Pages: 1 -->
<!--zoomable 711 -->
<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[
.node, .edge {opacity: 0.7;}
.node.selected, .edge.selected {opacity: 1;}
.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">
<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="arrowUp" transform="translate(30 24)">
<use xlink:href="#rim"/>
<path pointer-events="none" 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" transform="rotate(90) translate(36 -43)">
<use xlink:href="#rim"/>
<path pointer-events="none" 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" transform="rotate(180) translate(-30 -48)">
<use xlink:href="#rim"/>
<path pointer-events="none" 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" transform="rotate(270) translate(-36 17)">
<use xlink:href="#rim"/>
<path pointer-events="none" 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="application/ecmascript">
var viewWidth = 756;
var viewHeight = 711;
var sectionId = 'dynsection-4';
</script>
<script xlink:href="../../svgpan.js"/>
<script type="application/ecmascript" xlink:href="../../svg.min.js"/>
<svg id="graph" class="graph">
<g id="viewport">
<title>test2</title>
<!-- Node1 -->
<g id="node1" class="node">
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Self test 2 &#45; using 8x8 randomly generated key.">
<g id="a_Node000001"><a xlink:title="Self test 2 &#45; using 8x8 randomly generated key.">
<polygon fill="#999999" stroke="#666666" points="37.75,-512.25 0,-512.25 0,-493 37.75,-493 37.75,-512.25"/>
<text text-anchor="middle" x="18.88" y="-498.75" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="176.75,-703.25 73.75,-703.25 73.75,-684 176.75,-684 176.75,-703.25"/>
<text text-anchor="middle" x="125.25" y="-689.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M20.02,-512.34C20.99,-541.27 27.78,-627.75 73.75,-675.62 74.33,-676.23 74.93,-676.81 75.55,-677.38"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="73.34,-680.8 83.54,-683.67 77.35,-675.07 73.34,-680.8"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html#" xlink:title=" ">
<g id="a_Node000003"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="176.75,-666.25 73.75,-666.25 73.75,-647 176.75,-647 176.75,-666.25"/>
<text text-anchor="middle" x="125.25" y="-652.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::compare</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M21.45,-512.41C25.73,-536 39.58,-596.68 73.75,-632.62 76.87,-635.91 80.54,-638.79 84.44,-641.32"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="82.4,-644.74 92.84,-646.56 85.81,-638.63 82.4,-644.74"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<g id="a_Node000004"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<polygon fill="white" stroke="#666666" points="173.38,-201.88 77.12,-201.88 77.12,-171.38 173.38,-171.38 173.38,-201.88"/>
<text text-anchor="start" x="85.12" y="-188.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-177.12" font-family="Helvetica,sans-Serif" font-size="10.00">::decrypt_text</text>
@@ -104,45 +110,54 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M22.09,-492.59C28.66,-463.25 49.15,-375.28 73.75,-304.62 85.12,-271.96 101.27,-235.52 112.22,-211.9"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="115.78,-213.55 116.85,-203.01 109.44,-210.58 115.78,-213.55"/>
</a>
</g>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<g id="a_Node000008"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="484.38,-19.25 392.62,-19.25 392.62,0 484.38,0 484.38,-19.25"/>
<text text-anchor="middle" x="438.5" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::length</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node8 -->
<g id="edge38" class="edge">
<g id="edge38_Node000001_Node000008" class="edge">
<title>Node1&#45;&gt;Node8</title>
<g id="a_edge38_Node000001_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M20.25,-492.63C22.29,-442.34 33.59,-217.29 73.75,-162.62 147.31,-62.49 299.2,-27.45 381.52,-15.52"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="381.75,-18.89 391.18,-14.05 380.79,-11.95 381.75,-18.89"/>
</a>
</g>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<g id="Node000010" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<g id="a_Node000010"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="747.75,-391.25 661.25,-391.25 661.25,-372 747.75,-372 747.75,-391.25"/>
<text text-anchor="middle" x="704.5" y="-377.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node10 -->
<g id="edge37" class="edge">
<g id="edge37_Node000001_Node000010" class="edge">
<title>Node1&#45;&gt;Node10</title>
<g id="a_edge37_Node000001_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M32.1,-512.72C67.55,-540.94 174.49,-618.62 277.12,-618.62 277.12,-618.62 277.12,-618.62 439.5,-618.62 524.04,-618.62 560.81,-632.35 625.25,-577.62 679.41,-531.63 696.42,-442.84 701.48,-402.49"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="705.06,-402.95 702.7,-392.62 698.11,-402.17 705.06,-402.95"/>
</a>
</g>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<g id="Node000011" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<g id="a_Node000011"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<polygon fill="white" stroke="#666666" points="173.38,-343.88 77.12,-343.88 77.12,-313.38 173.38,-313.38 173.38,-343.88"/>
<text text-anchor="start" x="85.12" y="-330.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-319.12" font-family="Helvetica,sans-Serif" font-size="10.00">::encrypt_text</text>
@@ -150,30 +165,36 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge12" class="edge">
<g id="edge12_Node000001_Node000011" class="edge">
<title>Node1&#45;&gt;Node11</title>
<g id="a_edge12_Node000001_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M24.67,-492.55C33.63,-473.98 53.8,-433.26 73.75,-400.62 83.72,-384.33 96,-366.76 105.96,-353.06"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="109.33,-355.39 112.43,-345.25 103.69,-351.24 109.33,-355.39"/>
</a>
</g>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<g id="Node000012" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<g id="a_Node000012"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="606.12,-568.25 552.62,-568.25 552.62,-549 606.12,-549 606.12,-568.25"/>
<text text-anchor="middle" x="579.38" y="-554.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node12 -->
<g id="edge14" class="edge">
<g id="edge14_Node000001_Node000012" class="edge">
<title>Node1&#45;&gt;Node12</title>
<g id="a_edge14_Node000001_Node000012"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M38.08,-506.69C90.66,-518.2 247.39,-550.86 379.5,-561.62 431.77,-565.88 445.06,-562.6 497.5,-561.62 511.91,-561.36 527.76,-560.82 541.58,-560.28"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="541.31,-563.75 551.16,-559.84 541.02,-556.76 541.31,-563.75"/>
</a>
</g>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<g id="Node000013" class="node">
<title>Node13</title>
<g id="a_node13"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" target="_top" xlink:title="Generate encryption and decryption key pair.">
<g id="a_Node000013"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" target="_top" xlink:title="Generate encryption and decryption key pair.">
<polygon fill="white" stroke="#666666" points="173.38,-439.88 77.12,-439.88 77.12,-409.38 173.38,-409.38 173.38,-439.88"/>
<text text-anchor="start" x="85.12" y="-426.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-415.12" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_keys</text>
@@ -181,15 +202,18 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node1&#45;&gt;Node13 -->
<g id="edge15" class="edge">
<g id="edge15_Node000001_Node000013" class="edge">
<title>Node1&#45;&gt;Node13</title>
<g id="a_edge15_Node000001_Node000013"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M33.09,-492.75C48.48,-481.25 74.37,-461.9 94.63,-446.76"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="96.29,-449.14 102.2,-440.35 92.1,-443.53 96.29,-449.14"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<g id="a_Node000005"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<polygon fill="white" stroke="#666666" points="326.25,-132.88 230,-132.88 230,-102.38 326.25,-102.38 326.25,-132.88"/>
<text text-anchor="start" x="238" y="-119.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-108.12" font-family="Helvetica,sans-Serif" font-size="10.00">::codec</text>
@@ -197,15 +221,18 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge4_Node000004_Node000005" class="edge">
<title>Node4&#45;&gt;Node5</title>
<g id="a_edge4_Node000004_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M160.49,-170.97C181.92,-161.17 209.75,-148.44 232.85,-137.87"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="234.13,-140.68 241.76,-133.34 231.21,-134.32 234.13,-140.68"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" target="_top" xlink:title="Get the index of a character in the STRKEY.">
<g id="a_Node000006"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" target="_top" xlink:title="Get the index of a character in the STRKEY.">
<polygon fill="white" stroke="#666666" points="486.62,-154.88 390.38,-154.88 390.38,-124.38 486.62,-124.38 486.62,-154.88"/>
<text text-anchor="start" x="398.38" y="-141.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-130.12" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
@@ -213,21 +240,27 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node5&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<g id="edge5_Node000005_Node000006" class="edge">
<title>Node5&#45;&gt;Node6</title>
<g id="a_edge5_Node000005_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.64,-124.23C343.24,-126.53 362.07,-129.15 379.43,-131.56"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="378.63,-135.12 389.02,-133.03 379.59,-128.19 378.63,-135.12"/>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<g id="edge7_Node000005_Node000008" class="edge">
<title>Node5&#45;&gt;Node8</title>
<g id="a_edge7_Node000005_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M294.64,-102.01C313.43,-83.75 346.65,-53.52 379.5,-33.62 385.37,-30.07 391.87,-26.81 398.32,-23.92"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="399.49,-26.8 407.34,-19.68 396.76,-20.35 399.49,-26.8"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<g id="a_Node000009"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<polygon fill="white" stroke="#666666" points="486.62,-105.88 390.38,-105.88 390.38,-75.38 486.62,-75.38 486.62,-105.88"/>
<text text-anchor="start" x="398.38" y="-92.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-81.12" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
@@ -235,69 +268,90 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node5&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<g id="edge8_Node000005_Node000009" class="edge">
<title>Node5&#45;&gt;Node9</title>
<g id="a_edge8_Node000005_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.64,-109.52C343.24,-106.69 362.07,-103.49 379.43,-100.53"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="379.75,-103.85 389.02,-98.72 378.57,-96.95 379.75,-103.85"/>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node10 -->
<g id="edge11" class="edge">
<g id="edge11_Node000005_Node000010" class="edge">
<title>Node5&#45;&gt;Node10</title>
<g id="a_edge11_Node000005_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M302.23,-101.9C321.82,-89.57 351.18,-73.41 379.5,-66.62 486.41,-41.02 545.58,-18.88 625.25,-94.62 664.64,-132.08 692.16,-301.98 700.7,-361.2"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="697.33,-361.37 702.19,-370.78 704.26,-360.39 697.33,-361.37"/>
</a>
</g>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<g id="Node000007" 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=" ">
<g id="a_Node000007"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="609.12,-170.25 549.62,-170.25 549.62,-151 609.12,-151 609.12,-170.25"/>
<text text-anchor="middle" x="579.38" y="-156.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<g id="edge6_Node000006_Node000007" class="edge">
<title>Node6&#45;&gt;Node7</title>
<g id="a_edge6_Node000006_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-146.79C503.76,-149.34 522.55,-152.18 538.69,-154.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="537.97,-158.21 548.38,-156.24 539.02,-151.29 537.97,-158.21"/>
</a>
</g>
</g>
<!-- Node9&#45;&gt;Node7 -->
<g id="edge10" class="edge">
<g id="edge10_Node000009_Node000007" class="edge">
<title>Node9&#45;&gt;Node7</title>
<g id="a_edge10_Node000009_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M477.5,-106.35C484.22,-109.32 491.11,-112.48 497.5,-115.62 516.24,-124.85 536.81,-136.31 552.51,-145.36"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="550.19,-148.64 560.6,-150.64 553.71,-142.59 550.19,-148.64"/>
</a>
</g>
</g>
<!-- Node9&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<g id="edge9_Node000009_Node000010" class="edge">
<title>Node9&#45;&gt;Node10</title>
<g id="a_edge9_Node000009_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M487.12,-91.57C528.72,-94.92 588.11,-106.19 625.25,-141.62 688.71,-202.16 700.77,-314.71 703.01,-360.96"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="699.54,-360.83 703.41,-370.69 706.54,-360.57 699.54,-360.83"/>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node5 -->
<g id="edge13" class="edge">
<g id="edge13_Node000011_Node000005" class="edge">
<title>Node11&#45;&gt;Node5</title>
<g id="a_edge13_Node000011_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M137.34,-313.11C163.34,-276.76 228.35,-185.84 259.69,-142.01"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="263.05,-144.33 266.01,-134.16 257.35,-140.26 263.05,-144.33"/>
</a>
</g>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<g id="Node000014" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<g id="a_Node000014"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="478.38,-391.25 398.62,-391.25 398.62,-372 478.38,-372 478.38,-391.25"/>
<text text-anchor="middle" x="438.5" y="-377.75" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node14 -->
<g id="edge16" class="edge">
<g id="edge16_Node000013_Node000014" class="edge">
<title>Node13&#45;&gt;Node14</title>
<g id="a_edge16_Node000013_Node000014"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.47,-409.81C186.12,-406.31 199.86,-402.94 212.75,-400.62 272.21,-389.96 341.63,-385.25 387.41,-383.19"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="387.39,-386.65 397.23,-382.73 387.09,-379.66 387.39,-386.65"/>
</a>
</g>
</g>
<!-- Node16 -->
<g id="node16" class="node">
<g id="Node000016" class="node">
<title>Node16</title>
<g id="a_node16"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<g id="a_Node000016"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<polygon fill="white" stroke="#666666" points="343.5,-439.88 212.75,-439.88 212.75,-409.38 343.5,-409.38 343.5,-439.88"/>
<text text-anchor="start" x="220.75" y="-426.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-415.12" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
@@ -305,15 +359,18 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node13&#45;&gt;Node16 -->
<g id="edge20" class="edge">
<g id="edge20_Node000013_Node000016" class="edge">
<title>Node13&#45;&gt;Node16</title>
<g id="a_edge20_Node000013_Node000016"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.57,-424.62C182.49,-424.62 192.02,-424.62 201.55,-424.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="201.28,-428.13 211.28,-424.62 201.28,-421.13 201.28,-428.13"/>
</a>
</g>
</g>
<!-- Node20 -->
<g id="node20" class="node">
<g id="Node000020" class="node">
<title>Node20</title>
<g id="a_node20"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<g id="a_Node000020"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<polygon fill="white" stroke="#666666" points="343.5,-272.88 212.75,-272.88 212.75,-242.38 343.5,-242.38 343.5,-272.88"/>
<text text-anchor="start" x="220.75" y="-259.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-248.12" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_encryption_key</text>
@@ -321,90 +378,117 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node13&#45;&gt;Node20 -->
<g id="edge29" class="edge">
<g id="edge29_Node000013_Node000020" class="edge">
<title>Node13&#45;&gt;Node20</title>
<g id="a_edge29_Node000013_Node000020"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M140.44,-408.91C167.09,-379.42 224.72,-315.64 255.96,-281.05"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="258.19,-283.7 262.3,-273.93 253,-279 258.19,-283.7"/>
</a>
</g>
</g>
<!-- Node26 -->
<g id="node26" class="node">
<g id="Node000026" class="node">
<title>Node26</title>
<g id="a_node26"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<g id="a_Node000026"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="318.38,-477.25 237.88,-477.25 237.88,-458 318.38,-458 318.38,-477.25"/>
<text text-anchor="middle" x="278.12" y="-463.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::make_pair</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node26 -->
<g id="edge36" class="edge">
<g id="edge36_Node000013_Node000026" class="edge">
<title>Node13&#45;&gt;Node26</title>
<g id="a_edge36_Node000013_Node000026"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.57,-438.11C192.07,-443.38 213.19,-449.4 231.52,-454.63"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="230.37,-458.22 240.94,-457.6 232.28,-451.49 230.37,-458.22"/>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node10 -->
<g id="edge19" class="edge">
<g id="edge19_Node000014_Node000010" class="edge">
<title>Node14&#45;&gt;Node10</title>
<g id="a_edge19_Node000014_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.57,-371.91C495.36,-368.21 515.28,-364.45 533.5,-362.62 574.08,-358.57 584.76,-357.78 625.25,-362.62 636.29,-363.95 648.01,-366.28 658.94,-368.87"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="657.99,-372.49 668.54,-371.51 659.69,-365.7 657.99,-372.49"/>
</a>
</g>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<g id="Node000015" class="node">
<title>Node15</title>
<g id="a_node15"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<g id="a_Node000015"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="625.25,-391.25 533.5,-391.25 533.5,-372 625.25,-372 625.25,-391.25"/>
<text text-anchor="middle" x="579.38" y="-377.75" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node15 -->
<g id="edge17" class="edge">
<g id="edge17_Node000014_Node000015" class="edge">
<title>Node14&#45;&gt;Node15</title>
<g id="a_edge17_Node000014_Node000015"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.55,-381.62C492.24,-381.62 507.89,-381.62 522.67,-381.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="522.24,-385.13 532.24,-381.62 522.24,-378.13 522.24,-385.13"/>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node10 -->
<g id="edge18" class="edge">
<g id="edge18_Node000015_Node000010" class="edge">
<title>Node15&#45;&gt;Node10</title>
<g id="a_edge18_Node000015_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M625.52,-381.62C633.45,-381.62 641.77,-381.62 649.9,-381.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="649.81,-385.13 659.81,-381.62 649.81,-378.13 649.81,-385.13"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node7 -->
<g id="edge28" class="edge">
<g id="edge28_Node000016_Node000007" class="edge">
<title>Node16&#45;&gt;Node7</title>
<g id="a_edge28_Node000016_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M289.25,-409.13C305.51,-385.43 339.7,-340.21 379.5,-314.62 425.85,-284.83 453.2,-309.38 497.5,-276.62 515.69,-263.18 549.6,-208.98 567.17,-179.67"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="570.55,-181.84 572.65,-171.45 564.53,-178.26 570.55,-181.84"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node10 -->
<g id="edge27" class="edge">
<g id="edge27_Node000016_Node000010" class="edge">
<title>Node16&#45;&gt;Node10</title>
<g id="a_edge27_Node000016_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M343.92,-423.4C413.73,-421.31 527.93,-415.7 625.25,-400.62 635.61,-399.02 646.61,-396.73 656.99,-394.28"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="657.64,-397.48 666.52,-391.71 655.98,-390.68 657.64,-397.48"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node14 -->
<g id="edge21" class="edge">
<g id="edge21_Node000016_Node000014" class="edge">
<title>Node16&#45;&gt;Node14</title>
<g id="a_edge21_Node000016_Node000014"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M336.75,-408.98C354.16,-404.25 373.08,-399.12 389.77,-394.58"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="390.65,-397.7 399.38,-391.7 388.81,-390.95 390.65,-397.7"/>
</a>
</g>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<g id="Node000017" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<g id="a_Node000017"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="464.12,-504.25 412.88,-504.25 412.88,-485 464.12,-485 464.12,-504.25"/>
<text text-anchor="middle" x="438.5" y="-490.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node17 -->
<g id="edge22" class="edge">
<g id="edge22_Node000016_Node000017" class="edge">
<title>Node16&#45;&gt;Node17</title>
<g id="a_edge22_Node000016_Node000017"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.29,-440.3C332.21,-442.82 338.08,-445.6 343.5,-448.62 361.2,-458.5 361.53,-467.25 379.5,-476.62 386.49,-480.27 394.34,-483.32 401.96,-485.82"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="400.87,-489.45 411.46,-488.97 402.89,-482.74 400.87,-489.45"/>
</a>
</g>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<g id="Node000018" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" target="_top" xlink:title=" ">
<g id="a_Node000018"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="486.62,-552.88 390.38,-552.88 390.38,-522.38 486.62,-522.38 486.62,-552.88"/>
<text text-anchor="start" x="398.38" y="-539.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-528.12" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
@@ -412,78 +496,99 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node16&#45;&gt;Node18 -->
<g id="edge23" class="edge">
<g id="edge23_Node000016_Node000018" class="edge">
<title>Node16&#45;&gt;Node18</title>
<g id="a_edge23_Node000016_Node000018"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M331.23,-440.22C335.62,-442.65 339.79,-445.43 343.5,-448.62 368.52,-470.17 354.86,-491.64 379.5,-513.62 380.37,-514.41 381.28,-515.16 382.2,-515.9"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="379.87,-519.22 390.12,-521.91 383.79,-513.42 379.87,-519.22"/>
</a>
</g>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<g id="Node000019" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<g id="a_Node000019"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="468.25,-467.25 408.75,-467.25 408.75,-448 468.25,-448 468.25,-467.25"/>
<text text-anchor="middle" x="438.5" y="-453.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node19 -->
<g id="edge26" class="edge">
<g id="edge26_Node000016_Node000019" class="edge">
<title>Node16&#45;&gt;Node19</title>
<g id="a_edge26_Node000016_Node000019"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-438.14C362.18,-441.93 381.41,-445.94 397.67,-449.33"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="396.9,-452.95 407.4,-451.56 398.33,-446.1 396.9,-452.95"/>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node10 -->
<g id="edge25" class="edge">
<g id="edge25_Node000018_Node000010" class="edge">
<title>Node18&#45;&gt;Node10</title>
<g id="a_edge25_Node000018_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M479.84,-521.96C485.83,-519.34 491.88,-516.52 497.5,-513.62 567.81,-477.39 644.83,-424.02 681.6,-397.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="682.99,-400.21 689.05,-391.52 678.89,-394.54 682.99,-400.21"/>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node12 -->
<g id="edge24" class="edge">
<g id="edge24_Node000018_Node000012" class="edge">
<title>Node18&#45;&gt;Node12</title>
<g id="a_edge24_Node000018_Node000012"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-544.79C504.82,-547.5 524.93,-550.54 541.71,-553.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="540.8,-556.63 551.21,-554.67 541.84,-549.71 540.8,-556.63"/>
</a>
</g>
</g>
<!-- Node20&#45;&gt;Node7 -->
<g id="edge35" class="edge">
<g id="edge35_Node000020_Node000007" class="edge">
<title>Node20&#45;&gt;Node7</title>
<g id="a_edge35_Node000020_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M302.47,-241.89C322.2,-229.26 351.63,-211.99 379.5,-201.62 432.66,-181.85 497.54,-170.74 538.42,-165.21"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="538.82,-168.56 548.29,-163.8 537.92,-161.62 538.82,-168.56"/>
</a>
</g>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<g id="Node000021" class="node">
<title>Node21</title>
<g id="a_node21"><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.">
<g id="a_Node000021"><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="#666666" points="497.5,-267.25 379.5,-267.25 379.5,-248 497.5,-248 497.5,-267.25"/>
<text text-anchor="middle" x="438.5" y="-253.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</text>
</a>
</g>
</g>
<!-- Node20&#45;&gt;Node21 -->
<g id="edge30" class="edge">
<g id="edge30_Node000020_Node000021" class="edge">
<title>Node20&#45;&gt;Node21</title>
<g id="a_edge30_Node000020_Node000021"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-257.62C351.99,-257.62 360.17,-257.62 368.22,-257.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="368.08,-261.13 378.08,-257.62 368.08,-254.13 368.08,-261.13"/>
</a>
</g>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<g id="Node000023" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<g id="a_Node000023"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="470.5,-230.25 406.5,-230.25 406.5,-211 470.5,-211 470.5,-230.25"/>
<text text-anchor="middle" x="438.5" y="-216.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::isfinite</text>
</a>
</g>
</g>
<!-- Node20&#45;&gt;Node23 -->
<g id="edge32" class="edge">
<g id="edge32_Node000020_Node000023" class="edge">
<title>Node20&#45;&gt;Node23</title>
<g id="a_edge32_Node000020_Node000023"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-242.47C361.49,-238.38 379.94,-234.07 395.79,-230.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="396.37,-233.6 405.31,-227.91 394.77,-226.78 396.37,-233.6"/>
</a>
</g>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<g id="Node000024" class="node">
<title>Node24</title>
<g id="a_node24"><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.">
<g id="a_Node000024"><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="#666666" points="486.62,-353.88 390.38,-353.88 390.38,-323.38 486.62,-323.38 486.62,-353.88"/>
<text text-anchor="start" x="398.38" y="-340.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-329.12" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
@@ -491,82 +596,85 @@ var sectionId = 'dynsection-4';
</g>
</g>
<!-- Node20&#45;&gt;Node24 -->
<g id="edge33" class="edge">
<g id="edge33_Node000020_Node000024" class="edge">
<title>Node20&#45;&gt;Node24</title>
<g id="a_edge33_Node000020_Node000024"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M309.66,-273.24C334.56,-285.98 369.93,-304.07 397.16,-317.99"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="395.29,-321.48 405.79,-322.92 398.48,-315.25 395.29,-321.48"/>
</a>
</g>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<g id="Node000022" class="node">
<title>Node22</title>
<g id="a_node22"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<g id="a_Node000022"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="608.75,-267.25 550,-267.25 550,-248 608.75,-248 608.75,-267.25"/>
<text text-anchor="middle" x="579.38" y="-253.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node22 -->
<g id="edge31" class="edge">
<g id="edge31_Node000021_Node000022" class="edge">
<title>Node21&#45;&gt;Node22</title>
<g id="a_edge31_Node000021_Node000022"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M497.99,-257.62C511.87,-257.62 526.34,-257.62 539.12,-257.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="538.86,-261.13 548.86,-257.62 538.86,-254.13 538.86,-261.13"/>
</a>
</g>
</g>
<!-- Node25 -->
<g id="node25" class="node">
<g id="Node000025" class="node">
<title>Node25</title>
<g id="a_node25"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<g id="a_Node000025"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="606.5,-315.25 552.25,-315.25 552.25,-296 606.5,-296 606.5,-315.25"/>
<text text-anchor="middle" x="579.38" y="-301.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node24&#45;&gt;Node25 -->
<g id="edge34" class="edge">
<g id="edge34_Node000024_Node000025" class="edge">
<title>Node24&#45;&gt;Node25</title>
<g id="a_edge34_Node000024_Node000025"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-327.36C504.69,-323.13 524.64,-318.39 541.35,-314.42"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="541.89,-317.65 550.81,-311.94 540.27,-310.84 541.89,-317.65"/>
</a>
</g>
</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="hill__cipher_8cpp_a04391124480d2a49f2dec900237b0712_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>
<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()"/>
<use id="arrowup" xlink:href="#arrowUp" x="0" y="0" onmousedown="handlePan(0,-1)"/>
<use id="arrowright" xlink:href="#arrowRight" x="0" y="0" onmousedown="handlePan(1,0)"/>
<use id="arrowdown" xlink:href="#arrowDown" x="0" y="0" onmousedown="handlePan(0,1)"/>
<use id="arrowleft" xlink:href="#arrowLeft" x="0" y="0" onmousedown="handlePan(-1,0)"/>
</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="hill__cipher_8cpp_a04391124480d2a49f2dec900237b0712_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>
<style type='text/css'>
<![CDATA[
[data-mouse-over-selected='false'] { opacity: 0.7; }
[data-mouse-over-selected='true'] { opacity: 1.0; }
]]>
</style>
<script type="application/ecmascript"><![CDATA[
document.addEventListener('DOMContentLoaded', (event) => {
highlightEdges();
highlightAdjacentNodes();
});
]]></script>
</svg>

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -9,48 +9,54 @@
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 707.25)">
<title>test2</title>
<!-- Node1 -->
<g id="node1" class="node">
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Self test 2 &#45; using 8x8 randomly generated key.">
<g id="a_Node000001"><a xlink:title="Self test 2 &#45; using 8x8 randomly generated key.">
<polygon fill="#999999" stroke="#666666" points="37.75,-512.25 0,-512.25 0,-493 37.75,-493 37.75,-512.25"/>
<text text-anchor="middle" x="18.88" y="-498.75" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="176.75,-703.25 73.75,-703.25 73.75,-684 176.75,-684 176.75,-703.25"/>
<text text-anchor="middle" x="125.25" y="-689.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M20.02,-512.34C20.99,-541.27 27.78,-627.75 73.75,-675.62 74.33,-676.23 74.93,-676.81 75.55,-677.38"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="73.34,-680.8 83.54,-683.67 77.35,-675.07 73.34,-680.8"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html#" xlink:title=" ">
<g id="a_Node000003"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="176.75,-666.25 73.75,-666.25 73.75,-647 176.75,-647 176.75,-666.25"/>
<text text-anchor="middle" x="125.25" y="-652.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::compare</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M21.45,-512.41C25.73,-536 39.58,-596.68 73.75,-632.62 76.87,-635.91 80.54,-638.79 84.44,-641.32"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="82.4,-644.74 92.84,-646.56 85.81,-638.63 82.4,-644.74"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<g id="a_Node000004"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<polygon fill="white" stroke="#666666" points="173.38,-201.88 77.12,-201.88 77.12,-171.38 173.38,-171.38 173.38,-201.88"/>
<text text-anchor="start" x="85.12" y="-188.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-177.12" font-family="Helvetica,sans-Serif" font-size="10.00">::decrypt_text</text>
@@ -58,45 +64,54 @@
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M22.09,-492.59C28.66,-463.25 49.15,-375.28 73.75,-304.62 85.12,-271.96 101.27,-235.52 112.22,-211.9"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="115.78,-213.55 116.85,-203.01 109.44,-210.58 115.78,-213.55"/>
</a>
</g>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_node8"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<g id="a_Node000008"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="484.38,-19.25 392.62,-19.25 392.62,0 484.38,0 484.38,-19.25"/>
<text text-anchor="middle" x="438.5" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::length</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node8 -->
<g id="edge38" class="edge">
<g id="edge38_Node000001_Node000008" class="edge">
<title>Node1&#45;&gt;Node8</title>
<g id="a_edge38_Node000001_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M20.25,-492.63C22.29,-442.34 33.59,-217.29 73.75,-162.62 147.31,-62.49 299.2,-27.45 381.52,-15.52"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="381.75,-18.89 391.18,-14.05 380.79,-11.95 381.75,-18.89"/>
</a>
</g>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<g id="Node000010" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<g id="a_Node000010"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="747.75,-391.25 661.25,-391.25 661.25,-372 747.75,-372 747.75,-391.25"/>
<text text-anchor="middle" x="704.5" y="-377.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node10 -->
<g id="edge37" class="edge">
<g id="edge37_Node000001_Node000010" class="edge">
<title>Node1&#45;&gt;Node10</title>
<g id="a_edge37_Node000001_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M32.1,-512.72C67.55,-540.94 174.49,-618.62 277.12,-618.62 277.12,-618.62 277.12,-618.62 439.5,-618.62 524.04,-618.62 560.81,-632.35 625.25,-577.62 679.41,-531.63 696.42,-442.84 701.48,-402.49"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="705.06,-402.95 702.7,-392.62 698.11,-402.17 705.06,-402.95"/>
</a>
</g>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<g id="Node000011" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<g id="a_Node000011"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<polygon fill="white" stroke="#666666" points="173.38,-343.88 77.12,-343.88 77.12,-313.38 173.38,-313.38 173.38,-343.88"/>
<text text-anchor="start" x="85.12" y="-330.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-319.12" font-family="Helvetica,sans-Serif" font-size="10.00">::encrypt_text</text>
@@ -104,30 +119,36 @@
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge12" class="edge">
<g id="edge12_Node000001_Node000011" class="edge">
<title>Node1&#45;&gt;Node11</title>
<g id="a_edge12_Node000001_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M24.67,-492.55C33.63,-473.98 53.8,-433.26 73.75,-400.62 83.72,-384.33 96,-366.76 105.96,-353.06"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="109.33,-355.39 112.43,-345.25 103.69,-351.24 109.33,-355.39"/>
</a>
</g>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<g id="Node000012" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<g id="a_Node000012"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="606.12,-568.25 552.62,-568.25 552.62,-549 606.12,-549 606.12,-568.25"/>
<text text-anchor="middle" x="579.38" y="-554.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node12 -->
<g id="edge14" class="edge">
<g id="edge14_Node000001_Node000012" class="edge">
<title>Node1&#45;&gt;Node12</title>
<g id="a_edge14_Node000001_Node000012"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M38.08,-506.69C90.66,-518.2 247.39,-550.86 379.5,-561.62 431.77,-565.88 445.06,-562.6 497.5,-561.62 511.91,-561.36 527.76,-560.82 541.58,-560.28"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="541.31,-563.75 551.16,-559.84 541.02,-556.76 541.31,-563.75"/>
</a>
</g>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<g id="Node000013" class="node">
<title>Node13</title>
<g id="a_node13"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" target="_top" xlink:title="Generate encryption and decryption key pair.">
<g id="a_Node000013"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" target="_top" xlink:title="Generate encryption and decryption key pair.">
<polygon fill="white" stroke="#666666" points="173.38,-439.88 77.12,-439.88 77.12,-409.38 173.38,-409.38 173.38,-439.88"/>
<text text-anchor="start" x="85.12" y="-426.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-415.12" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_keys</text>
@@ -135,15 +156,18 @@
</g>
</g>
<!-- Node1&#45;&gt;Node13 -->
<g id="edge15" class="edge">
<g id="edge15_Node000001_Node000013" class="edge">
<title>Node1&#45;&gt;Node13</title>
<g id="a_edge15_Node000001_Node000013"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M33.09,-492.75C48.48,-481.25 74.37,-461.9 94.63,-446.76"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="96.29,-449.14 102.2,-440.35 92.1,-443.53 96.29,-449.14"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<g id="a_Node000005"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<polygon fill="white" stroke="#666666" points="326.25,-132.88 230,-132.88 230,-102.38 326.25,-102.38 326.25,-132.88"/>
<text text-anchor="start" x="238" y="-119.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-108.12" font-family="Helvetica,sans-Serif" font-size="10.00">::codec</text>
@@ -151,15 +175,18 @@
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge4_Node000004_Node000005" class="edge">
<title>Node4&#45;&gt;Node5</title>
<g id="a_edge4_Node000004_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M160.49,-170.97C181.92,-161.17 209.75,-148.44 232.85,-137.87"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="234.13,-140.68 241.76,-133.34 231.21,-134.32 234.13,-140.68"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" target="_top" xlink:title="Get the index of a character in the STRKEY.">
<g id="a_Node000006"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" target="_top" xlink:title="Get the index of a character in the STRKEY.">
<polygon fill="white" stroke="#666666" points="486.62,-154.88 390.38,-154.88 390.38,-124.38 486.62,-124.38 486.62,-154.88"/>
<text text-anchor="start" x="398.38" y="-141.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-130.12" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
@@ -167,21 +194,27 @@
</g>
</g>
<!-- Node5&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<g id="edge5_Node000005_Node000006" class="edge">
<title>Node5&#45;&gt;Node6</title>
<g id="a_edge5_Node000005_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.64,-124.23C343.24,-126.53 362.07,-129.15 379.43,-131.56"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="378.63,-135.12 389.02,-133.03 379.59,-128.19 378.63,-135.12"/>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<g id="edge7_Node000005_Node000008" class="edge">
<title>Node5&#45;&gt;Node8</title>
<g id="a_edge7_Node000005_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M294.64,-102.01C313.43,-83.75 346.65,-53.52 379.5,-33.62 385.37,-30.07 391.87,-26.81 398.32,-23.92"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="399.49,-26.8 407.34,-19.68 396.76,-20.35 399.49,-26.8"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<g id="a_Node000009"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<polygon fill="white" stroke="#666666" points="486.62,-105.88 390.38,-105.88 390.38,-75.38 486.62,-75.38 486.62,-105.88"/>
<text text-anchor="start" x="398.38" y="-92.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-81.12" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
@@ -189,69 +222,90 @@
</g>
</g>
<!-- Node5&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<g id="edge8_Node000005_Node000009" class="edge">
<title>Node5&#45;&gt;Node9</title>
<g id="a_edge8_Node000005_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.64,-109.52C343.24,-106.69 362.07,-103.49 379.43,-100.53"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="379.75,-103.85 389.02,-98.72 378.57,-96.95 379.75,-103.85"/>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node10 -->
<g id="edge11" class="edge">
<g id="edge11_Node000005_Node000010" class="edge">
<title>Node5&#45;&gt;Node10</title>
<g id="a_edge11_Node000005_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M302.23,-101.9C321.82,-89.57 351.18,-73.41 379.5,-66.62 486.41,-41.02 545.58,-18.88 625.25,-94.62 664.64,-132.08 692.16,-301.98 700.7,-361.2"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="697.33,-361.37 702.19,-370.78 704.26,-360.39 697.33,-361.37"/>
</a>
</g>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<g id="Node000007" 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=" ">
<g id="a_Node000007"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="609.12,-170.25 549.62,-170.25 549.62,-151 609.12,-151 609.12,-170.25"/>
<text text-anchor="middle" x="579.38" y="-156.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<g id="edge6_Node000006_Node000007" class="edge">
<title>Node6&#45;&gt;Node7</title>
<g id="a_edge6_Node000006_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-146.79C503.76,-149.34 522.55,-152.18 538.69,-154.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="537.97,-158.21 548.38,-156.24 539.02,-151.29 537.97,-158.21"/>
</a>
</g>
</g>
<!-- Node9&#45;&gt;Node7 -->
<g id="edge10" class="edge">
<g id="edge10_Node000009_Node000007" class="edge">
<title>Node9&#45;&gt;Node7</title>
<g id="a_edge10_Node000009_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M477.5,-106.35C484.22,-109.32 491.11,-112.48 497.5,-115.62 516.24,-124.85 536.81,-136.31 552.51,-145.36"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="550.19,-148.64 560.6,-150.64 553.71,-142.59 550.19,-148.64"/>
</a>
</g>
</g>
<!-- Node9&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<g id="edge9_Node000009_Node000010" class="edge">
<title>Node9&#45;&gt;Node10</title>
<g id="a_edge9_Node000009_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M487.12,-91.57C528.72,-94.92 588.11,-106.19 625.25,-141.62 688.71,-202.16 700.77,-314.71 703.01,-360.96"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="699.54,-360.83 703.41,-370.69 706.54,-360.57 699.54,-360.83"/>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node5 -->
<g id="edge13" class="edge">
<g id="edge13_Node000011_Node000005" class="edge">
<title>Node11&#45;&gt;Node5</title>
<g id="a_edge13_Node000011_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M137.34,-313.11C163.34,-276.76 228.35,-185.84 259.69,-142.01"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="263.05,-144.33 266.01,-134.16 257.35,-140.26 263.05,-144.33"/>
</a>
</g>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<g id="Node000014" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<g id="a_Node000014"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="478.38,-391.25 398.62,-391.25 398.62,-372 478.38,-372 478.38,-391.25"/>
<text text-anchor="middle" x="438.5" y="-377.75" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node14 -->
<g id="edge16" class="edge">
<g id="edge16_Node000013_Node000014" class="edge">
<title>Node13&#45;&gt;Node14</title>
<g id="a_edge16_Node000013_Node000014"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.47,-409.81C186.12,-406.31 199.86,-402.94 212.75,-400.62 272.21,-389.96 341.63,-385.25 387.41,-383.19"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="387.39,-386.65 397.23,-382.73 387.09,-379.66 387.39,-386.65"/>
</a>
</g>
</g>
<!-- Node16 -->
<g id="node16" class="node">
<g id="Node000016" class="node">
<title>Node16</title>
<g id="a_node16"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<g id="a_Node000016"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<polygon fill="white" stroke="#666666" points="343.5,-439.88 212.75,-439.88 212.75,-409.38 343.5,-409.38 343.5,-439.88"/>
<text text-anchor="start" x="220.75" y="-426.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-415.12" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
@@ -259,15 +313,18 @@
</g>
</g>
<!-- Node13&#45;&gt;Node16 -->
<g id="edge20" class="edge">
<g id="edge20_Node000013_Node000016" class="edge">
<title>Node13&#45;&gt;Node16</title>
<g id="a_edge20_Node000013_Node000016"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.57,-424.62C182.49,-424.62 192.02,-424.62 201.55,-424.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="201.28,-428.13 211.28,-424.62 201.28,-421.13 201.28,-428.13"/>
</a>
</g>
</g>
<!-- Node20 -->
<g id="node20" class="node">
<g id="Node000020" class="node">
<title>Node20</title>
<g id="a_node20"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<g id="a_Node000020"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<polygon fill="white" stroke="#666666" points="343.5,-272.88 212.75,-272.88 212.75,-242.38 343.5,-242.38 343.5,-272.88"/>
<text text-anchor="start" x="220.75" y="-259.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-248.12" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_encryption_key</text>
@@ -275,90 +332,117 @@
</g>
</g>
<!-- Node13&#45;&gt;Node20 -->
<g id="edge29" class="edge">
<g id="edge29_Node000013_Node000020" class="edge">
<title>Node13&#45;&gt;Node20</title>
<g id="a_edge29_Node000013_Node000020"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M140.44,-408.91C167.09,-379.42 224.72,-315.64 255.96,-281.05"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="258.19,-283.7 262.3,-273.93 253,-279 258.19,-283.7"/>
</a>
</g>
</g>
<!-- Node26 -->
<g id="node26" class="node">
<g id="Node000026" class="node">
<title>Node26</title>
<g id="a_node26"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<g id="a_Node000026"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="318.38,-477.25 237.88,-477.25 237.88,-458 318.38,-458 318.38,-477.25"/>
<text text-anchor="middle" x="278.12" y="-463.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::make_pair</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node26 -->
<g id="edge36" class="edge">
<g id="edge36_Node000013_Node000026" class="edge">
<title>Node13&#45;&gt;Node26</title>
<g id="a_edge36_Node000013_Node000026"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.57,-438.11C192.07,-443.38 213.19,-449.4 231.52,-454.63"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="230.37,-458.22 240.94,-457.6 232.28,-451.49 230.37,-458.22"/>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node10 -->
<g id="edge19" class="edge">
<g id="edge19_Node000014_Node000010" class="edge">
<title>Node14&#45;&gt;Node10</title>
<g id="a_edge19_Node000014_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.57,-371.91C495.36,-368.21 515.28,-364.45 533.5,-362.62 574.08,-358.57 584.76,-357.78 625.25,-362.62 636.29,-363.95 648.01,-366.28 658.94,-368.87"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="657.99,-372.49 668.54,-371.51 659.69,-365.7 657.99,-372.49"/>
</a>
</g>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<g id="Node000015" class="node">
<title>Node15</title>
<g id="a_node15"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<g id="a_Node000015"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="625.25,-391.25 533.5,-391.25 533.5,-372 625.25,-372 625.25,-391.25"/>
<text text-anchor="middle" x="579.38" y="-377.75" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node15 -->
<g id="edge17" class="edge">
<g id="edge17_Node000014_Node000015" class="edge">
<title>Node14&#45;&gt;Node15</title>
<g id="a_edge17_Node000014_Node000015"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.55,-381.62C492.24,-381.62 507.89,-381.62 522.67,-381.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="522.24,-385.13 532.24,-381.62 522.24,-378.13 522.24,-385.13"/>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node10 -->
<g id="edge18" class="edge">
<g id="edge18_Node000015_Node000010" class="edge">
<title>Node15&#45;&gt;Node10</title>
<g id="a_edge18_Node000015_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M625.52,-381.62C633.45,-381.62 641.77,-381.62 649.9,-381.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="649.81,-385.13 659.81,-381.62 649.81,-378.13 649.81,-385.13"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node7 -->
<g id="edge28" class="edge">
<g id="edge28_Node000016_Node000007" class="edge">
<title>Node16&#45;&gt;Node7</title>
<g id="a_edge28_Node000016_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M289.25,-409.13C305.51,-385.43 339.7,-340.21 379.5,-314.62 425.85,-284.83 453.2,-309.38 497.5,-276.62 515.69,-263.18 549.6,-208.98 567.17,-179.67"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="570.55,-181.84 572.65,-171.45 564.53,-178.26 570.55,-181.84"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node10 -->
<g id="edge27" class="edge">
<g id="edge27_Node000016_Node000010" class="edge">
<title>Node16&#45;&gt;Node10</title>
<g id="a_edge27_Node000016_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M343.92,-423.4C413.73,-421.31 527.93,-415.7 625.25,-400.62 635.61,-399.02 646.61,-396.73 656.99,-394.28"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="657.64,-397.48 666.52,-391.71 655.98,-390.68 657.64,-397.48"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node14 -->
<g id="edge21" class="edge">
<g id="edge21_Node000016_Node000014" class="edge">
<title>Node16&#45;&gt;Node14</title>
<g id="a_edge21_Node000016_Node000014"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M336.75,-408.98C354.16,-404.25 373.08,-399.12 389.77,-394.58"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="390.65,-397.7 399.38,-391.7 388.81,-390.95 390.65,-397.7"/>
</a>
</g>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<g id="Node000017" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<g id="a_Node000017"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="464.12,-504.25 412.88,-504.25 412.88,-485 464.12,-485 464.12,-504.25"/>
<text text-anchor="middle" x="438.5" y="-490.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node17 -->
<g id="edge22" class="edge">
<g id="edge22_Node000016_Node000017" class="edge">
<title>Node16&#45;&gt;Node17</title>
<g id="a_edge22_Node000016_Node000017"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.29,-440.3C332.21,-442.82 338.08,-445.6 343.5,-448.62 361.2,-458.5 361.53,-467.25 379.5,-476.62 386.49,-480.27 394.34,-483.32 401.96,-485.82"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="400.87,-489.45 411.46,-488.97 402.89,-482.74 400.87,-489.45"/>
</a>
</g>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<g id="Node000018" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" target="_top" xlink:title=" ">
<g id="a_Node000018"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="486.62,-552.88 390.38,-552.88 390.38,-522.38 486.62,-522.38 486.62,-552.88"/>
<text text-anchor="start" x="398.38" y="-539.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-528.12" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
@@ -366,78 +450,99 @@
</g>
</g>
<!-- Node16&#45;&gt;Node18 -->
<g id="edge23" class="edge">
<g id="edge23_Node000016_Node000018" class="edge">
<title>Node16&#45;&gt;Node18</title>
<g id="a_edge23_Node000016_Node000018"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M331.23,-440.22C335.62,-442.65 339.79,-445.43 343.5,-448.62 368.52,-470.17 354.86,-491.64 379.5,-513.62 380.37,-514.41 381.28,-515.16 382.2,-515.9"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="379.87,-519.22 390.12,-521.91 383.79,-513.42 379.87,-519.22"/>
</a>
</g>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<g id="Node000019" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<g id="a_Node000019"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="468.25,-467.25 408.75,-467.25 408.75,-448 468.25,-448 468.25,-467.25"/>
<text text-anchor="middle" x="438.5" y="-453.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node19 -->
<g id="edge26" class="edge">
<g id="edge26_Node000016_Node000019" class="edge">
<title>Node16&#45;&gt;Node19</title>
<g id="a_edge26_Node000016_Node000019"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-438.14C362.18,-441.93 381.41,-445.94 397.67,-449.33"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="396.9,-452.95 407.4,-451.56 398.33,-446.1 396.9,-452.95"/>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node10 -->
<g id="edge25" class="edge">
<g id="edge25_Node000018_Node000010" class="edge">
<title>Node18&#45;&gt;Node10</title>
<g id="a_edge25_Node000018_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M479.84,-521.96C485.83,-519.34 491.88,-516.52 497.5,-513.62 567.81,-477.39 644.83,-424.02 681.6,-397.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="682.99,-400.21 689.05,-391.52 678.89,-394.54 682.99,-400.21"/>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node12 -->
<g id="edge24" class="edge">
<g id="edge24_Node000018_Node000012" class="edge">
<title>Node18&#45;&gt;Node12</title>
<g id="a_edge24_Node000018_Node000012"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-544.79C504.82,-547.5 524.93,-550.54 541.71,-553.08"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="540.8,-556.63 551.21,-554.67 541.84,-549.71 540.8,-556.63"/>
</a>
</g>
</g>
<!-- Node20&#45;&gt;Node7 -->
<g id="edge35" class="edge">
<g id="edge35_Node000020_Node000007" class="edge">
<title>Node20&#45;&gt;Node7</title>
<g id="a_edge35_Node000020_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M302.47,-241.89C322.2,-229.26 351.63,-211.99 379.5,-201.62 432.66,-181.85 497.54,-170.74 538.42,-165.21"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="538.82,-168.56 548.29,-163.8 537.92,-161.62 538.82,-168.56"/>
</a>
</g>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<g id="Node000021" class="node">
<title>Node21</title>
<g id="a_node21"><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.">
<g id="a_Node000021"><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="#666666" points="497.5,-267.25 379.5,-267.25 379.5,-248 497.5,-248 497.5,-267.25"/>
<text text-anchor="middle" x="438.5" y="-253.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</text>
</a>
</g>
</g>
<!-- Node20&#45;&gt;Node21 -->
<g id="edge30" class="edge">
<g id="edge30_Node000020_Node000021" class="edge">
<title>Node20&#45;&gt;Node21</title>
<g id="a_edge30_Node000020_Node000021"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-257.62C351.99,-257.62 360.17,-257.62 368.22,-257.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="368.08,-261.13 378.08,-257.62 368.08,-254.13 368.08,-261.13"/>
</a>
</g>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<g id="Node000023" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<g id="a_Node000023"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="470.5,-230.25 406.5,-230.25 406.5,-211 470.5,-211 470.5,-230.25"/>
<text text-anchor="middle" x="438.5" y="-216.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::isfinite</text>
</a>
</g>
</g>
<!-- Node20&#45;&gt;Node23 -->
<g id="edge32" class="edge">
<g id="edge32_Node000020_Node000023" class="edge">
<title>Node20&#45;&gt;Node23</title>
<g id="a_edge32_Node000020_Node000023"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-242.47C361.49,-238.38 379.94,-234.07 395.79,-230.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="396.37,-233.6 405.31,-227.91 394.77,-226.78 396.37,-233.6"/>
</a>
</g>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<g id="Node000024" class="node">
<title>Node24</title>
<g id="a_node24"><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.">
<g id="a_Node000024"><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="#666666" points="486.62,-353.88 390.38,-353.88 390.38,-323.38 486.62,-323.38 486.62,-353.88"/>
<text text-anchor="start" x="398.38" y="-340.38" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-329.12" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
@@ -445,40 +550,49 @@
</g>
</g>
<!-- Node20&#45;&gt;Node24 -->
<g id="edge33" class="edge">
<g id="edge33_Node000020_Node000024" class="edge">
<title>Node20&#45;&gt;Node24</title>
<g id="a_edge33_Node000020_Node000024"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M309.66,-273.24C334.56,-285.98 369.93,-304.07 397.16,-317.99"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="395.29,-321.48 405.79,-322.92 398.48,-315.25 395.29,-321.48"/>
</a>
</g>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<g id="Node000022" class="node">
<title>Node22</title>
<g id="a_node22"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<g id="a_Node000022"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="608.75,-267.25 550,-267.25 550,-248 608.75,-248 608.75,-267.25"/>
<text text-anchor="middle" x="579.38" y="-253.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node22 -->
<g id="edge31" class="edge">
<g id="edge31_Node000021_Node000022" class="edge">
<title>Node21&#45;&gt;Node22</title>
<g id="a_edge31_Node000021_Node000022"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M497.99,-257.62C511.87,-257.62 526.34,-257.62 539.12,-257.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="538.86,-261.13 548.86,-257.62 538.86,-254.13 538.86,-261.13"/>
</a>
</g>
</g>
<!-- Node25 -->
<g id="node25" class="node">
<g id="Node000025" class="node">
<title>Node25</title>
<g id="a_node25"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<g id="a_Node000025"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="606.5,-315.25 552.25,-315.25 552.25,-296 606.5,-296 606.5,-315.25"/>
<text text-anchor="middle" x="579.38" y="-301.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node24&#45;&gt;Node25 -->
<g id="edge34" class="edge">
<g id="edge34_Node000024_Node000025" class="edge">
<title>Node24&#45;&gt;Node25</title>
<g id="a_edge34_Node000024_Node000025"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-327.36C504.69,-323.13 524.64,-318.39 541.35,-314.42"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="541.89,-317.65 550.81,-311.94 540.27,-310.84 541.89,-317.65"/>
</a>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -1,27 +1,63 @@
<map id="test1" name="test1">
<area shape="rect" id="node1" title="Self test 1 &#45; using 3x3 randomly generated key." alt="" coords="5,443,56,468"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="104,287,241,312"/>
<area shape="rect" id="node3" href="$d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" title="Decrypt a given text using a given key." alt="" coords="108,337,237,377"/>
<area shape="rect" id="node9" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="887,509,1002,535"/>
<area shape="rect" id="node10" href="$d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" title="Encrypt a given text using a given key." alt="" coords="108,402,237,443"/>
<area shape="rect" id="node11" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="742,560,814,586"/>
<area shape="rect" id="node12" href="$d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" title="Generate encryption and decryption key pair." alt="" coords="108,467,237,508"/>
<area shape="rect" id="node4" href="$d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" title="Convenience function to perform block cipher operations. The operations are identical for both encryp..." alt="" coords="312,139,440,180"/>
<area shape="rect" id="node5" href="$d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" title="Get the index of a character in the STRKEY." alt="" coords="526,171,654,212"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/size.html#" title=" " alt="" coords="529,5,651,31"/>
<area shape="rect" id="node8" href="$d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" title="helper function to perform vector multiplication with encryption or decryption matrix" alt="" coords="526,106,654,147"/>
<area shape="rect" id="node6" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="738,219,818,244"/>
<area shape="rect" id="node13" href="$d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" title=" " alt="" coords="537,503,643,528"/>
<area shape="rect" id="node15" href="$d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" title="Generate decryption matrix from an encryption matrix key." alt="" coords="289,603,463,644"/>
<area shape="rect" id="node19" href="$d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid..." alt="" coords="289,337,463,377"/>
<area shape="rect" id="node25" 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="323,503,430,528"/>
<area shape="rect" id="node14" href="$d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" title=" " alt="" coords="717,459,839,484"/>
<area shape="rect" id="node16" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/program/exit.html#" title=" " alt="" coords="556,668,624,694"/>
<area shape="rect" id="node17" href="$d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" title=" " alt="" coords="526,603,654,644"/>
<area shape="rect" id="node18" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/round.html#" title=" " alt="" coords="550,769,630,795"/>
<area shape="rect" id="node20" href="$d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" title="Compute GCD of two integers using Euler&#39;s algorithm." alt="" coords="511,287,669,312"/>
<area shape="rect" id="node22" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/isfinite.html#" title=" " alt="" coords="547,401,633,427"/>
<area shape="rect" id="node23" href="$d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" title="Function to generate a random integer in a given interval." alt="" coords="526,337,654,377"/>
<area shape="rect" id="node21" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="739,287,817,312"/>
<area shape="rect" id="node24" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="742,344,814,370"/>
<area shape="rect" id="Node000001" title="Self test 1 &#45; using 3x3 randomly generated key." alt="" coords="5,443,56,468"/>
<area shape="rect" id="Node000002" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="104,287,241,312"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="33,441,56,385,76,352,102,323,109,318,112,322,105,327,80,355,61,387,38,443"/>
<area shape="rect" id="Node000003" href="$d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" title="Decrypt a given text using a given key." alt="" coords="108,337,237,377"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="42,440,69,415,102,388,110,383,113,387,105,392,72,419,46,444"/>
<area shape="rect" id="Node000009" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="887,509,1002,535"/>
<area shape="poly" id="edge36_Node000001_Node000009" title=" " alt="" coords="39,468,73,553,103,612,141,675,188,734,242,783,272,803,304,817,339,827,375,830,591,830,634,828,670,822,701,812,728,797,779,755,837,696,868,659,894,619,930,548,935,550,898,622,872,662,841,700,783,759,731,802,703,816,671,827,635,833,591,835,375,835,338,832,303,822,270,807,239,788,184,737,137,678,98,615,68,555,34,470"/>
<area shape="rect" id="Node000010" href="$d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" title="Encrypt a given text using a given key." alt="" coords="108,402,237,443"/>
<area shape="poly" id="edge11_Node000001_Node000010" title=" " alt="" coords="55,447,93,438,94,443,57,452"/>
<area shape="rect" id="Node000011" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="742,560,814,586"/>
<area shape="poly" id="edge13_Node000001_Node000011" title=" " alt="" coords="44,467,70,494,105,517,158,534,229,546,406,562,588,569,727,570,727,576,588,575,406,568,229,552,156,539,103,522,66,498,40,471"/>
<area shape="rect" id="Node000012" href="$d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" title="Generate encryption and decryption key pair." alt="" coords="108,467,237,508"/>
<area shape="poly" id="edge14_Node000001_Node000012" title=" " alt="" coords="57,458,94,467,93,472,55,464"/>
<area shape="rect" id="Node000004" href="$d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" title="Convenience function to perform block cipher operations. The operations are identical for both encryp..." alt="" coords="312,139,440,180"/>
<area shape="poly" id="edge3_Node000003_Node000004" title=" " alt="" coords="223,334,239,323,274,291,305,256,352,191,357,194,309,260,278,295,243,327,226,338"/>
<area shape="rect" id="Node000005" href="$d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" title="Get the index of a character in the STRKEY." alt="" coords="526,171,654,212"/>
<area shape="poly" id="edge4_Node000004_Node000005" title=" " alt="" coords="441,166,512,177,511,182,440,172"/>
<area shape="rect" id="Node000007" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/size.html#" title=" " alt="" coords="529,5,651,31"/>
<area shape="poly" id="edge6_Node000004_Node000007" title=" " alt="" coords="397,137,447,93,510,48,535,35,538,40,513,52,450,97,400,141"/>
<area shape="rect" id="Node000008" href="$d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" title="helper function to perform vector multiplication with encryption or decryption matrix" alt="" coords="526,106,654,147"/>
<area shape="poly" id="edge7_Node000004_Node000008" title=" " alt="" coords="440,147,511,136,512,141,441,152"/>
<area shape="poly" id="edge10_Node000004_Node000009" title=" " alt="" coords="408,136,455,111,511,92,609,72,652,68,692,70,730,78,767,94,804,120,841,155,872,195,896,241,914,288,928,337,942,427,946,494,941,495,937,428,922,338,909,290,891,243,867,198,837,159,800,124,764,99,728,83,691,75,652,73,610,77,512,97,457,116,411,141"/>
<area shape="rect" id="Node000006" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="738,219,818,244"/>
<area shape="poly" id="edge5_Node000005_Node000006" title=" " alt="" coords="655,203,724,217,723,223,654,208"/>
<area shape="poly" id="edge9_Node000008_Node000006" title=" " alt="" coords="645,145,670,157,749,208,746,212,667,162,642,150"/>
<area shape="poly" id="edge8_Node000008_Node000009" title=" " alt="" coords="655,128,700,136,750,150,799,172,841,204,869,238,892,276,909,316,922,358,939,435,945,495,940,495,933,436,917,359,904,318,887,278,865,241,837,208,796,177,748,155,699,141,654,133"/>
<area shape="poly" id="edge12_Node000010_Node000004" title=" " alt="" coords="223,399,239,387,266,352,298,300,356,192,360,195,303,303,271,355,243,391,226,403"/>
<area shape="rect" id="Node000013" href="$d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" title=" " alt="" coords="537,503,643,528"/>
<area shape="poly" id="edge15_Node000012_Node000013" title=" " alt="" coords="237,482,343,481,464,488,523,497,522,502,463,493,343,486,237,487"/>
<area shape="rect" id="Node000015" href="$d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" title="Generate decryption matrix from an encryption matrix key." alt="" coords="289,603,463,644"/>
<area shape="poly" id="edge19_Node000012_Node000015" title=" " alt="" coords="206,506,334,592,331,597,203,511"/>
<area shape="rect" id="Node000019" href="$d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid..." alt="" coords="289,337,463,377"/>
<area shape="poly" id="edge28_Node000012_Node000019" title=" " alt="" coords="217,464,240,452,336,384,339,389,242,456,220,469"/>
<area shape="rect" id="Node000025" 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="323,503,430,528"/>
<area shape="poly" id="edge35_Node000012_Node000025" title=" " alt="" coords="237,494,309,504,308,509,236,499"/>
<area shape="poly" id="edge18_Node000013_Node000009" title=" " alt="" coords="644,514,872,518,872,523,644,519"/>
<area shape="rect" id="Node000014" href="$d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" title=" " alt="" coords="717,459,839,484"/>
<area shape="poly" id="edge16_Node000013_Node000014" title=" " alt="" coords="643,501,706,486,707,491,644,506"/>
<area shape="poly" id="edge17_Node000014_Node000009" title=" " alt="" coords="824,482,887,502,885,507,822,487"/>
<area shape="poly" id="edge27_Node000015_Node000006" title=" " alt="" coords="398,601,461,539,484,512,494,500,510,488,533,476,554,471,594,467,630,462,648,453,667,438,682,418,690,399,693,359,695,318,702,296,715,273,736,251,740,255,719,276,707,298,701,319,699,360,695,400,687,421,671,441,651,457,632,467,594,473,555,476,535,481,513,492,498,504,488,515,465,543,401,605"/>
<area shape="poly" id="edge26_Node000015_Node000009" title=" " alt="" coords="403,642,452,676,481,692,512,704,555,714,590,716,624,713,668,704,719,691,758,676,794,655,837,625,885,585,922,544,926,548,889,589,841,630,796,660,760,680,721,696,669,709,625,718,590,722,554,719,511,709,479,697,449,681,400,646"/>
<area shape="poly" id="edge20_Node000015_Node000013" title=" " alt="" coords="417,600,549,533,551,538,419,605"/>
<area shape="rect" id="Node000016" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/program/exit.html#" title=" " alt="" coords="556,668,624,694"/>
<area shape="poly" id="edge21_Node000015_Node000016" title=" " alt="" coords="455,642,542,665,541,671,454,647"/>
<area shape="rect" id="Node000017" href="$d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" title=" " alt="" coords="526,603,654,644"/>
<area shape="poly" id="edge22_Node000015_Node000017" title=" " alt="" coords="464,621,511,621,511,626,464,626"/>
<area shape="rect" id="Node000018" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/round.html#" title=" " alt="" coords="550,769,630,795"/>
<area shape="poly" id="edge25_Node000015_Node000018" title=" " alt="" coords="397,643,446,694,478,723,513,748,538,761,535,766,510,752,475,727,443,698,393,646"/>
<area shape="poly" id="edge24_Node000017_Node000009" title=" " alt="" coords="654,623,743,618,792,610,838,596,882,572,918,543,921,547,885,576,840,601,793,615,744,623,655,629"/>
<area shape="poly" id="edge23_Node000017_Node000011" title=" " alt="" coords="654,604,727,584,728,589,655,609"/>
<area shape="poly" id="edge34_Node000019_Node000006" title=" " alt="" coords="403,334,451,301,510,272,566,255,623,243,723,231,723,237,623,248,567,260,512,277,454,306,406,338"/>
<area shape="rect" id="Node000020" href="$d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" title="Compute GCD of two integers using Euler&#39;s algorithm." alt="" coords="511,287,669,312"/>
<area shape="poly" id="edge29_Node000019_Node000020" title=" " alt="" coords="454,333,524,314,526,319,455,339"/>
<area shape="rect" id="Node000022" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/isfinite.html#" title=" " alt="" coords="547,401,633,427"/>
<area shape="poly" id="edge31_Node000019_Node000022" title=" " alt="" coords="455,375,534,397,532,402,454,380"/>
<area shape="rect" id="Node000023" href="$d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" title="Function to generate a random integer in a given interval." alt="" coords="526,337,654,377"/>
<area shape="poly" id="edge32_Node000019_Node000023" title=" " alt="" coords="464,354,511,354,511,360,464,360"/>
<area shape="rect" id="Node000021" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="739,287,817,312"/>
<area shape="poly" id="edge30_Node000020_Node000021" title=" " alt="" coords="669,297,724,297,724,302,669,302"/>
<area shape="rect" id="Node000024" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="742,344,814,370"/>
<area shape="poly" id="edge33_Node000023_Node000024" title=" " alt="" coords="655,354,726,354,726,360,655,360"/>
</map>

View File

@@ -1 +1 @@
a8e07548779d92465038921e89214317
8109ef22d7a8c13e895ce78ff7f4d90b

View File

@@ -5,83 +5,86 @@
-->
<!-- Title: test1 Pages: 1 -->
<!--zoomable 629 -->
<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[
.node, .edge {opacity: 0.7;}
.node.selected, .edge.selected {opacity: 1;}
.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">
<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="arrowUp" transform="translate(30 24)">
<use xlink:href="#rim"/>
<path pointer-events="none" 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" transform="rotate(90) translate(36 -43)">
<use xlink:href="#rim"/>
<path pointer-events="none" 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" transform="rotate(180) translate(-30 -48)">
<use xlink:href="#rim"/>
<path pointer-events="none" 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" transform="rotate(270) translate(-36 17)">
<use xlink:href="#rim"/>
<path pointer-events="none" 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="application/ecmascript">
var viewWidth = 756;
var viewHeight = 629;
var sectionId = 'dynsection-3';
</script>
<script xlink:href="../../svgpan.js"/>
<script type="application/ecmascript" xlink:href="../../svg.min.js"/>
<svg id="graph" class="graph">
<g id="viewport">
<title>test1</title>
<!-- Node1 -->
<g id="node1" class="node">
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Self test 1 &#45; using 3x3 randomly generated key.">
<g id="a_Node000001"><a xlink:title="Self test 1 &#45; using 3x3 randomly generated key.">
<polygon fill="#999999" stroke="#666666" points="37.75,-292.62 0,-292.62 0,-273.38 37.75,-273.38 37.75,-292.62"/>
<text text-anchor="middle" x="18.88" y="-279.12" font-family="Helvetica,sans-Serif" font-size="10.00">test1</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="176.75,-409.62 73.75,-409.62 73.75,-390.38 176.75,-390.38 176.75,-409.62"/>
<text text-anchor="middle" x="125.25" y="-396.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M22.82,-293.12C29.02,-312.77 45.28,-356.33 73.75,-381 75.32,-382.36 76.99,-383.62 78.74,-384.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="76.55,-388.15 86.98,-389.99 79.98,-382.04 76.55,-388.15"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<g id="a_Node000003"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<polygon fill="white" stroke="#666666" points="173.38,-372.25 77.12,-372.25 77.12,-341.75 173.38,-341.75 173.38,-372.25"/>
<text text-anchor="start" x="85.12" y="-358.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-347.5" font-family="Helvetica,sans-Serif" font-size="10.00">::decrypt_text</text>
@@ -89,30 +92,36 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M29.11,-292.91C39.33,-303.49 56.62,-320.31 73.75,-332 75.72,-333.34 77.77,-334.66 79.87,-335.94"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="77.87,-339.4 88.3,-341.29 81.33,-333.31 77.87,-339.4"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_node9"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<g id="a_Node000009"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="747.75,-242.62 661.25,-242.62 661.25,-223.38 747.75,-223.38 747.75,-242.62"/>
<text text-anchor="middle" x="704.5" y="-229.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node9 -->
<g id="edge36" class="edge">
<g id="edge36_Node000001_Node000009" class="edge">
<title>Node1&#45;&gt;Node9</title>
<g id="a_edge36_Node000001_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M23.23,-272.93C40.71,-222.51 126.4,0 277.12,0 277.12,0 277.12,0 439.5,0 533.47,0 559.99,-33.38 625.25,-101 658.1,-135.03 683.02,-185.35 695.21,-212.99"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="692.35,-214.22 699.51,-222.03 698.79,-211.46 692.35,-214.22"/>
</a>
</g>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<g id="Node000010" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<g id="a_Node000010"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<polygon fill="white" stroke="#666666" points="173.38,-323.25 77.12,-323.25 77.12,-292.75 173.38,-292.75 173.38,-323.25"/>
<text text-anchor="start" x="85.12" y="-309.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00">::encrypt_text</text>
@@ -120,30 +129,36 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node1&#45;&gt;Node10 -->
<g id="edge11" class="edge">
<g id="edge11_Node000001_Node000010" class="edge">
<title>Node1&#45;&gt;Node10</title>
<g id="a_edge11_Node000001_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M38.06,-287.35C46.03,-289.27 55.89,-291.63 66.05,-294.06"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="65.14,-297.68 75.68,-296.61 66.77,-290.87 65.14,-297.68"/>
</a>
</g>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<g id="Node000011" class="node">
<title>Node11</title>
<g id="a_node11"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<g id="a_Node000011"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="606.12,-204.62 552.62,-204.62 552.62,-185.38 606.12,-185.38 606.12,-204.62"/>
<text text-anchor="middle" x="579.38" y="-191.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<g id="edge13_Node000001_Node000011" class="edge">
<title>Node1&#45;&gt;Node11</title>
<g id="a_edge13_Node000001_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M27.79,-272.93C37.34,-261.59 54.54,-243.6 73.75,-235 157.35,-197.55 439.42,-194.57 541.29,-194.75"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="541.23,-198.25 551.24,-194.78 541.25,-191.25 541.23,-198.25"/>
</a>
</g>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<g id="Node000012" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" target="_top" xlink:title="Generate encryption and decryption key pair.">
<g id="a_Node000012"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" target="_top" xlink:title="Generate encryption and decryption key pair.">
<polygon fill="white" stroke="#666666" points="173.38,-274.25 77.12,-274.25 77.12,-243.75 173.38,-243.75 173.38,-274.25"/>
<text text-anchor="start" x="85.12" y="-260.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-249.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_keys</text>
@@ -151,15 +166,18 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node1&#45;&gt;Node12 -->
<g id="edge14" class="edge">
<g id="edge14_Node000001_Node000012" class="edge">
<title>Node1&#45;&gt;Node12</title>
<g id="a_edge14_Node000001_Node000012"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M38.06,-278.82C46.03,-276.99 55.89,-274.72 66.05,-272.38"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="66.72,-275.59 75.68,-269.94 65.15,-268.77 66.72,-275.59"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<g id="a_Node000004"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<polygon fill="white" stroke="#666666" points="326.25,-520.25 230,-520.25 230,-489.75 326.25,-489.75 326.25,-520.25"/>
<text text-anchor="start" x="238" y="-506.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-495.5" font-family="Helvetica,sans-Serif" font-size="10.00">::codec</text>
@@ -167,15 +185,18 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge3_Node000003_Node000004" class="edge">
<title>Node3&#45;&gt;Node4</title>
<g id="a_edge3_Node000003_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M164.05,-372.63C168.52,-375.14 172.86,-377.94 176.75,-381 212.8,-409.38 244.22,-452.96 261.91,-480.17"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="259.47,-481.85 267.79,-488.4 265.37,-478.09 259.47,-481.85"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" target="_top" xlink:title="Get the index of a character in the STRKEY.">
<g id="a_Node000005"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" target="_top" xlink:title="Get the index of a character in the STRKEY.">
<polygon fill="white" stroke="#666666" points="486.62,-496.25 390.38,-496.25 390.38,-465.75 486.62,-465.75 486.62,-496.25"/>
<text text-anchor="start" x="398.38" y="-482.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
@@ -183,30 +204,36 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge4_Node000004_Node000005" class="edge">
<title>Node4&#45;&gt;Node5</title>
<g id="a_edge4_Node000004_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.64,-497.8C343.24,-495.28 362.07,-492.43 379.43,-489.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="379.65,-493.15 389.02,-488.2 378.6,-486.23 379.65,-493.15"/>
</a>
</g>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<g id="a_Node000007"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="484.38,-620.62 392.62,-620.62 392.62,-601.38 484.38,-601.38 484.38,-620.62"/>
<text text-anchor="middle" x="438.5" y="-607.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::length</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<g id="edge6_Node000004_Node000007" class="edge">
<title>Node4&#45;&gt;Node7</title>
<g id="a_edge6_Node000004_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M295.05,-520.53C313.96,-538.35 347.05,-567.61 379.5,-587 385.39,-590.52 391.9,-593.76 398.36,-596.65"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="396.8,-600.21 407.38,-600.88 399.53,-593.77 396.8,-600.21"/>
</a>
</g>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<g id="a_Node000008"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<polygon fill="white" stroke="#666666" points="486.62,-545.25 390.38,-545.25 390.38,-514.75 486.62,-514.75 486.62,-545.25"/>
<text text-anchor="start" x="398.38" y="-531.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
@@ -214,69 +241,90 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node4&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<g id="edge7_Node000004_Node000008" class="edge">
<title>Node4&#45;&gt;Node8</title>
<g id="a_edge7_Node000004_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.64,-512.5C343.24,-515.12 362.07,-518.09 379.43,-520.83"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="378.59,-524.4 389.02,-522.5 379.68,-517.49 378.59,-524.4"/>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node9 -->
<g id="edge10" class="edge">
<g id="edge10_Node000004_Node000009" class="edge">
<title>Node4&#45;&gt;Node9</title>
<g id="a_edge10_Node000004_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M303.11,-520.59C322.75,-532.38 351.73,-547.58 379.5,-554 487.85,-579.03 549.6,-588.5 625.25,-507 693.66,-433.31 702.77,-303.92 703.62,-253.73"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="707.12,-254.02 703.69,-244 700.12,-253.98 707.12,-254.02"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_node6"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<g id="a_Node000006"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="609.12,-460.62 549.62,-460.62 549.62,-441.38 609.12,-441.38 609.12,-460.62"/>
<text text-anchor="middle" x="579.38" y="-447.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<g id="edge5_Node000005_Node000006" class="edge">
<title>Node5&#45;&gt;Node6</title>
<g id="a_edge5_Node000005_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-470.76C503.76,-467.12 522.55,-463.06 538.69,-459.57"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="539.35,-462.8 548.38,-457.26 537.87,-455.95 539.35,-462.8"/>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node6 -->
<g id="edge9" class="edge">
<g id="edge9_Node000008_Node000006" class="edge">
<title>Node8&#45;&gt;Node6</title>
<g id="a_edge9_Node000008_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.65,-514.28C485.05,-511.39 491.53,-508.25 497.5,-505 518.33,-493.68 540.65,-478.53 556.55,-467.16"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="558.06,-469.65 564.11,-460.95 553.96,-463.99 558.06,-469.65"/>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<g id="edge8_Node000008_Node000009" class="edge">
<title>Node8&#45;&gt;Node9</title>
<g id="a_edge8_Node000008_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.83,-526.53C528.53,-521.02 588.23,-506.78 625.25,-470 686.63,-409.01 699.87,-298.96 702.72,-253.5"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="706.25,-253.88 703.27,-243.71 699.26,-253.52 706.25,-253.88"/>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node4 -->
<g id="edge12" class="edge">
<g id="edge12_Node000010_Node000004" class="edge">
<title>Node10&#45;&gt;Node4</title>
<g id="a_edge12_Node000010_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M164.26,-323.71C168.74,-326.44 173.03,-329.53 176.75,-333 200.45,-355.13 243.32,-437.19 264.53,-479.47"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="261.84,-480.91 269.44,-488.29 268.11,-477.78 261.84,-480.91"/>
</a>
</g>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<g id="Node000013" class="node">
<title>Node13</title>
<g id="a_node13"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<g id="a_Node000013"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="478.38,-247.62 398.62,-247.62 398.62,-228.38 478.38,-228.38 478.38,-247.62"/>
<text text-anchor="middle" x="438.5" y="-234.12" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node13 -->
<g id="edge15" class="edge">
<g id="edge15_Node000012_Node000013" class="edge">
<title>Node12&#45;&gt;Node13</title>
<g id="a_edge15_Node000012_Node000013"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.86,-261.15C217.98,-262.54 285.35,-263.09 343.5,-257 358.01,-255.48 373.61,-252.77 387.85,-249.87"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="388.37,-253.13 397.42,-247.63 386.92,-246.28 388.37,-253.13"/>
</a>
</g>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<g id="Node000015" class="node">
<title>Node15</title>
<g id="a_node15"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<g id="a_Node000015"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<polygon fill="white" stroke="#666666" points="343.5,-172.25 212.75,-172.25 212.75,-141.75 343.5,-141.75 343.5,-172.25"/>
<text text-anchor="start" x="220.75" y="-158.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-147.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
@@ -284,15 +332,18 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node12&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<g id="edge19_Node000012_Node000015" class="edge">
<title>Node12&#45;&gt;Node15</title>
<g id="a_edge19_Node000012_Node000015"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M149.49,-243.29C175.08,-225.99 216.37,-198.07 245.03,-178.7"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="246.53,-181.23 252.86,-172.73 242.61,-175.43 246.53,-181.23"/>
</a>
</g>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<g id="Node000019" class="node">
<title>Node19</title>
<g id="a_node19"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<g id="a_Node000019"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<polygon fill="white" stroke="#666666" points="343.5,-372.25 212.75,-372.25 212.75,-341.75 343.5,-341.75 343.5,-372.25"/>
<text text-anchor="start" x="220.75" y="-358.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-347.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_encryption_key</text>
@@ -300,90 +351,117 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node12&#45;&gt;Node19 -->
<g id="edge28" class="edge">
<g id="edge28_Node000012_Node000019" class="edge">
<title>Node12&#45;&gt;Node19</title>
<g id="a_edge28_Node000012_Node000019"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M159.82,-274.62C165.56,-277.57 171.39,-280.76 176.75,-284 202.33,-299.48 229.67,-319.62 249.34,-334.83"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="246.77,-338.04 256.81,-341.43 251.08,-332.52 246.77,-338.04"/>
</a>
</g>
</g>
<!-- Node25 -->
<g id="node25" class="node">
<g id="Node000025" class="node">
<title>Node25</title>
<g id="a_node25"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<g id="a_Node000025"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="318.38,-247.62 237.88,-247.62 237.88,-228.38 318.38,-228.38 318.38,-247.62"/>
<text text-anchor="middle" x="278.12" y="-234.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::make_pair</text>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node25 -->
<g id="edge35" class="edge">
<g id="edge35_Node000012_Node000025" class="edge">
<title>Node12&#45;&gt;Node25</title>
<g id="a_edge35_Node000012_Node000025"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.57,-252.41C190.61,-250.04 209.87,-247.36 227.12,-244.96"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="227.15,-248.35 236.57,-243.51 226.18,-241.42 227.15,-248.35"/>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node9 -->
<g id="edge18" class="edge">
<g id="edge18_Node000013_Node000009" class="edge">
<title>Node13&#45;&gt;Node9</title>
<g id="a_edge18_Node000013_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.74,-237.26C524.24,-236.4 599.47,-234.97 650.22,-234.01"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="650.05,-237.49 659.98,-233.81 649.92,-230.5 650.05,-237.49"/>
</a>
</g>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<g id="Node000014" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<g id="a_Node000014"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="625.25,-280.62 533.5,-280.62 533.5,-261.38 625.25,-261.38 625.25,-280.62"/>
<text text-anchor="middle" x="579.38" y="-267.12" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node14 -->
<g id="edge16" class="edge">
<g id="edge16_Node000013_Node000014" class="edge">
<title>Node13&#45;&gt;Node14</title>
<g id="a_edge16_Node000013_Node000014"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.55,-247.28C493.16,-250.75 509.99,-254.75 525.62,-258.46"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="524.67,-262.07 535.21,-260.98 526.29,-255.26 524.67,-262.07"/>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node9 -->
<g id="edge17" class="edge">
<g id="edge17_Node000014_Node000009" class="edge">
<title>Node14&#45;&gt;Node9</title>
<g id="a_edge17_Node000014_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M613.05,-260.92C627.63,-256.41 645.02,-251.05 660.63,-246.23"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="661.58,-249.29 670.1,-243 659.52,-242.6 661.58,-249.29"/>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node6 -->
<g id="edge27" class="edge">
<g id="edge27_Node000015_Node000006" class="edge">
<title>Node15&#45;&gt;Node6</title>
<g id="a_edge27_Node000015_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M295.73,-172.59C308.85,-185.01 327.55,-202.92 343.5,-219 359.88,-235.52 359.81,-244.6 379.5,-257 426.12,-286.36 459.11,-255.48 497.5,-295 537.49,-336.16 500.3,-372.19 533.5,-419 537.81,-425.08 543.66,-430.43 549.71,-434.92"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="547.3,-438.2 557.55,-440.88 551.22,-432.39 547.3,-438.2"/>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node9 -->
<g id="edge26" class="edge">
<g id="edge26_Node000015_Node000009" class="edge">
<title>Node15&#45;&gt;Node9</title>
<g id="a_edge26_Node000015_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M297.23,-141.44C316.26,-126.21 347.78,-104.01 379.5,-95 429.95,-80.68 446.28,-83.74 497.5,-95 558.58,-108.42 574.04,-118.1 625.25,-154 650.29,-171.55 674.3,-197.63 688.97,-214.96"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="686.67,-216.67 695.74,-222.13 692.06,-212.2 686.67,-216.67"/>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node13 -->
<g id="edge20" class="edge">
<g id="edge20_Node000015_Node000013" class="edge">
<title>Node15&#45;&gt;Node13</title>
<g id="a_edge20_Node000015_Node000013"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M309.66,-172.62C338.16,-187.19 380.39,-208.79 408.41,-223.12"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="406.54,-226.61 417.04,-228.05 409.73,-220.38 406.54,-226.61"/>
</a>
</g>
</g>
<!-- Node16 -->
<g id="node16" class="node">
<g id="Node000016" class="node">
<title>Node16</title>
<g id="a_node16"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<g id="a_Node000016"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="464.12,-123.62 412.88,-123.62 412.88,-104.38 464.12,-104.38 464.12,-123.62"/>
<text text-anchor="middle" x="438.5" y="-110.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node16 -->
<g id="edge21" class="edge">
<g id="edge21_Node000015_Node000016" class="edge">
<title>Node15&#45;&gt;Node16</title>
<g id="a_edge21_Node000015_Node000016"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M336.75,-141.35C358.59,-135.43 382.79,-128.85 402.01,-123.64"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="402.67,-126.81 411.4,-120.81 400.83,-120.06 402.67,-126.81"/>
</a>
</g>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<g id="Node000017" class="node">
<title>Node17</title>
<g id="a_node17"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" target="_top" xlink:title=" ">
<g id="a_Node000017"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="486.62,-172.25 390.38,-172.25 390.38,-141.75 486.62,-141.75 486.62,-172.25"/>
<text text-anchor="start" x="398.38" y="-158.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-147.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
@@ -391,78 +469,99 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node15&#45;&gt;Node17 -->
<g id="edge22" class="edge">
<g id="edge22_Node000015_Node000017" class="edge">
<title>Node15&#45;&gt;Node17</title>
<g id="a_edge22_Node000015_Node000017"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-157C355.65,-157 367.73,-157 379.18,-157"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="378.94,-160.5 388.94,-157 378.94,-153.5 378.94,-160.5"/>
</a>
</g>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<g id="Node000018" class="node">
<title>Node18</title>
<g id="a_node18"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<g id="a_Node000018"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="468.25,-47.62 408.75,-47.62 408.75,-28.38 468.25,-28.38 468.25,-47.62"/>
<text text-anchor="middle" x="438.5" y="-34.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node18 -->
<g id="edge25" class="edge">
<g id="edge25_Node000015_Node000018" class="edge">
<title>Node15&#45;&gt;Node18</title>
<g id="a_edge25_Node000015_Node000018"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M292.33,-141.35C310.3,-120.85 344.27,-84.84 379.5,-62 385.32,-58.23 391.83,-54.85 398.33,-51.9"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="399.59,-54.74 407.44,-47.62 396.86,-48.29 399.59,-54.74"/>
</a>
</g>
</g>
<!-- Node17&#45;&gt;Node9 -->
<g id="edge24" class="edge">
<g id="edge24_Node000017_Node000009" class="edge">
<title>Node17&#45;&gt;Node9</title>
<g id="a_edge24_Node000017_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.86,-155.13C525.36,-155.17 580.45,-158.84 625.25,-176 648.34,-184.84 670.74,-202.35 685.61,-215.64"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="682.72,-217.66 692.44,-221.88 687.48,-212.52 682.72,-217.66"/>
</a>
</g>
</g>
<!-- Node17&#45;&gt;Node11 -->
<g id="edge23" class="edge">
<g id="edge23_Node000017_Node000011" class="edge">
<title>Node17&#45;&gt;Node11</title>
<g id="a_edge23_Node000017_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-169.97C504.82,-174.87 524.93,-180.38 541.71,-184.97"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="540.64,-188.58 551.21,-187.84 542.49,-181.83 540.64,-188.58"/>
</a>
</g>
</g>
<!-- Node19&#45;&gt;Node6 -->
<g id="edge34" class="edge">
<g id="edge34_Node000019_Node000006" class="edge">
<title>Node19&#45;&gt;Node6</title>
<g id="a_edge34_Node000019_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M299.03,-372.61C318.44,-387 349.36,-407.78 379.5,-419 432.22,-438.63 497.22,-446.23 538.24,-449.16"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="537.94,-452.71 548.15,-449.87 538.4,-445.73 537.94,-452.71"/>
</a>
</g>
</g>
<!-- Node20 -->
<g id="node20" class="node">
<g id="Node000020" class="node">
<title>Node20</title>
<g id="a_node20"><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.">
<g id="a_Node000020"><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="#666666" points="497.5,-409.62 379.5,-409.62 379.5,-390.38 497.5,-390.38 497.5,-409.62"/>
<text text-anchor="middle" x="438.5" y="-396.12" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</text>
</a>
</g>
</g>
<!-- Node19&#45;&gt;Node20 -->
<g id="edge29" class="edge">
<g id="edge29_Node000019_Node000020" class="edge">
<title>Node19&#45;&gt;Node20</title>
<g id="a_edge29_Node000019_Node000020"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M336.75,-372.65C354.16,-377.37 373.08,-382.51 389.77,-387.04"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="388.81,-390.68 399.38,-389.92 390.65,-383.92 388.81,-390.68"/>
</a>
</g>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<g id="Node000022" class="node">
<title>Node22</title>
<g id="a_node22"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<g id="a_Node000022"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="470.5,-323.62 406.5,-323.62 406.5,-304.38 470.5,-304.38 470.5,-323.62"/>
<text text-anchor="middle" x="438.5" y="-310.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::isfinite</text>
</a>
</g>
</g>
<!-- Node19&#45;&gt;Node22 -->
<g id="edge31" class="edge">
<g id="edge31_Node000019_Node000022" class="edge">
<title>Node19&#45;&gt;Node22</title>
<g id="a_edge31_Node000019_Node000022"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M336.75,-341.35C356.32,-336.04 377.8,-330.21 395.88,-325.3"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="396.63,-328.45 405.37,-322.45 394.8,-321.7 396.63,-328.45"/>
</a>
</g>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<g id="Node000023" class="node">
<title>Node23</title>
<g id="a_node23"><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.">
<g id="a_Node000023"><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="#666666" points="486.62,-372.25 390.38,-372.25 390.38,-341.75 486.62,-341.75 486.62,-372.25"/>
<text text-anchor="start" x="398.38" y="-358.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-347.5" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
@@ -470,82 +569,85 @@ var sectionId = 'dynsection-3';
</g>
</g>
<!-- Node19&#45;&gt;Node23 -->
<g id="edge32" class="edge">
<g id="edge32_Node000019_Node000023" class="edge">
<title>Node19&#45;&gt;Node23</title>
<g id="a_edge32_Node000019_Node000023"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-357C355.65,-357 367.73,-357 379.18,-357"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="378.94,-360.5 388.94,-357 378.94,-353.5 378.94,-360.5"/>
</a>
</g>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<g id="Node000021" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<g id="a_Node000021"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="608.75,-409.62 550,-409.62 550,-390.38 608.75,-390.38 608.75,-409.62"/>
<text text-anchor="middle" x="579.38" y="-396.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node20&#45;&gt;Node21 -->
<g id="edge30" class="edge">
<g id="edge30_Node000020_Node000021" class="edge">
<title>Node20&#45;&gt;Node21</title>
<g id="a_edge30_Node000020_Node000021"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M497.99,-400C511.87,-400 526.34,-400 539.12,-400"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="538.86,-403.5 548.86,-400 538.86,-396.5 538.86,-403.5"/>
</a>
</g>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<g id="Node000024" class="node">
<title>Node24</title>
<g id="a_node24"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<g id="a_Node000024"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="606.5,-366.62 552.25,-366.62 552.25,-347.38 606.5,-347.38 606.5,-366.62"/>
<text text-anchor="middle" x="579.38" y="-353.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node23&#45;&gt;Node24 -->
<g id="edge33" class="edge">
<g id="edge33_Node000023_Node000024" class="edge">
<title>Node23&#45;&gt;Node24</title>
<g id="a_edge33_Node000023_Node000024"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-357C504.53,-357 524.26,-357 540.87,-357"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="540.81,-360.5 550.81,-357 540.81,-353.5 540.81,-360.5"/>
</a>
</g>
</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="hill__cipher_8cpp_a3147ad576f8a94a2a6b66948672b452b_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>
<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()"/>
<use id="arrowup" xlink:href="#arrowUp" x="0" y="0" onmousedown="handlePan(0,-1)"/>
<use id="arrowright" xlink:href="#arrowRight" x="0" y="0" onmousedown="handlePan(1,0)"/>
<use id="arrowdown" xlink:href="#arrowDown" x="0" y="0" onmousedown="handlePan(0,1)"/>
<use id="arrowleft" xlink:href="#arrowLeft" x="0" y="0" onmousedown="handlePan(-1,0)"/>
</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="hill__cipher_8cpp_a3147ad576f8a94a2a6b66948672b452b_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>
<style type='text/css'>
<![CDATA[
[data-mouse-over-selected='false'] { opacity: 0.7; }
[data-mouse-over-selected='true'] { opacity: 1.0; }
]]>
</style>
<script type="application/ecmascript"><![CDATA[
document.addEventListener('DOMContentLoaded', (event) => {
highlightEdges();
highlightAdjacentNodes();
});
]]></script>
</svg>

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -9,33 +9,36 @@
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 624.62)">
<title>test1</title>
<!-- Node1 -->
<g id="node1" class="node">
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Self test 1 &#45; using 3x3 randomly generated key.">
<g id="a_Node000001"><a xlink:title="Self test 1 &#45; using 3x3 randomly generated key.">
<polygon fill="#999999" stroke="#666666" points="37.75,-292.62 0,-292.62 0,-273.38 37.75,-273.38 37.75,-292.62"/>
<text text-anchor="middle" x="18.88" y="-279.12" font-family="Helvetica,sans-Serif" font-size="10.00">test1</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="176.75,-409.62 73.75,-409.62 73.75,-390.38 176.75,-390.38 176.75,-409.62"/>
<text text-anchor="middle" x="125.25" y="-396.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M22.82,-293.12C29.02,-312.77 45.28,-356.33 73.75,-381 75.32,-382.36 76.99,-383.62 78.74,-384.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="76.55,-388.15 86.98,-389.99 79.98,-382.04 76.55,-388.15"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<g id="a_Node000003"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<polygon fill="white" stroke="#666666" points="173.38,-372.25 77.12,-372.25 77.12,-341.75 173.38,-341.75 173.38,-372.25"/>
<text text-anchor="start" x="85.12" y="-358.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-347.5" font-family="Helvetica,sans-Serif" font-size="10.00">::decrypt_text</text>
@@ -43,30 +46,36 @@
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M29.11,-292.91C39.33,-303.49 56.62,-320.31 73.75,-332 75.72,-333.34 77.77,-334.66 79.87,-335.94"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="77.87,-339.4 88.3,-341.29 81.33,-333.31 77.87,-339.4"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_node9"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<g id="a_Node000009"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="747.75,-242.62 661.25,-242.62 661.25,-223.38 747.75,-223.38 747.75,-242.62"/>
<text text-anchor="middle" x="704.5" y="-229.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node9 -->
<g id="edge36" class="edge">
<g id="edge36_Node000001_Node000009" class="edge">
<title>Node1&#45;&gt;Node9</title>
<g id="a_edge36_Node000001_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M23.23,-272.93C40.71,-222.51 126.4,0 277.12,0 277.12,0 277.12,0 439.5,0 533.47,0 559.99,-33.38 625.25,-101 658.1,-135.03 683.02,-185.35 695.21,-212.99"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="692.35,-214.22 699.51,-222.03 698.79,-211.46 692.35,-214.22"/>
</a>
</g>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<g id="Node000010" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<g id="a_Node000010"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<polygon fill="white" stroke="#666666" points="173.38,-323.25 77.12,-323.25 77.12,-292.75 173.38,-292.75 173.38,-323.25"/>
<text text-anchor="start" x="85.12" y="-309.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00">::encrypt_text</text>
@@ -74,30 +83,36 @@
</g>
</g>
<!-- Node1&#45;&gt;Node10 -->
<g id="edge11" class="edge">
<g id="edge11_Node000001_Node000010" class="edge">
<title>Node1&#45;&gt;Node10</title>
<g id="a_edge11_Node000001_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M38.06,-287.35C46.03,-289.27 55.89,-291.63 66.05,-294.06"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="65.14,-297.68 75.68,-296.61 66.77,-290.87 65.14,-297.68"/>
</a>
</g>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<g id="Node000011" class="node">
<title>Node11</title>
<g id="a_node11"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<g id="a_Node000011"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="606.12,-204.62 552.62,-204.62 552.62,-185.38 606.12,-185.38 606.12,-204.62"/>
<text text-anchor="middle" x="579.38" y="-191.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<g id="edge13_Node000001_Node000011" class="edge">
<title>Node1&#45;&gt;Node11</title>
<g id="a_edge13_Node000001_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M27.79,-272.93C37.34,-261.59 54.54,-243.6 73.75,-235 157.35,-197.55 439.42,-194.57 541.29,-194.75"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="541.23,-198.25 551.24,-194.78 541.25,-191.25 541.23,-198.25"/>
</a>
</g>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<g id="Node000012" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" target="_top" xlink:title="Generate encryption and decryption key pair.">
<g id="a_Node000012"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a405b0a28d66a61239d3565d5256f9cb5" target="_top" xlink:title="Generate encryption and decryption key pair.">
<polygon fill="white" stroke="#666666" points="173.38,-274.25 77.12,-274.25 77.12,-243.75 173.38,-243.75 173.38,-274.25"/>
<text text-anchor="start" x="85.12" y="-260.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="125.25" y="-249.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_keys</text>
@@ -105,15 +120,18 @@
</g>
</g>
<!-- Node1&#45;&gt;Node12 -->
<g id="edge14" class="edge">
<g id="edge14_Node000001_Node000012" class="edge">
<title>Node1&#45;&gt;Node12</title>
<g id="a_edge14_Node000001_Node000012"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M38.06,-278.82C46.03,-276.99 55.89,-274.72 66.05,-272.38"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="66.72,-275.59 75.68,-269.94 65.15,-268.77 66.72,-275.59"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<g id="a_Node000004"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<polygon fill="white" stroke="#666666" points="326.25,-520.25 230,-520.25 230,-489.75 326.25,-489.75 326.25,-520.25"/>
<text text-anchor="start" x="238" y="-506.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-495.5" font-family="Helvetica,sans-Serif" font-size="10.00">::codec</text>
@@ -121,15 +139,18 @@
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge3_Node000003_Node000004" class="edge">
<title>Node3&#45;&gt;Node4</title>
<g id="a_edge3_Node000003_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M164.05,-372.63C168.52,-375.14 172.86,-377.94 176.75,-381 212.8,-409.38 244.22,-452.96 261.91,-480.17"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="259.47,-481.85 267.79,-488.4 265.37,-478.09 259.47,-481.85"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" target="_top" xlink:title="Get the index of a character in the STRKEY.">
<g id="a_Node000005"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" target="_top" xlink:title="Get the index of a character in the STRKEY.">
<polygon fill="white" stroke="#666666" points="486.62,-496.25 390.38,-496.25 390.38,-465.75 486.62,-465.75 486.62,-496.25"/>
<text text-anchor="start" x="398.38" y="-482.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
@@ -137,30 +158,36 @@
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge4_Node000004_Node000005" class="edge">
<title>Node4&#45;&gt;Node5</title>
<g id="a_edge4_Node000004_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.64,-497.8C343.24,-495.28 362.07,-492.43 379.43,-489.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="379.65,-493.15 389.02,-488.2 378.6,-486.23 379.65,-493.15"/>
</a>
</g>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<g id="a_Node000007"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="484.38,-620.62 392.62,-620.62 392.62,-601.38 484.38,-601.38 484.38,-620.62"/>
<text text-anchor="middle" x="438.5" y="-607.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::length</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<g id="edge6_Node000004_Node000007" class="edge">
<title>Node4&#45;&gt;Node7</title>
<g id="a_edge6_Node000004_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M295.05,-520.53C313.96,-538.35 347.05,-567.61 379.5,-587 385.39,-590.52 391.9,-593.76 398.36,-596.65"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="396.8,-600.21 407.38,-600.88 399.53,-593.77 396.8,-600.21"/>
</a>
</g>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<g id="a_Node000008"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad36cbcc7a458b3f3a2af0c4aa1126590" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<polygon fill="white" stroke="#666666" points="486.62,-545.25 390.38,-545.25 390.38,-514.75 486.62,-514.75 486.62,-545.25"/>
<text text-anchor="start" x="398.38" y="-531.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
@@ -168,69 +195,90 @@
</g>
</g>
<!-- Node4&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<g id="edge7_Node000004_Node000008" class="edge">
<title>Node4&#45;&gt;Node8</title>
<g id="a_edge7_Node000004_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M326.64,-512.5C343.24,-515.12 362.07,-518.09 379.43,-520.83"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="378.59,-524.4 389.02,-522.5 379.68,-517.49 378.59,-524.4"/>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node9 -->
<g id="edge10" class="edge">
<g id="edge10_Node000004_Node000009" class="edge">
<title>Node4&#45;&gt;Node9</title>
<g id="a_edge10_Node000004_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M303.11,-520.59C322.75,-532.38 351.73,-547.58 379.5,-554 487.85,-579.03 549.6,-588.5 625.25,-507 693.66,-433.31 702.77,-303.92 703.62,-253.73"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="707.12,-254.02 703.69,-244 700.12,-253.98 707.12,-254.02"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_node6"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<g id="a_Node000006"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="609.12,-460.62 549.62,-460.62 549.62,-441.38 609.12,-441.38 609.12,-460.62"/>
<text text-anchor="middle" x="579.38" y="-447.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<g id="edge5_Node000005_Node000006" class="edge">
<title>Node5&#45;&gt;Node6</title>
<g id="a_edge5_Node000005_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-470.76C503.76,-467.12 522.55,-463.06 538.69,-459.57"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="539.35,-462.8 548.38,-457.26 537.87,-455.95 539.35,-462.8"/>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node6 -->
<g id="edge9" class="edge">
<g id="edge9_Node000008_Node000006" class="edge">
<title>Node8&#45;&gt;Node6</title>
<g id="a_edge9_Node000008_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.65,-514.28C485.05,-511.39 491.53,-508.25 497.5,-505 518.33,-493.68 540.65,-478.53 556.55,-467.16"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="558.06,-469.65 564.11,-460.95 553.96,-463.99 558.06,-469.65"/>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<g id="edge8_Node000008_Node000009" class="edge">
<title>Node8&#45;&gt;Node9</title>
<g id="a_edge8_Node000008_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.83,-526.53C528.53,-521.02 588.23,-506.78 625.25,-470 686.63,-409.01 699.87,-298.96 702.72,-253.5"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="706.25,-253.88 703.27,-243.71 699.26,-253.52 706.25,-253.88"/>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node4 -->
<g id="edge12" class="edge">
<g id="edge12_Node000010_Node000004" class="edge">
<title>Node10&#45;&gt;Node4</title>
<g id="a_edge12_Node000010_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M164.26,-323.71C168.74,-326.44 173.03,-329.53 176.75,-333 200.45,-355.13 243.32,-437.19 264.53,-479.47"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="261.84,-480.91 269.44,-488.29 268.11,-477.78 261.84,-480.91"/>
</a>
</g>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<g id="Node000013" class="node">
<title>Node13</title>
<g id="a_node13"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<g id="a_Node000013"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="478.38,-247.62 398.62,-247.62 398.62,-228.38 478.38,-228.38 478.38,-247.62"/>
<text text-anchor="middle" x="438.5" y="-234.12" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node13 -->
<g id="edge15" class="edge">
<g id="edge15_Node000012_Node000013" class="edge">
<title>Node12&#45;&gt;Node13</title>
<g id="a_edge15_Node000012_Node000013"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.86,-261.15C217.98,-262.54 285.35,-263.09 343.5,-257 358.01,-255.48 373.61,-252.77 387.85,-249.87"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="388.37,-253.13 397.42,-247.63 386.92,-246.28 388.37,-253.13"/>
</a>
</g>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<g id="Node000015" class="node">
<title>Node15</title>
<g id="a_node15"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<g id="a_Node000015"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ab02c7563889bf1e363deb8e21967b706" target="_top" xlink:title="Generate decryption matrix from an encryption matrix key.">
<polygon fill="white" stroke="#666666" points="343.5,-172.25 212.75,-172.25 212.75,-141.75 343.5,-141.75 343.5,-172.25"/>
<text text-anchor="start" x="220.75" y="-158.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-147.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
@@ -238,15 +286,18 @@
</g>
</g>
<!-- Node12&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<g id="edge19_Node000012_Node000015" class="edge">
<title>Node12&#45;&gt;Node15</title>
<g id="a_edge19_Node000012_Node000015"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M149.49,-243.29C175.08,-225.99 216.37,-198.07 245.03,-178.7"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="246.53,-181.23 252.86,-172.73 242.61,-175.43 246.53,-181.23"/>
</a>
</g>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<g id="Node000019" class="node">
<title>Node19</title>
<g id="a_node19"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<g id="a_Node000019"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a642f70fb54cb50b00fb6df7c3f2b120e" target="_top" xlink:title="Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...">
<polygon fill="white" stroke="#666666" points="343.5,-372.25 212.75,-372.25 212.75,-341.75 343.5,-341.75 343.5,-372.25"/>
<text text-anchor="start" x="220.75" y="-358.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="278.12" y="-347.5" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_encryption_key</text>
@@ -254,90 +305,117 @@
</g>
</g>
<!-- Node12&#45;&gt;Node19 -->
<g id="edge28" class="edge">
<g id="edge28_Node000012_Node000019" class="edge">
<title>Node12&#45;&gt;Node19</title>
<g id="a_edge28_Node000012_Node000019"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M159.82,-274.62C165.56,-277.57 171.39,-280.76 176.75,-284 202.33,-299.48 229.67,-319.62 249.34,-334.83"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="246.77,-338.04 256.81,-341.43 251.08,-332.52 246.77,-338.04"/>
</a>
</g>
</g>
<!-- Node25 -->
<g id="node25" class="node">
<g id="Node000025" class="node">
<title>Node25</title>
<g id="a_node25"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<g id="a_Node000025"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="318.38,-247.62 237.88,-247.62 237.88,-228.38 318.38,-228.38 318.38,-247.62"/>
<text text-anchor="middle" x="278.12" y="-234.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::make_pair</text>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node25 -->
<g id="edge35" class="edge">
<g id="edge35_Node000012_Node000025" class="edge">
<title>Node12&#45;&gt;Node25</title>
<g id="a_edge35_Node000012_Node000025"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M173.57,-252.41C190.61,-250.04 209.87,-247.36 227.12,-244.96"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="227.15,-248.35 236.57,-243.51 226.18,-241.42 227.15,-248.35"/>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node9 -->
<g id="edge18" class="edge">
<g id="edge18_Node000013_Node000009" class="edge">
<title>Node13&#45;&gt;Node9</title>
<g id="a_edge18_Node000013_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.74,-237.26C524.24,-236.4 599.47,-234.97 650.22,-234.01"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="650.05,-237.49 659.98,-233.81 649.92,-230.5 650.05,-237.49"/>
</a>
</g>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<g id="Node000014" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<g id="a_Node000014"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="625.25,-280.62 533.5,-280.62 533.5,-261.38 625.25,-261.38 625.25,-280.62"/>
<text text-anchor="middle" x="579.38" y="-267.12" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node14 -->
<g id="edge16" class="edge">
<g id="edge16_Node000013_Node000014" class="edge">
<title>Node13&#45;&gt;Node14</title>
<g id="a_edge16_Node000013_Node000014"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M478.55,-247.28C493.16,-250.75 509.99,-254.75 525.62,-258.46"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="524.67,-262.07 535.21,-260.98 526.29,-255.26 524.67,-262.07"/>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node9 -->
<g id="edge17" class="edge">
<g id="edge17_Node000014_Node000009" class="edge">
<title>Node14&#45;&gt;Node9</title>
<g id="a_edge17_Node000014_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M613.05,-260.92C627.63,-256.41 645.02,-251.05 660.63,-246.23"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="661.58,-249.29 670.1,-243 659.52,-242.6 661.58,-249.29"/>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node6 -->
<g id="edge27" class="edge">
<g id="edge27_Node000015_Node000006" class="edge">
<title>Node15&#45;&gt;Node6</title>
<g id="a_edge27_Node000015_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M295.73,-172.59C308.85,-185.01 327.55,-202.92 343.5,-219 359.88,-235.52 359.81,-244.6 379.5,-257 426.12,-286.36 459.11,-255.48 497.5,-295 537.49,-336.16 500.3,-372.19 533.5,-419 537.81,-425.08 543.66,-430.43 549.71,-434.92"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="547.3,-438.2 557.55,-440.88 551.22,-432.39 547.3,-438.2"/>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node9 -->
<g id="edge26" class="edge">
<g id="edge26_Node000015_Node000009" class="edge">
<title>Node15&#45;&gt;Node9</title>
<g id="a_edge26_Node000015_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M297.23,-141.44C316.26,-126.21 347.78,-104.01 379.5,-95 429.95,-80.68 446.28,-83.74 497.5,-95 558.58,-108.42 574.04,-118.1 625.25,-154 650.29,-171.55 674.3,-197.63 688.97,-214.96"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="686.67,-216.67 695.74,-222.13 692.06,-212.2 686.67,-216.67"/>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node13 -->
<g id="edge20" class="edge">
<g id="edge20_Node000015_Node000013" class="edge">
<title>Node15&#45;&gt;Node13</title>
<g id="a_edge20_Node000015_Node000013"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M309.66,-172.62C338.16,-187.19 380.39,-208.79 408.41,-223.12"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="406.54,-226.61 417.04,-228.05 409.73,-220.38 406.54,-226.61"/>
</a>
</g>
</g>
<!-- Node16 -->
<g id="node16" class="node">
<g id="Node000016" class="node">
<title>Node16</title>
<g id="a_node16"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<g id="a_Node000016"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="464.12,-123.62 412.88,-123.62 412.88,-104.38 464.12,-104.38 464.12,-123.62"/>
<text text-anchor="middle" x="438.5" y="-110.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node16 -->
<g id="edge21" class="edge">
<g id="edge21_Node000015_Node000016" class="edge">
<title>Node15&#45;&gt;Node16</title>
<g id="a_edge21_Node000015_Node000016"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M336.75,-141.35C358.59,-135.43 382.79,-128.85 402.01,-123.64"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="402.67,-126.81 411.4,-120.81 400.83,-120.06 402.67,-126.81"/>
</a>
</g>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<g id="Node000017" class="node">
<title>Node17</title>
<g id="a_node17"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" target="_top" xlink:title=" ">
<g id="a_Node000017"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a2eb58750b978a93ac5e6eb29e3e570b7" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="486.62,-172.25 390.38,-172.25 390.38,-141.75 486.62,-141.75 486.62,-172.25"/>
<text text-anchor="start" x="398.38" y="-158.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-147.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
@@ -345,78 +423,99 @@
</g>
</g>
<!-- Node15&#45;&gt;Node17 -->
<g id="edge22" class="edge">
<g id="edge22_Node000015_Node000017" class="edge">
<title>Node15&#45;&gt;Node17</title>
<g id="a_edge22_Node000015_Node000017"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-157C355.65,-157 367.73,-157 379.18,-157"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="378.94,-160.5 388.94,-157 378.94,-153.5 378.94,-160.5"/>
</a>
</g>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<g id="Node000018" class="node">
<title>Node18</title>
<g id="a_node18"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<g id="a_Node000018"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="468.25,-47.62 408.75,-47.62 408.75,-28.38 468.25,-28.38 468.25,-47.62"/>
<text text-anchor="middle" x="438.5" y="-34.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node15&#45;&gt;Node18 -->
<g id="edge25" class="edge">
<g id="edge25_Node000015_Node000018" class="edge">
<title>Node15&#45;&gt;Node18</title>
<g id="a_edge25_Node000015_Node000018"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M292.33,-141.35C310.3,-120.85 344.27,-84.84 379.5,-62 385.32,-58.23 391.83,-54.85 398.33,-51.9"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="399.59,-54.74 407.44,-47.62 396.86,-48.29 399.59,-54.74"/>
</a>
</g>
</g>
<!-- Node17&#45;&gt;Node9 -->
<g id="edge24" class="edge">
<g id="edge24_Node000017_Node000009" class="edge">
<title>Node17&#45;&gt;Node9</title>
<g id="a_edge24_Node000017_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.86,-155.13C525.36,-155.17 580.45,-158.84 625.25,-176 648.34,-184.84 670.74,-202.35 685.61,-215.64"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="682.72,-217.66 692.44,-221.88 687.48,-212.52 682.72,-217.66"/>
</a>
</g>
</g>
<!-- Node17&#45;&gt;Node11 -->
<g id="edge23" class="edge">
<g id="edge23_Node000017_Node000011" class="edge">
<title>Node17&#45;&gt;Node11</title>
<g id="a_edge23_Node000017_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-169.97C504.82,-174.87 524.93,-180.38 541.71,-184.97"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="540.64,-188.58 551.21,-187.84 542.49,-181.83 540.64,-188.58"/>
</a>
</g>
</g>
<!-- Node19&#45;&gt;Node6 -->
<g id="edge34" class="edge">
<g id="edge34_Node000019_Node000006" class="edge">
<title>Node19&#45;&gt;Node6</title>
<g id="a_edge34_Node000019_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M299.03,-372.61C318.44,-387 349.36,-407.78 379.5,-419 432.22,-438.63 497.22,-446.23 538.24,-449.16"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="537.94,-452.71 548.15,-449.87 538.4,-445.73 537.94,-452.71"/>
</a>
</g>
</g>
<!-- Node20 -->
<g id="node20" class="node">
<g id="Node000020" class="node">
<title>Node20</title>
<g id="a_node20"><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.">
<g id="a_Node000020"><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="#666666" points="497.5,-409.62 379.5,-409.62 379.5,-390.38 497.5,-390.38 497.5,-409.62"/>
<text text-anchor="middle" x="438.5" y="-396.12" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</text>
</a>
</g>
</g>
<!-- Node19&#45;&gt;Node20 -->
<g id="edge29" class="edge">
<g id="edge29_Node000019_Node000020" class="edge">
<title>Node19&#45;&gt;Node20</title>
<g id="a_edge29_Node000019_Node000020"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M336.75,-372.65C354.16,-377.37 373.08,-382.51 389.77,-387.04"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="388.81,-390.68 399.38,-389.92 390.65,-383.92 388.81,-390.68"/>
</a>
</g>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<g id="Node000022" class="node">
<title>Node22</title>
<g id="a_node22"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<g id="a_Node000022"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="470.5,-323.62 406.5,-323.62 406.5,-304.38 470.5,-304.38 470.5,-323.62"/>
<text text-anchor="middle" x="438.5" y="-310.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::isfinite</text>
</a>
</g>
</g>
<!-- Node19&#45;&gt;Node22 -->
<g id="edge31" class="edge">
<g id="edge31_Node000019_Node000022" class="edge">
<title>Node19&#45;&gt;Node22</title>
<g id="a_edge31_Node000019_Node000022"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M336.75,-341.35C356.32,-336.04 377.8,-330.21 395.88,-325.3"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="396.63,-328.45 405.37,-322.45 394.8,-321.7 396.63,-328.45"/>
</a>
</g>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<g id="Node000023" class="node">
<title>Node23</title>
<g id="a_node23"><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.">
<g id="a_Node000023"><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="#666666" points="486.62,-372.25 390.38,-372.25 390.38,-341.75 486.62,-341.75 486.62,-372.25"/>
<text text-anchor="start" x="398.38" y="-358.75" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="438.5" y="-347.5" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
@@ -424,40 +523,49 @@
</g>
</g>
<!-- Node19&#45;&gt;Node23 -->
<g id="edge32" class="edge">
<g id="edge32_Node000019_Node000023" class="edge">
<title>Node19&#45;&gt;Node23</title>
<g id="a_edge32_Node000019_Node000023"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M344,-357C355.65,-357 367.73,-357 379.18,-357"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="378.94,-360.5 388.94,-357 378.94,-353.5 378.94,-360.5"/>
</a>
</g>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<g id="Node000021" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<g id="a_Node000021"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="608.75,-409.62 550,-409.62 550,-390.38 608.75,-390.38 608.75,-409.62"/>
<text text-anchor="middle" x="579.38" y="-396.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node20&#45;&gt;Node21 -->
<g id="edge30" class="edge">
<g id="edge30_Node000020_Node000021" class="edge">
<title>Node20&#45;&gt;Node21</title>
<g id="a_edge30_Node000020_Node000021"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M497.99,-400C511.87,-400 526.34,-400 539.12,-400"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="538.86,-403.5 548.86,-400 538.86,-396.5 538.86,-403.5"/>
</a>
</g>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<g id="Node000024" class="node">
<title>Node24</title>
<g id="a_node24"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<g id="a_Node000024"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="606.5,-366.62 552.25,-366.62 552.25,-347.38 606.5,-347.38 606.5,-366.62"/>
<text text-anchor="middle" x="579.38" y="-353.12" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node23&#45;&gt;Node24 -->
<g id="edge33" class="edge">
<g id="edge33_Node000023_Node000024" class="edge">
<title>Node23&#45;&gt;Node24</title>
<g id="a_edge33_Node000023_Node000024"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M486.9,-357C504.53,-357 524.26,-357 540.87,-357"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="540.81,-360.5 550.81,-357 540.81,-353.5 540.81,-360.5"/>
</a>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -1,8 +1,14 @@
<map id="operator&lt;&lt;" name="operator&lt;&lt;">
<area shape="rect" id="node1" title=" " alt="" coords="5,104,90,130"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="160,5,231,31"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/left.html#" title=" " alt="" coords="163,55,228,80"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/setfill.html#" title=" " alt="" coords="156,104,235,130"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/setw.html#" title=" " alt="" coords="158,153,233,179"/>
<area shape="rect" id="node6" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="138,203,253,228"/>
<area shape="rect" id="Node000001" title=" " alt="" coords="5,104,90,130"/>
<area shape="poly" id="edge3_Node000001_Node000001" title=" " alt="" coords="22,105,17,95,20,86,31,80,48,77,67,80,76,88,73,92,64,85,47,83,32,85,24,89,23,95,27,102"/>
<area shape="rect" id="Node000002" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="160,5,231,31"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="60,102,93,72,136,40,145,35,147,40,139,44,96,76,64,106"/>
<area shape="rect" id="Node000003" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/left.html#" title=" " alt="" coords="163,55,228,80"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="88,101,148,80,150,85,89,106"/>
<area shape="rect" id="Node000004" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/setfill.html#" title=" " alt="" coords="156,104,235,130"/>
<area shape="poly" id="edge4_Node000001_Node000004" title=" " alt="" coords="90,114,141,114,141,120,90,120"/>
<area shape="rect" id="Node000005" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/setw.html#" title=" " alt="" coords="158,153,233,179"/>
<area shape="poly" id="edge5_Node000001_Node000005" title=" " alt="" coords="89,128,145,147,143,152,88,133"/>
<area shape="rect" id="Node000006" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="138,203,253,228"/>
<area shape="poly" id="edge6_Node000001_Node000006" title=" " alt="" coords="64,128,96,158,139,189,146,193,144,198,136,194,93,162,60,132"/>
</map>

View File

@@ -1 +1 @@
558e0d083eff25f0d62444cb70d21664
294214990261e200a706839ee95daf07

View File

@@ -6,97 +6,140 @@
<!-- Title: operator&lt;&lt; Pages: 1 -->
<svg width="194pt" height="175pt"
viewBox="0.00 0.00 193.75 175.25" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
<style type="text/css"><![CDATA[
.node, .edge {opacity: 0.7;}
.node.selected, .edge.selected {opacity: 1;}
.edge:hover path { stroke: red; }
.edge:hover polygon { stroke: red; fill: red; }
]]></style>
<script type="application/ecmascript" xlink:href="../../svg.min.js"/>
<svg id="graph" class="graph">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 171.25)">
<title>operator&lt;&lt;</title>
<!-- Node1 -->
<g id="node1" class="node">
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title=" ">
<polygon fill="#999999" stroke="#666666" points="63.25,-93.25 0,-93.25 0,-74 63.25,-74 63.25,-93.25"/>
<text text-anchor="middle" x="31.62" y="-79.75" font-family="Helvetica,sans-Serif" font-size="10.00">operator&lt;&lt;</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node1 -->
<g id="edge3" class="edge">
<g id="edge3_Node000001_Node000001" class="edge">
<title>Node1&#45;&gt;Node1</title>
<g id="a_edge3_Node000001_Node000001"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M14.27,-93.54C6.35,-102.15 12.14,-111.25 31.62,-111.25 42.89,-111.25 49.58,-108.21 51.69,-103.98"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="54.88,-103.34 48.98,-94.54 48.1,-105.1 54.88,-103.34"/>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="169.25,-167.25 115.75,-167.25 115.75,-148 169.25,-148 169.25,-167.25"/>
<text text-anchor="middle" x="142.5" y="-153.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M42.28,-93.36C54.64,-105.42 77.11,-126.02 99.25,-139.62 101.29,-140.88 103.44,-142.09 105.63,-143.24"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="103.89,-146.77 114.42,-147.95 106.93,-140.46 103.89,-146.77"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/left.html#" xlink:title=" ">
<g id="a_Node000003"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/left.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="167,-130.25 118,-130.25 118,-111 167,-111 167,-130.25"/>
<text text-anchor="middle" x="142.5" y="-116.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::left</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M62.38,-93.74C76.36,-98.49 93.1,-104.18 107.57,-109.1"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="106.05,-112.61 116.64,-112.52 108.3,-105.99 106.05,-112.61"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/setfill.html#" xlink:title=" ">
<g id="a_Node000004"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/setfill.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="171.88,-93.25 113.12,-93.25 113.12,-74 171.88,-74 171.88,-93.25"/>
<text text-anchor="middle" x="142.5" y="-79.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::setfill</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<g id="edge4_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge4_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M63.53,-83.62C75.49,-83.62 89.33,-83.62 102,-83.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="101.76,-87.13 111.76,-83.62 101.76,-80.13 101.76,-87.13"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/setw.html#" xlink:title=" ">
<g id="a_Node000005"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/setw.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="170.75,-56.25 114.25,-56.25 114.25,-37 170.75,-37 170.75,-56.25"/>
<text text-anchor="middle" x="142.5" y="-42.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::setw</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge5" class="edge">
<g id="edge5_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge5_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M62.38,-73.51C75.22,-69.15 90.39,-63.99 103.99,-59.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="104.68,-62.49 113.03,-55.96 102.43,-55.87 104.68,-62.49"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_node6"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<g id="a_Node000006"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="185.75,-19.25 99.25,-19.25 99.25,0 185.75,0 185.75,-19.25"/>
<text text-anchor="middle" x="142.5" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge6" class="edge">
<g id="edge6_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge6_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M42.28,-73.89C54.64,-61.83 77.11,-41.23 99.25,-27.62 101.03,-26.53 102.9,-25.47 104.8,-24.45"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="106.08,-27.23 113.53,-19.7 103.01,-20.94 106.08,-27.23"/>
</a>
</g>
</g>
</g>
</svg>
</svg>
<style type='text/css'>
<![CDATA[
[data-mouse-over-selected='false'] { opacity: 0.7; }
[data-mouse-over-selected='true'] { opacity: 1.0; }
]]>
</style>
<script type="application/ecmascript"><![CDATA[
document.addEventListener('DOMContentLoaded', (event) => {
highlightEdges();
highlightAdjacentNodes();
});
]]></script>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -0,0 +1,120 @@
<?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 8.0.5 (20230430.1635)
-->
<!-- Title: operator&lt;&lt; Pages: 1 -->
<svg width="194pt" height="175pt"
viewBox="0.00 0.00 193.75 175.25" 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 171.25)">
<title>operator&lt;&lt;</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<polygon fill="#999999" stroke="#666666" points="63.25,-93.25 0,-93.25 0,-74 63.25,-74 63.25,-93.25"/>
<text text-anchor="middle" x="31.62" y="-79.75" font-family="Helvetica,sans-Serif" font-size="10.00">operator&lt;&lt;</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node1 -->
<g id="edge3_Node000001_Node000001" class="edge">
<title>Node1&#45;&gt;Node1</title>
<g id="a_edge3_Node000001_Node000001"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M14.27,-93.54C6.35,-102.15 12.14,-111.25 31.62,-111.25 42.89,-111.25 49.58,-108.21 51.69,-103.98"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="54.88,-103.34 48.98,-94.54 48.1,-105.1 54.88,-103.34"/>
</a>
</g>
</g>
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="169.25,-167.25 115.75,-167.25 115.75,-148 169.25,-148 169.25,-167.25"/>
<text text-anchor="middle" x="142.5" y="-153.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M42.28,-93.36C54.64,-105.42 77.11,-126.02 99.25,-139.62 101.29,-140.88 103.44,-142.09 105.63,-143.24"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="103.89,-146.77 114.42,-147.95 106.93,-140.46 103.89,-146.77"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/left.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="167,-130.25 118,-130.25 118,-111 167,-111 167,-130.25"/>
<text text-anchor="middle" x="142.5" y="-116.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::left</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M62.38,-93.74C76.36,-98.49 93.1,-104.18 107.57,-109.1"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="106.05,-112.61 116.64,-112.52 108.3,-105.99 106.05,-112.61"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/setfill.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="171.88,-93.25 113.12,-93.25 113.12,-74 171.88,-74 171.88,-93.25"/>
<text text-anchor="middle" x="142.5" y="-79.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::setfill</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge4_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge4_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M63.53,-83.62C75.49,-83.62 89.33,-83.62 102,-83.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="101.76,-87.13 111.76,-83.62 101.76,-80.13 101.76,-87.13"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/setw.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="170.75,-56.25 114.25,-56.25 114.25,-37 170.75,-37 170.75,-56.25"/>
<text text-anchor="middle" x="142.5" y="-42.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::setw</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge5_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge5_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M62.38,-73.51C75.22,-69.15 90.39,-63.99 103.99,-59.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="104.68,-62.49 113.03,-55.96 102.43,-55.87 104.68,-62.49"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="185.75,-19.25 99.25,-19.25 99.25,0 185.75,0 185.75,-19.25"/>
<text text-anchor="middle" x="142.5" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge6_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge6_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M42.28,-73.89C54.64,-61.83 77.11,-41.23 99.25,-27.62 101.03,-26.53 102.9,-25.47 104.8,-24.45"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="106.08,-27.23 113.53,-19.7 103.01,-20.94 106.08,-27.23"/>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -1,19 +1,43 @@
<map id="main" name="main">
<area shape="rect" id="node1" title=" " alt="" coords="5,104,55,130"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/srand.html#" title=" " alt="" coords="103,5,182,31"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="103,55,182,80"/>
<area shape="rect" id="node4" href="$d3/dae/dsu__path__compression_8cpp.html#ae7880ce913f3058a35ff106d5be9e243" title="Self&#45;test implementations, 1st test." alt="" coords="117,153,168,179"/>
<area shape="rect" id="node16" href="$d3/dae/dsu__path__compression_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae" title="Self&#45;implementations, 2nd test." alt="" coords="117,104,168,130"/>
<area shape="rect" id="node17" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/chrono/c/time.html#" title=" " alt="" coords="106,203,179,228"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/at.html#" title=" " alt="" coords="231,80,333,106"/>
<area shape="rect" id="node6" href="$dd/d1f/classdsu.html#a0ce2672c570f4235eafddb0c9a58115a" title="prints the minimum, maximum and size of the set to which i belongs to" alt="" coords="248,129,316,155"/>
<area shape="rect" id="node11" href="$dd/d1f/classdsu.html#a6ac30c07abca2aaa3b291504c25c3559" title="Method that combines two disjoint sets to which i and j belongs to and make a single set having a com..." alt="" coords="230,228,334,254"/>
<area shape="rect" id="node7" href="$dd/d1f/classdsu.html#a696141b8b092466767f4bfe1c5e46cde" title="A utility function that returns the max element of the set to which i belongs to." alt="" coords="382,80,483,106"/>
<area shape="rect" id="node9" href="$dd/d1f/classdsu.html#ac713a5b496d0405c82e2808a85e58415" title="A utility function that returns the min element of the set to which i belongs to." alt="" coords="384,129,481,155"/>
<area shape="rect" id="node10" href="$dd/d1f/classdsu.html#a1c24228b0f2f49220133fb8c3566a55c" title="A utility function that returns the size of the set to which i belongs to." alt="" coords="395,31,470,56"/>
<area shape="rect" id="node8" href="$dd/d1f/classdsu.html#a16851f78fe390fc1430905c83d6a2f1c" title="Method to find the representative of the set to which i belongs to, T(n) = O(1)" alt="" coords="531,129,622,155"/>
<area shape="rect" id="node12" href="$dd/d1f/classdsu.html#a64d25c5986742f7c234ed449b2ff7303" title="A utility function which check whether i and j belongs to same set or not." alt="" coords="385,379,480,404"/>
<area shape="rect" id="node13" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/max.html#" title=" " alt="" coords="396,228,469,254"/>
<area shape="rect" id="node14" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min.html#" title=" " alt="" coords="398,277,467,303"/>
<area shape="rect" id="node15" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="393,179,472,204"/>
<area shape="rect" id="Node000001" title=" " alt="" coords="5,104,55,130"/>
<area shape="rect" id="Node000002" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/srand.html#" title=" " alt="" coords="103,5,182,31"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="40,102,67,72,101,40,104,38,107,42,104,44,70,76,44,106"/>
<area shape="rect" id="Node000003" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="103,55,182,80"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="54,104,97,84,99,89,56,109"/>
<area shape="rect" id="Node000004" href="$d3/dae/dsu__path__compression_8cpp.html#ae7880ce913f3058a35ff106d5be9e243" title="Self&#45;test implementations, 1st test." alt="" coords="117,153,168,179"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="56,125,105,147,102,152,54,130"/>
<area shape="rect" id="Node000016" href="$d3/dae/dsu__path__compression_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae" title="Self&#45;implementations, 2nd test." alt="" coords="117,104,168,130"/>
<area shape="poly" id="edge20_Node000001_Node000016" title=" " alt="" coords="55,114,103,114,103,120,55,120"/>
<area shape="rect" id="Node000017" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/chrono/c/time.html#" title=" " alt="" coords="106,203,179,228"/>
<area shape="poly" id="edge24_Node000001_Node000017" title=" " alt="" coords="44,128,70,158,104,189,107,192,104,196,101,194,67,161,40,132"/>
<area shape="rect" id="Node000005" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/at.html#" title=" " alt="" coords="231,80,333,106"/>
<area shape="poly" id="edge4_Node000004_Node000005" title=" " alt="" coords="165,150,229,114,237,110,240,115,231,119,167,155"/>
<area shape="rect" id="Node000006" href="$dd/d1f/classdsu.html#a0ce2672c570f4235eafddb0c9a58115a" title="prints the minimum, maximum and size of the set to which i belongs to" alt="" coords="248,129,316,155"/>
<area shape="poly" id="edge5_Node000004_Node000006" title=" " alt="" coords="167,159,233,148,234,153,168,165"/>
<area shape="rect" id="Node000011" href="$dd/d1f/classdsu.html#a6ac30c07abca2aaa3b291504c25c3559" title="Method that combines two disjoint sets to which i and j belongs to and make a single set having a com..." alt="" coords="230,228,334,254"/>
<area shape="poly" id="edge13_Node000004_Node000011" title=" " alt="" coords="169,177,245,218,242,223,166,182"/>
<area shape="rect" id="Node000007" href="$dd/d1f/classdsu.html#a696141b8b092466767f4bfe1c5e46cde" title="A utility function that returns the max element of the set to which i belongs to." alt="" coords="382,80,483,106"/>
<area shape="poly" id="edge6_Node000006_Node000007" title=" " alt="" coords="316,129,376,108,378,113,317,134"/>
<area shape="rect" id="Node000009" href="$dd/d1f/classdsu.html#ac713a5b496d0405c82e2808a85e58415" title="A utility function that returns the min element of the set to which i belongs to." alt="" coords="384,129,481,155"/>
<area shape="poly" id="edge9_Node000006_Node000009" title=" " alt="" coords="317,140,370,140,370,145,317,145"/>
<area shape="rect" id="Node000010" href="$dd/d1f/classdsu.html#a1c24228b0f2f49220133fb8c3566a55c" title="A utility function that returns the size of the set to which i belongs to." alt="" coords="395,31,470,56"/>
<area shape="poly" id="edge11_Node000006_Node000010" title=" " alt="" coords="315,127,333,116,347,103,356,91,366,79,381,65,386,62,389,66,384,70,370,82,360,95,351,107,336,120,318,131"/>
<area shape="rect" id="Node000008" href="$dd/d1f/classdsu.html#a16851f78fe390fc1430905c83d6a2f1c" title="Method to find the representative of the set to which i belongs to, T(n) = O(1)" alt="" coords="531,129,622,155"/>
<area shape="poly" id="edge7_Node000007_Node000008" title=" " alt="" coords="473,104,524,121,522,126,472,109"/>
<area shape="poly" id="edge8_Node000008_Node000008" title=" " alt="" coords="551,130,547,121,550,111,560,105,576,103,595,106,604,113,601,117,593,111,576,108,562,110,554,114,552,120,556,128"/>
<area shape="poly" id="edge10_Node000009_Node000008" title=" " alt="" coords="481,140,516,140,516,145,481,145"/>
<area shape="poly" id="edge12_Node000010_Node000008" title=" " alt="" coords="465,55,484,65,552,117,548,122,481,70,463,59"/>
<area shape="poly" id="edge14_Node000011_Node000008" title=" " alt="" coords="297,252,333,285,357,301,383,313,411,322,434,327,456,325,481,313,500,300,515,283,540,244,557,204,567,169,572,170,562,206,545,247,519,286,503,304,484,318,457,330,434,332,410,327,381,318,355,306,330,289,294,256"/>
<area shape="rect" id="Node000012" href="$dd/d1f/classdsu.html#a64d25c5986742f7c234ed449b2ff7303" title="A utility function which check whether i and j belongs to same set or not." alt="" coords="385,379,480,404"/>
<area shape="poly" id="edge15_Node000011_Node000012" title=" " alt="" coords="295,252,331,301,384,358,397,368,394,372,381,361,327,305,290,256"/>
<area shape="rect" id="Node000013" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/max.html#" title=" " alt="" coords="396,228,469,254"/>
<area shape="poly" id="edge17_Node000011_Node000013" title=" " alt="" coords="335,238,381,238,381,244,335,244"/>
<area shape="rect" id="Node000014" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min.html#" title=" " alt="" coords="398,277,467,303"/>
<area shape="poly" id="edge18_Node000011_Node000014" title=" " alt="" coords="325,252,385,272,383,277,323,257"/>
<area shape="rect" id="Node000015" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="393,179,472,204"/>
<area shape="poly" id="edge19_Node000011_Node000015" title=" " alt="" coords="323,225,379,206,380,211,325,230"/>
<area shape="poly" id="edge16_Node000012_Node000008" title=" " alt="" coords="459,376,481,358,513,310,537,258,555,209,566,169,571,170,560,210,542,260,517,313,485,361,462,380"/>
<area shape="poly" id="edge21_Node000016_Node000005" title=" " alt="" coords="167,110,216,102,217,107,168,115"/>
<area shape="poly" id="edge22_Node000016_Node000006" title=" " alt="" coords="168,119,234,131,233,136,167,124"/>
<area shape="poly" id="edge23_Node000016_Node000011" title=" " alt="" coords="169,128,184,139,227,178,262,215,258,219,223,182,180,143,165,132"/>
</map>

View File

@@ -1 +1 @@
b6f1785d64095e66a7d96a5f89a7c7c9
935bbc3c064523c2f3fd597a7734449c

View File

@@ -6,304 +6,401 @@
<!-- Title: main Pages: 1 -->
<svg width="471pt" height="307pt"
viewBox="0.00 0.00 470.50 307.25" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
<style type="text/css"><![CDATA[
.node, .edge {opacity: 0.7;}
.node.selected, .edge.selected {opacity: 1;}
.edge:hover path { stroke: red; }
.edge:hover polygon { stroke: red; fill: red; }
]]></style>
<script type="application/ecmascript" xlink:href="../../svg.min.js"/>
<svg id="graph" class="graph">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 303.25)">
<title>main</title>
<!-- Node1 -->
<g id="node1" class="node">
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title=" ">
<polygon fill="#999999" stroke="#666666" points="37,-225.25 0,-225.25 0,-206 37,-206 37,-225.25"/>
<text text-anchor="middle" x="18.5" y="-211.75" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/srand.html#" xlink:title=" ">
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/srand.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="132.5,-299.25 73,-299.25 73,-280 132.5,-280 132.5,-299.25"/>
<text text-anchor="middle" x="102.75" y="-285.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::srand</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M27.56,-225.45C37.5,-237.23 55.28,-257.18 73,-271.62 73.76,-272.24 74.54,-272.86 75.34,-273.47"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="73.03,-276.82 83.24,-279.64 77.02,-271.06 73.03,-276.82"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<g id="a_Node000003"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="132.5,-262.25 73,-262.25 73,-243 132.5,-243 132.5,-262.25"/>
<text text-anchor="middle" x="102.75" y="-248.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M37.35,-223.65C46.82,-227.92 58.76,-233.29 69.78,-238.24"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="67.98,-241.72 78.53,-242.63 70.85,-235.34 67.98,-241.72"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d3/dae/dsu__path__compression_8cpp.html#ae7880ce913f3058a35ff106d5be9e243" target="_top" xlink:title="Self&#45;test implementations, 1st test.">
<g id="a_Node000004"><a xlink:href="../../d3/dae/dsu__path__compression_8cpp.html#ae7880ce913f3058a35ff106d5be9e243" target="_top" xlink:title="Self&#45;test implementations, 1st test.">
<polygon fill="white" stroke="#666666" points="121.62,-188.25 83.88,-188.25 83.88,-169 121.62,-169 121.62,-188.25"/>
<text text-anchor="middle" x="102.75" y="-174.75" font-family="Helvetica,sans-Serif" font-size="10.00">test1</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M37.35,-207.6C47.94,-202.83 61.62,-196.68 73.64,-191.27"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="74.97,-194.06 82.65,-186.77 72.1,-187.68 74.97,-194.06"/>
</a>
</g>
</g>
<!-- Node16 -->
<g id="node16" class="node">
<g id="Node000016" class="node">
<title>Node16</title>
<g id="a_node16"><a xlink:href="../../d3/dae/dsu__path__compression_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae" target="_top" xlink:title="Self&#45;implementations, 2nd test.">
<g id="a_Node000016"><a xlink:href="../../d3/dae/dsu__path__compression_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae" target="_top" xlink:title="Self&#45;implementations, 2nd test.">
<polygon fill="white" stroke="#666666" points="121.62,-225.25 83.88,-225.25 83.88,-206 121.62,-206 121.62,-225.25"/>
<text text-anchor="middle" x="102.75" y="-211.75" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node16 -->
<g id="edge20" class="edge">
<g id="edge20_Node000001_Node000016" class="edge">
<title>Node1&#45;&gt;Node16</title>
<g id="a_edge20_Node000001_Node000016"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M37.35,-215.62C47.73,-215.62 61.07,-215.62 72.91,-215.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="72.65,-219.13 82.65,-215.62 72.65,-212.13 72.65,-219.13"/>
</a>
</g>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<g id="Node000017" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/chrono/c/time.html#" xlink:title=" ">
<g id="a_Node000017"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/chrono/c/time.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="129.88,-151.25 75.62,-151.25 75.62,-132 129.88,-132 129.88,-151.25"/>
<text text-anchor="middle" x="102.75" y="-137.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::time</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node17 -->
<g id="edge24" class="edge">
<g id="edge24_Node000001_Node000017" class="edge">
<title>Node1&#45;&gt;Node17</title>
<g id="a_edge24_Node000001_Node000017"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M27.56,-205.8C37.5,-194.02 55.28,-174.07 73,-159.62 73.76,-159.01 74.54,-158.39 75.34,-157.78"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="77.02,-160.19 83.24,-151.61 73.03,-154.43 77.02,-160.19"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/at.html#" xlink:title=" ">
<g id="a_Node000005"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/at.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="246,-243.25 169.25,-243.25 169.25,-224 246,-224 246,-243.25"/>
<text text-anchor="middle" x="207.62" y="-229.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::at</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<g id="edge4_Node000004_Node000005" class="edge">
<title>Node4&#45;&gt;Node5</title>
<g id="a_edge4_Node000004_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M120.59,-188.73C133.54,-196.38 151.96,-207.01 168.5,-215.62 170.61,-216.72 172.8,-217.83 175.01,-218.93"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="173.18,-222.42 183.71,-223.63 176.24,-216.12 173.18,-222.42"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../dd/d1f/classdsu.html#a0ce2672c570f4235eafddb0c9a58115a" target="_top" xlink:title="prints the minimum, maximum and size of the set to which i belongs to">
<g id="a_Node000006"><a xlink:href="../../dd/d1f/classdsu.html#a0ce2672c570f4235eafddb0c9a58115a" target="_top" xlink:title="prints the minimum, maximum and size of the set to which i belongs to">
<polygon fill="white" stroke="#666666" points="233.25,-206.25 182,-206.25 182,-187 233.25,-187 233.25,-206.25"/>
<text text-anchor="middle" x="207.62" y="-192.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::get</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<g id="edge5_Node000004_Node000006" class="edge">
<title>Node4&#45;&gt;Node6</title>
<g id="a_edge5_Node000004_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.67,-181.76C135.27,-184.14 154.41,-187.49 171.08,-190.41"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="170.14,-193.97 180.59,-192.24 171.34,-187.07 170.14,-193.97"/>
</a>
</g>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<g id="Node000011" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="../../dd/d1f/classdsu.html#a6ac30c07abca2aaa3b291504c25c3559" target="_top" xlink:title="Method that combines two disjoint sets to which i and j belongs to and make a single set having a com...">
<g id="a_Node000011"><a xlink:href="../../dd/d1f/classdsu.html#a6ac30c07abca2aaa3b291504c25c3559" target="_top" xlink:title="Method that combines two disjoint sets to which i and j belongs to and make a single set having a com...">
<polygon fill="white" stroke="#666666" points="246.75,-132.25 168.5,-132.25 168.5,-113 246.75,-113 246.75,-132.25"/>
<text text-anchor="middle" x="207.62" y="-118.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::UnionSet</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<g id="edge13_Node000004_Node000011" class="edge">
<title>Node4&#45;&gt;Node11</title>
<g id="a_edge13_Node000004_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.67,-168.87C137.41,-160.3 160.56,-147.7 178.72,-137.81"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="180.11,-140.5 187.22,-132.64 176.76,-134.35 180.11,-140.5"/>
</a>
</g>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="../../dd/d1f/classdsu.html#a696141b8b092466767f4bfe1c5e46cde" target="_top" xlink:title="A utility function that returns the max element of the set to which i belongs to.">
<g id="a_Node000007"><a xlink:href="../../dd/d1f/classdsu.html#a696141b8b092466767f4bfe1c5e46cde" target="_top" xlink:title="A utility function that returns the max element of the set to which i belongs to.">
<polygon fill="white" stroke="#666666" points="358,-243.25 282.75,-243.25 282.75,-224 358,-224 358,-243.25"/>
<text text-anchor="middle" x="320.38" y="-229.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::get_max</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<g id="edge6_Node000006_Node000007" class="edge">
<title>Node6&#45;&gt;Node7</title>
<g id="a_edge6_Node000006_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M233.48,-204.93C246.85,-209.39 263.67,-215.01 278.87,-220.09"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="277.49,-223.65 288.08,-223.5 279.7,-217.02 277.49,-223.65"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="../../dd/d1f/classdsu.html#ac713a5b496d0405c82e2808a85e58415" target="_top" xlink:title="A utility function that returns the min element of the set to which i belongs to.">
<g id="a_Node000009"><a xlink:href="../../dd/d1f/classdsu.html#ac713a5b496d0405c82e2808a85e58415" target="_top" xlink:title="A utility function that returns the min element of the set to which i belongs to.">
<polygon fill="white" stroke="#666666" points="356.5,-206.25 284.25,-206.25 284.25,-187 356.5,-187 356.5,-206.25"/>
<text text-anchor="middle" x="320.38" y="-192.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::get_min</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node9 -->
<g id="edge9" class="edge">
<g id="edge9_Node000006_Node000009" class="edge">
<title>Node6&#45;&gt;Node9</title>
<g id="a_edge9_Node000006_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M233.48,-196.62C245.25,-196.62 259.71,-196.62 273.38,-196.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="273.1,-200.13 283.1,-196.62 273.1,-193.13 273.1,-200.13"/>
</a>
</g>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<g id="Node000010" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="../../dd/d1f/classdsu.html#a1c24228b0f2f49220133fb8c3566a55c" target="_top" xlink:title="A utility function that returns the size of the set to which i belongs to.">
<g id="a_Node000010"><a xlink:href="../../dd/d1f/classdsu.html#a1c24228b0f2f49220133fb8c3566a55c" target="_top" xlink:title="A utility function that returns the size of the set to which i belongs to.">
<polygon fill="white" stroke="#666666" points="348.25,-280.25 292.5,-280.25 292.5,-261 348.25,-261 348.25,-280.25"/>
<text text-anchor="middle" x="320.38" y="-266.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::size</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node10 -->
<g id="edge11" class="edge">
<g id="edge11_Node000006_Node000010" class="edge">
<title>Node6&#45;&gt;Node10</title>
<g id="a_edge11_Node000006_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M233.19,-206.56C237.87,-208.91 242.6,-211.62 246.75,-214.62 265.59,-228.27 264.02,-238.83 282.75,-252.62 284,-253.54 285.3,-254.44 286.64,-255.3"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="284.38,-258.62 294.79,-260.58 287.88,-252.55 284.38,-258.62"/>
</a>
</g>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="../../dd/d1f/classdsu.html#a16851f78fe390fc1430905c83d6a2f1c" target="_top" xlink:title="Method to find the representative of the set to which i belongs to, T(n) = O(1)">
<g id="a_Node000008"><a xlink:href="../../dd/d1f/classdsu.html#a16851f78fe390fc1430905c83d6a2f1c" target="_top" xlink:title="Method to find the representative of the set to which i belongs to, T(n) = O(1)">
<polygon fill="white" stroke="#666666" points="462.5,-206.25 394,-206.25 394,-187 462.5,-187 462.5,-206.25"/>
<text text-anchor="middle" x="428.25" y="-192.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::findSet</text>
</a>
</g>
</g>
<!-- Node7&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<g id="edge7_Node000007_Node000008" class="edge">
<title>Node7&#45;&gt;Node8</title>
<g id="a_edge7_Node000007_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M350.31,-223.51C361.98,-219.44 375.62,-214.67 388.16,-210.29"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="389.07,-213.33 397.35,-206.72 386.76,-206.72 389.07,-213.33"/>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node8 -->
<g id="edge8" class="edge">
<g id="edge8_Node000008_Node000008" class="edge">
<title>Node8&#45;&gt;Node8</title>
<g id="a_edge8_Node000008_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M411.36,-206.54C403.66,-215.15 409.29,-224.25 428.25,-224.25 439.21,-224.25 445.72,-221.21 447.77,-216.98"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="450.98,-216.38 445.14,-207.54 444.19,-218.09 450.98,-216.38"/>
</a>
</g>
</g>
<!-- Node9&#45;&gt;Node8 -->
<g id="edge10" class="edge">
<g id="edge10_Node000009_Node000008" class="edge">
<title>Node9&#45;&gt;Node8</title>
<g id="a_edge10_Node000009_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M356.92,-196.62C365.29,-196.62 374.3,-196.62 383,-196.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="382.76,-200.13 392.76,-196.62 382.76,-193.13 382.76,-200.13"/>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node8 -->
<g id="edge12" class="edge">
<g id="edge12_Node000010_Node000008" class="edge">
<title>Node10&#45;&gt;Node8</title>
<g id="a_edge12_Node000010_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M343.89,-260.55C348.66,-258.14 353.58,-255.45 358,-252.62 376.17,-241.02 395.09,-225.44 408.56,-213.66"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="410.41,-216.81 415.56,-207.55 405.76,-211.58 410.41,-216.81"/>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node8 -->
<g id="edge14" class="edge">
<g id="edge14_Node000011_Node000008" class="edge">
<title>Node11&#45;&gt;Node8</title>
<g id="a_edge14_Node000011_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M217.49,-112.74C230.33,-99.26 255.53,-75.75 282.75,-66.62 314.46,-55.99 329.33,-49.41 358,-66.62 397.87,-90.56 416.04,-146.09 423.22,-176.25"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="419.97,-176.77 425.53,-185.79 426.81,-175.27 419.97,-176.77"/>
</a>
</g>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<g id="Node000012" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="../../dd/d1f/classdsu.html#a64d25c5986742f7c234ed449b2ff7303" target="_top" xlink:title="A utility function which check whether i and j belongs to same set or not.">
<g id="a_Node000012"><a xlink:href="../../dd/d1f/classdsu.html#a64d25c5986742f7c234ed449b2ff7303" target="_top" xlink:title="A utility function which check whether i and j belongs to same set or not.">
<polygon fill="white" stroke="#666666" points="355.75,-19.25 285,-19.25 285,0 355.75,0 355.75,-19.25"/>
<text text-anchor="middle" x="320.38" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::isSame</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node12 -->
<g id="edge15" class="edge">
<g id="edge15_Node000011_Node000012" class="edge">
<title>Node11&#45;&gt;Node12</title>
<g id="a_edge15_Node000011_Node000012"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M215.37,-112.72C227.5,-95.37 254.38,-58.92 282.75,-33.62 285.82,-30.88 289.24,-28.23 292.71,-25.74"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="294.48,-28.1 300.84,-19.63 290.59,-22.28 294.48,-28.1"/>
</a>
</g>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<g id="Node000013" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/max.html#" xlink:title=" ">
<g id="a_Node000013"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="347.5,-132.25 293.25,-132.25 293.25,-113 347.5,-113 347.5,-132.25"/>
<text text-anchor="middle" x="320.38" y="-118.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node13 -->
<g id="edge17" class="edge">
<g id="edge17_Node000011_Node000013" class="edge">
<title>Node11&#45;&gt;Node13</title>
<g id="a_edge17_Node000011_Node000013"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M247.05,-122.62C258.39,-122.62 270.78,-122.62 282.05,-122.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="281.86,-126.13 291.86,-122.62 281.86,-119.13 281.86,-126.13"/>
</a>
</g>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<g id="Node000014" class="node">
<title>Node14</title>
<g id="a_node14"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min.html#" xlink:title=" ">
<g id="a_Node000014"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="346,-95.25 294.75,-95.25 294.75,-76 346,-76 346,-95.25"/>
<text text-anchor="middle" x="320.38" y="-81.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node14 -->
<g id="edge18" class="edge">
<g id="edge18_Node000011_Node000014" class="edge">
<title>Node11&#45;&gt;Node14</title>
<g id="a_edge18_Node000011_Node000014"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M238.89,-112.51C252.91,-107.83 269.65,-102.24 284.22,-97.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="285.01,-100.46 293.38,-93.97 282.79,-93.82 285.01,-100.46"/>
</a>
</g>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<g id="Node000015" class="node">
<title>Node15</title>
<g id="a_node15"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<g id="a_Node000015"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="349.75,-169.25 291,-169.25 291,-150 349.75,-150 349.75,-169.25"/>
<text text-anchor="middle" x="320.38" y="-155.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<g id="edge19_Node000011_Node000015" class="edge">
<title>Node11&#45;&gt;Node15</title>
<g id="a_edge19_Node000011_Node000015"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M238.89,-132.74C251.75,-137.03 266.9,-142.09 280.57,-146.66"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="279.08,-150.19 289.67,-150.04 281.3,-143.55 279.08,-150.19"/>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node8 -->
<g id="edge16" class="edge">
<g id="edge16_Node000012_Node000008" class="edge">
<title>Node12&#45;&gt;Node8</title>
<g id="a_edge16_Node000012_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M341.31,-19.71C347.26,-23.45 353.42,-28.14 358,-33.62 394.53,-77.33 414.45,-143.13 422.68,-176.17"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="419.47,-176.83 425.19,-185.76 426.28,-175.22 419.47,-176.83"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node5 -->
<g id="edge21" class="edge">
<g id="edge21_Node000016_Node000005" class="edge">
<title>Node16&#45;&gt;Node5</title>
<g id="a_edge21_Node000016_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.67,-218.76C131.83,-220.54 145.09,-222.86 158.1,-225.13"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="157.44,-228.75 167.89,-227.02 158.65,-221.85 157.44,-228.75"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node6 -->
<g id="edge22" class="edge">
<g id="edge22_Node000016_Node000006" class="edge">
<title>Node16&#45;&gt;Node6</title>
<g id="a_edge22_Node000016_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.67,-212.32C135.27,-209.8 154.41,-206.27 171.08,-203.19"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="171.39,-206.51 180.59,-201.25 170.12,-199.62 171.39,-206.51"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node11 -->
<g id="edge23" class="edge">
<g id="edge23_Node000016_Node000011" class="edge">
<title>Node16&#45;&gt;Node11</title>
<g id="a_edge23_Node000016_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.22,-205.59C125.05,-203.15 129.01,-200.42 132.5,-197.62 154.44,-180.05 176.73,-156.57 191.06,-140.6"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="193.14,-143.39 197.14,-133.58 187.9,-138.76 193.14,-143.39"/>
</a>
</g>
</g>
</g>
</svg>
</svg>
<style type='text/css'>
<![CDATA[
[data-mouse-over-selected='false'] { opacity: 0.7; }
[data-mouse-over-selected='true'] { opacity: 1.0; }
]]>
</style>
<script type="application/ecmascript"><![CDATA[
document.addEventListener('DOMContentLoaded', (event) => {
highlightEdges();
highlightAdjacentNodes();
});
]]></script>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,381 @@
<?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 8.0.5 (20230430.1635)
-->
<!-- Title: main Pages: 1 -->
<svg width="471pt" height="307pt"
viewBox="0.00 0.00 470.50 307.25" 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 303.25)">
<title>main</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<polygon fill="#999999" stroke="#666666" points="37,-225.25 0,-225.25 0,-206 37,-206 37,-225.25"/>
<text text-anchor="middle" x="18.5" y="-211.75" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/srand.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="132.5,-299.25 73,-299.25 73,-280 132.5,-280 132.5,-299.25"/>
<text text-anchor="middle" x="102.75" y="-285.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::srand</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M27.56,-225.45C37.5,-237.23 55.28,-257.18 73,-271.62 73.76,-272.24 74.54,-272.86 75.34,-273.47"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="73.03,-276.82 83.24,-279.64 77.02,-271.06 73.03,-276.82"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="132.5,-262.25 73,-262.25 73,-243 132.5,-243 132.5,-262.25"/>
<text text-anchor="middle" x="102.75" y="-248.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M37.35,-223.65C46.82,-227.92 58.76,-233.29 69.78,-238.24"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="67.98,-241.72 78.53,-242.63 70.85,-235.34 67.98,-241.72"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="../../d3/dae/dsu__path__compression_8cpp.html#ae7880ce913f3058a35ff106d5be9e243" target="_top" xlink:title="Self&#45;test implementations, 1st test.">
<polygon fill="white" stroke="#666666" points="121.62,-188.25 83.88,-188.25 83.88,-169 121.62,-169 121.62,-188.25"/>
<text text-anchor="middle" x="102.75" y="-174.75" font-family="Helvetica,sans-Serif" font-size="10.00">test1</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M37.35,-207.6C47.94,-202.83 61.62,-196.68 73.64,-191.27"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="74.97,-194.06 82.65,-186.77 72.1,-187.68 74.97,-194.06"/>
</a>
</g>
</g>
<!-- Node16 -->
<g id="Node000016" class="node">
<title>Node16</title>
<g id="a_Node000016"><a xlink:href="../../d3/dae/dsu__path__compression_8cpp.html#a45d94ead4cf4e1ff9f87c38bc99f59ae" target="_top" xlink:title="Self&#45;implementations, 2nd test.">
<polygon fill="white" stroke="#666666" points="121.62,-225.25 83.88,-225.25 83.88,-206 121.62,-206 121.62,-225.25"/>
<text text-anchor="middle" x="102.75" y="-211.75" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node16 -->
<g id="edge20_Node000001_Node000016" class="edge">
<title>Node1&#45;&gt;Node16</title>
<g id="a_edge20_Node000001_Node000016"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M37.35,-215.62C47.73,-215.62 61.07,-215.62 72.91,-215.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="72.65,-219.13 82.65,-215.62 72.65,-212.13 72.65,-219.13"/>
</a>
</g>
</g>
<!-- Node17 -->
<g id="Node000017" class="node">
<title>Node17</title>
<g id="a_Node000017"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/chrono/c/time.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="129.88,-151.25 75.62,-151.25 75.62,-132 129.88,-132 129.88,-151.25"/>
<text text-anchor="middle" x="102.75" y="-137.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::time</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node17 -->
<g id="edge24_Node000001_Node000017" class="edge">
<title>Node1&#45;&gt;Node17</title>
<g id="a_edge24_Node000001_Node000017"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M27.56,-205.8C37.5,-194.02 55.28,-174.07 73,-159.62 73.76,-159.01 74.54,-158.39 75.34,-157.78"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="77.02,-160.19 83.24,-151.61 73.03,-154.43 77.02,-160.19"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/at.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="246,-243.25 169.25,-243.25 169.25,-224 246,-224 246,-243.25"/>
<text text-anchor="middle" x="207.62" y="-229.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::at</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4_Node000004_Node000005" class="edge">
<title>Node4&#45;&gt;Node5</title>
<g id="a_edge4_Node000004_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M120.59,-188.73C133.54,-196.38 151.96,-207.01 168.5,-215.62 170.61,-216.72 172.8,-217.83 175.01,-218.93"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="173.18,-222.42 183.71,-223.63 176.24,-216.12 173.18,-222.42"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="../../dd/d1f/classdsu.html#a0ce2672c570f4235eafddb0c9a58115a" target="_top" xlink:title="prints the minimum, maximum and size of the set to which i belongs to">
<polygon fill="white" stroke="#666666" points="233.25,-206.25 182,-206.25 182,-187 233.25,-187 233.25,-206.25"/>
<text text-anchor="middle" x="207.62" y="-192.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::get</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node6 -->
<g id="edge5_Node000004_Node000006" class="edge">
<title>Node4&#45;&gt;Node6</title>
<g id="a_edge5_Node000004_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.67,-181.76C135.27,-184.14 154.41,-187.49 171.08,-190.41"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="170.14,-193.97 180.59,-192.24 171.34,-187.07 170.14,-193.97"/>
</a>
</g>
</g>
<!-- Node11 -->
<g id="Node000011" class="node">
<title>Node11</title>
<g id="a_Node000011"><a xlink:href="../../dd/d1f/classdsu.html#a6ac30c07abca2aaa3b291504c25c3559" target="_top" xlink:title="Method that combines two disjoint sets to which i and j belongs to and make a single set having a com...">
<polygon fill="white" stroke="#666666" points="246.75,-132.25 168.5,-132.25 168.5,-113 246.75,-113 246.75,-132.25"/>
<text text-anchor="middle" x="207.62" y="-118.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::UnionSet</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node11 -->
<g id="edge13_Node000004_Node000011" class="edge">
<title>Node4&#45;&gt;Node11</title>
<g id="a_edge13_Node000004_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.67,-168.87C137.41,-160.3 160.56,-147.7 178.72,-137.81"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="180.11,-140.5 187.22,-132.64 176.76,-134.35 180.11,-140.5"/>
</a>
</g>
</g>
<!-- Node7 -->
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_Node000007"><a xlink:href="../../dd/d1f/classdsu.html#a696141b8b092466767f4bfe1c5e46cde" target="_top" xlink:title="A utility function that returns the max element of the set to which i belongs to.">
<polygon fill="white" stroke="#666666" points="358,-243.25 282.75,-243.25 282.75,-224 358,-224 358,-243.25"/>
<text text-anchor="middle" x="320.38" y="-229.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::get_max</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge6_Node000006_Node000007" class="edge">
<title>Node6&#45;&gt;Node7</title>
<g id="a_edge6_Node000006_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M233.48,-204.93C246.85,-209.39 263.67,-215.01 278.87,-220.09"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="277.49,-223.65 288.08,-223.5 279.7,-217.02 277.49,-223.65"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_Node000009"><a xlink:href="../../dd/d1f/classdsu.html#ac713a5b496d0405c82e2808a85e58415" target="_top" xlink:title="A utility function that returns the min element of the set to which i belongs to.">
<polygon fill="white" stroke="#666666" points="356.5,-206.25 284.25,-206.25 284.25,-187 356.5,-187 356.5,-206.25"/>
<text text-anchor="middle" x="320.38" y="-192.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::get_min</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node9 -->
<g id="edge9_Node000006_Node000009" class="edge">
<title>Node6&#45;&gt;Node9</title>
<g id="a_edge9_Node000006_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M233.48,-196.62C245.25,-196.62 259.71,-196.62 273.38,-196.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="273.1,-200.13 283.1,-196.62 273.1,-193.13 273.1,-200.13"/>
</a>
</g>
</g>
<!-- Node10 -->
<g id="Node000010" class="node">
<title>Node10</title>
<g id="a_Node000010"><a xlink:href="../../dd/d1f/classdsu.html#a1c24228b0f2f49220133fb8c3566a55c" target="_top" xlink:title="A utility function that returns the size of the set to which i belongs to.">
<polygon fill="white" stroke="#666666" points="348.25,-280.25 292.5,-280.25 292.5,-261 348.25,-261 348.25,-280.25"/>
<text text-anchor="middle" x="320.38" y="-266.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::size</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node10 -->
<g id="edge11_Node000006_Node000010" class="edge">
<title>Node6&#45;&gt;Node10</title>
<g id="a_edge11_Node000006_Node000010"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M233.19,-206.56C237.87,-208.91 242.6,-211.62 246.75,-214.62 265.59,-228.27 264.02,-238.83 282.75,-252.62 284,-253.54 285.3,-254.44 286.64,-255.3"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="284.38,-258.62 294.79,-260.58 287.88,-252.55 284.38,-258.62"/>
</a>
</g>
</g>
<!-- Node8 -->
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_Node000008"><a xlink:href="../../dd/d1f/classdsu.html#a16851f78fe390fc1430905c83d6a2f1c" target="_top" xlink:title="Method to find the representative of the set to which i belongs to, T(n) = O(1)">
<polygon fill="white" stroke="#666666" points="462.5,-206.25 394,-206.25 394,-187 462.5,-187 462.5,-206.25"/>
<text text-anchor="middle" x="428.25" y="-192.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::findSet</text>
</a>
</g>
</g>
<!-- Node7&#45;&gt;Node8 -->
<g id="edge7_Node000007_Node000008" class="edge">
<title>Node7&#45;&gt;Node8</title>
<g id="a_edge7_Node000007_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M350.31,-223.51C361.98,-219.44 375.62,-214.67 388.16,-210.29"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="389.07,-213.33 397.35,-206.72 386.76,-206.72 389.07,-213.33"/>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node8 -->
<g id="edge8_Node000008_Node000008" class="edge">
<title>Node8&#45;&gt;Node8</title>
<g id="a_edge8_Node000008_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M411.36,-206.54C403.66,-215.15 409.29,-224.25 428.25,-224.25 439.21,-224.25 445.72,-221.21 447.77,-216.98"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="450.98,-216.38 445.14,-207.54 444.19,-218.09 450.98,-216.38"/>
</a>
</g>
</g>
<!-- Node9&#45;&gt;Node8 -->
<g id="edge10_Node000009_Node000008" class="edge">
<title>Node9&#45;&gt;Node8</title>
<g id="a_edge10_Node000009_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M356.92,-196.62C365.29,-196.62 374.3,-196.62 383,-196.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="382.76,-200.13 392.76,-196.62 382.76,-193.13 382.76,-200.13"/>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node8 -->
<g id="edge12_Node000010_Node000008" class="edge">
<title>Node10&#45;&gt;Node8</title>
<g id="a_edge12_Node000010_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M343.89,-260.55C348.66,-258.14 353.58,-255.45 358,-252.62 376.17,-241.02 395.09,-225.44 408.56,-213.66"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="410.41,-216.81 415.56,-207.55 405.76,-211.58 410.41,-216.81"/>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node8 -->
<g id="edge14_Node000011_Node000008" class="edge">
<title>Node11&#45;&gt;Node8</title>
<g id="a_edge14_Node000011_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M217.49,-112.74C230.33,-99.26 255.53,-75.75 282.75,-66.62 314.46,-55.99 329.33,-49.41 358,-66.62 397.87,-90.56 416.04,-146.09 423.22,-176.25"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="419.97,-176.77 425.53,-185.79 426.81,-175.27 419.97,-176.77"/>
</a>
</g>
</g>
<!-- Node12 -->
<g id="Node000012" class="node">
<title>Node12</title>
<g id="a_Node000012"><a xlink:href="../../dd/d1f/classdsu.html#a64d25c5986742f7c234ed449b2ff7303" target="_top" xlink:title="A utility function which check whether i and j belongs to same set or not.">
<polygon fill="white" stroke="#666666" points="355.75,-19.25 285,-19.25 285,0 355.75,0 355.75,-19.25"/>
<text text-anchor="middle" x="320.38" y="-5.75" font-family="Helvetica,sans-Serif" font-size="10.00">dsu::isSame</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node12 -->
<g id="edge15_Node000011_Node000012" class="edge">
<title>Node11&#45;&gt;Node12</title>
<g id="a_edge15_Node000011_Node000012"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M215.37,-112.72C227.5,-95.37 254.38,-58.92 282.75,-33.62 285.82,-30.88 289.24,-28.23 292.71,-25.74"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="294.48,-28.1 300.84,-19.63 290.59,-22.28 294.48,-28.1"/>
</a>
</g>
</g>
<!-- Node13 -->
<g id="Node000013" class="node">
<title>Node13</title>
<g id="a_Node000013"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="347.5,-132.25 293.25,-132.25 293.25,-113 347.5,-113 347.5,-132.25"/>
<text text-anchor="middle" x="320.38" y="-118.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node13 -->
<g id="edge17_Node000011_Node000013" class="edge">
<title>Node11&#45;&gt;Node13</title>
<g id="a_edge17_Node000011_Node000013"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M247.05,-122.62C258.39,-122.62 270.78,-122.62 282.05,-122.62"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="281.86,-126.13 291.86,-122.62 281.86,-119.13 281.86,-126.13"/>
</a>
</g>
</g>
<!-- Node14 -->
<g id="Node000014" class="node">
<title>Node14</title>
<g id="a_Node000014"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="346,-95.25 294.75,-95.25 294.75,-76 346,-76 346,-95.25"/>
<text text-anchor="middle" x="320.38" y="-81.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node14 -->
<g id="edge18_Node000011_Node000014" class="edge">
<title>Node11&#45;&gt;Node14</title>
<g id="a_edge18_Node000011_Node000014"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M238.89,-112.51C252.91,-107.83 269.65,-102.24 284.22,-97.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="285.01,-100.46 293.38,-93.97 282.79,-93.82 285.01,-100.46"/>
</a>
</g>
</g>
<!-- Node15 -->
<g id="Node000015" class="node">
<title>Node15</title>
<g id="a_Node000015"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="349.75,-169.25 291,-169.25 291,-150 349.75,-150 349.75,-169.25"/>
<text text-anchor="middle" x="320.38" y="-155.75" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node11&#45;&gt;Node15 -->
<g id="edge19_Node000011_Node000015" class="edge">
<title>Node11&#45;&gt;Node15</title>
<g id="a_edge19_Node000011_Node000015"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M238.89,-132.74C251.75,-137.03 266.9,-142.09 280.57,-146.66"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="279.08,-150.19 289.67,-150.04 281.3,-143.55 279.08,-150.19"/>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node8 -->
<g id="edge16_Node000012_Node000008" class="edge">
<title>Node12&#45;&gt;Node8</title>
<g id="a_edge16_Node000012_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M341.31,-19.71C347.26,-23.45 353.42,-28.14 358,-33.62 394.53,-77.33 414.45,-143.13 422.68,-176.17"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="419.47,-176.83 425.19,-185.76 426.28,-175.22 419.47,-176.83"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node5 -->
<g id="edge21_Node000016_Node000005" class="edge">
<title>Node16&#45;&gt;Node5</title>
<g id="a_edge21_Node000016_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.67,-218.76C131.83,-220.54 145.09,-222.86 158.1,-225.13"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="157.44,-228.75 167.89,-227.02 158.65,-221.85 157.44,-228.75"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node6 -->
<g id="edge22_Node000016_Node000006" class="edge">
<title>Node16&#45;&gt;Node6</title>
<g id="a_edge22_Node000016_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.67,-212.32C135.27,-209.8 154.41,-206.27 171.08,-203.19"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="171.39,-206.51 180.59,-201.25 170.12,-199.62 171.39,-206.51"/>
</a>
</g>
</g>
<!-- Node16&#45;&gt;Node11 -->
<g id="edge23_Node000016_Node000011" class="edge">
<title>Node16&#45;&gt;Node11</title>
<g id="a_edge23_Node000016_Node000011"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M121.22,-205.59C125.05,-203.15 129.01,-200.42 132.5,-197.62 154.44,-180.05 176.73,-156.57 191.06,-140.6"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="193.14,-143.39 197.14,-133.58 187.9,-138.76 193.14,-143.39"/>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB