Documentation for f16093cf7b

This commit is contained in:
github-actions
2020-06-29 12:34:01 +00:00
parent 7c542ad6df
commit e64a0eff2d
262 changed files with 13819 additions and 5383 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,17 @@
var classciphers_1_1_hill_cipher =
[
[ "codec", "d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa", null ],
[ "decrypt_text", "d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b", null ],
[ "encrypt_text", "d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917", null ],
[ "gcd", "d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0", null ],
[ "generate_decryption_key", "d6/d26/classciphers_1_1_hill_cipher.html#abb2c4dc2b8a59d3dfe0fa22c2adc086b", null ],
[ "generate_encryption_key", "d6/d26/classciphers_1_1_hill_cipher.html#a7ca10cd1a0e8e3732391e0427d2d0213", null ],
[ "generate_keys", "d6/d26/classciphers_1_1_hill_cipher.html#a14bfcd14af6cd853130cbacd32e35c13", null ],
[ "get_char_idx", "d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41", null ],
[ "get_idx_char", "d6/d26/classciphers_1_1_hill_cipher.html#a12f727cca9e21f9539cd74b6603adf0c", null ],
[ "get_inverse", "d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b", null ],
[ "mat_mul", "d6/d26/classciphers_1_1_hill_cipher.html#a40efd842a5cc44c233641ac2df13b0c0", null ],
[ "modulo", "d6/d26/classciphers_1_1_hill_cipher.html#a63e7b8e92dff8b9260d6d21c31ecebd0", null ],
[ "rand_range", "d6/d26/classciphers_1_1_hill_cipher.html#a716d0313141499d16f57c0c107f04395", null ],
[ "rand_range", "d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9", null ]
];

View File

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

View File

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

View File

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

After

Width:  |  Height:  |  Size: 21 KiB

View File

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

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,5 @@
<map id="ciphers::HillCipher::mat_mul" name="ciphers::HillCipher::mat_mul">
<area shape="rect" id="node1" title="helper function to perform vector multiplication with encryption or decryption matrix" alt="" coords="5,23,135,65"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="183,5,299,32"/>
<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="201,56,281,83"/>
</map>

View File

@@ -0,0 +1 @@
bcd9bd426f80803737f3591aad104312

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: ciphers::HillCipher::mat_mul Pages: 1 -->
<svg width="228pt" height="66pt"
viewBox="0.00 0.00 228.00 66.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 62)">
<title>ciphers::HillCipher::mat_mul</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-62 224,-62 224,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<polygon fill="#bfbfbf" stroke="black" points="0,-14 0,-44 97,-44 97,-14 0,-14"/>
<text text-anchor="start" x="8" y="-32" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-21" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="133,-38.5 133,-57.5 220,-57.5 220,-38.5 133,-38.5"/>
<text text-anchor="middle" x="176.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M97.14,-36.18C105.46,-37.44 114.16,-38.75 122.62,-40.03"/>
<polygon fill="midnightblue" stroke="midnightblue" points="122.36,-43.53 132.77,-41.56 123.4,-36.6 122.36,-43.53"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="146.5,-0.5 146.5,-19.5 206.5,-19.5 206.5,-0.5 146.5,-0.5"/>
<text text-anchor="middle" x="176.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M97.14,-21.82C110.09,-19.86 123.97,-17.77 136.4,-15.9"/>
<polygon fill="midnightblue" stroke="midnightblue" points="137.08,-19.33 146.44,-14.38 136.03,-12.41 137.08,-19.33"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,9 @@
<map id="ciphers::HillCipher::decrypt_text" name="ciphers::HillCipher::decrypt_text">
<area shape="rect" id="node1" title="Decrypt a given text using a given key." alt="" coords="5,93,135,135"/>
<area shape="rect" id="node2" 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="183,93,312,135"/>
<area shape="rect" id="node3" href="$d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" title="Get the index of a character in the STRKEY." alt="" coords="360,5,489,47"/>
<area shape="rect" id="node5" 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="363,71,486,98"/>
<area shape="rect" id="node6" href="$d6/d26/classciphers_1_1_hill_cipher.html#a40efd842a5cc44c233641ac2df13b0c0" title="helper function to perform vector multiplication with encryption or decryption matrix" alt="" coords="360,123,489,164"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="537,158,653,185"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="555,103,635,130"/>
</map>

View File

@@ -0,0 +1 @@
0cd668ab83784d1d4a2b3fceadf486b3

View File

@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: ciphers::HillCipher::decrypt_text Pages: 1 -->
<svg width="494pt" height="145pt"
viewBox="0.00 0.00 494.00 144.67" 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 140.67)">
<title>ciphers::HillCipher::decrypt_text</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-140.67 490,-140.67 490,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Decrypt a given text using a given key.">
<polygon fill="#bfbfbf" stroke="black" points="0,-40.17 0,-70.17 97,-70.17 97,-40.17 0,-40.17"/>
<text text-anchor="start" x="8" y="-58.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-47.17" font-family="Helvetica,sans-Serif" font-size="10.00">::decrypt_text</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<polygon fill="white" stroke="black" points="133,-40.17 133,-70.17 230,-70.17 230,-40.17 133,-40.17"/>
<text text-anchor="start" x="141" y="-58.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="181.5" y="-47.17" font-family="Helvetica,sans-Serif" font-size="10.00">::codec</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M97.16,-55.17C105.38,-55.17 114.01,-55.17 122.46,-55.17"/>
<polygon fill="midnightblue" stroke="midnightblue" points="122.65,-58.67 132.65,-55.17 122.65,-51.67 122.65,-58.67"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><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="black" points="266,-106.17 266,-136.17 363,-136.17 363,-106.17 266,-106.17"/>
<text text-anchor="start" x="274" y="-124.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="314.5" y="-113.17" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M212.55,-70.31C230.94,-79.57 254.67,-91.52 274.5,-101.51"/>
<polygon fill="midnightblue" stroke="midnightblue" points="273.08,-104.72 283.59,-106.09 276.23,-98.47 273.08,-104.72"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="268.5,-67.67 268.5,-86.67 360.5,-86.67 360.5,-67.67 268.5,-67.67"/>
<text text-anchor="middle" x="314.5" y="-74.67" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::length</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node2&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M230.16,-63.17C239.3,-64.7 248.93,-66.32 258.28,-67.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="257.83,-71.37 268.27,-69.57 258.99,-64.46 257.83,-71.37"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a40efd842a5cc44c233641ac2df13b0c0" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<polygon fill="white" stroke="black" points="266,-18.17 266,-48.17 363,-48.17 363,-18.17 266,-18.17"/>
<text text-anchor="start" x="274" y="-36.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="314.5" y="-25.17" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node2&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M230.16,-47.16C238.47,-45.77 247.19,-44.3 255.74,-42.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="256.37,-46.31 265.65,-41.2 255.21,-39.41 256.37,-46.31"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="399,-2.67 399,-21.67 486,-21.67 486,-2.67 399,-2.67"/>
<text text-anchor="middle" x="442.5" y="-9.67" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node7 -->
<g id="edge8" class="edge">
<title>Node2&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M202.49,-40C218.65,-28.74 242.51,-14.32 266,-8.17 306.25,2.38 353.48,0.54 388.8,-3.47"/>
<polygon fill="midnightblue" stroke="midnightblue" points="388.54,-6.97 398.9,-4.71 389.4,-0.02 388.54,-6.97"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="412.5,-43.67 412.5,-62.67 472.5,-62.67 472.5,-43.67 412.5,-43.67"/>
<text text-anchor="middle" x="442.5" y="-50.67" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M344.43,-106.04C350.57,-102.8 357.01,-99.38 363,-96.17 380.46,-86.79 400,-76.08 415.22,-67.7"/>
<polygon fill="midnightblue" stroke="midnightblue" points="417.02,-70.71 424.09,-62.81 413.64,-64.58 417.02,-70.71"/>
</g>
<!-- Node6&#45;&gt;Node4 -->
<g id="edge7" class="edge">
<title>Node6&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M363.14,-40.73C376.09,-42.78 389.97,-44.99 402.4,-46.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="402.02,-50.44 412.44,-48.55 403.11,-43.53 402.02,-50.44"/>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<title>Node6&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M363.14,-25.23C371.55,-23.82 380.35,-22.36 388.9,-20.93"/>
<polygon fill="midnightblue" stroke="midnightblue" points="389.48,-24.38 398.77,-19.29 388.33,-17.48 389.48,-24.38"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@@ -0,0 +1,5 @@
<map id="ciphers::HillCipher::get_inverse" name="ciphers::HillCipher::get_inverse">
<area shape="rect" id="node1" title=" " alt="" coords="5,23,135,65"/>
<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="205,5,277,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="183,56,299,83"/>
</map>

View File

@@ -0,0 +1 @@
7bf6951e84aad97563852a2464f56660

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: ciphers::HillCipher::get_inverse Pages: 1 -->
<svg width="228pt" height="66pt"
viewBox="0.00 0.00 228.00 66.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 62)">
<title>ciphers::HillCipher::get_inverse</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-62 224,-62 224,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title=" ">
<polygon fill="#bfbfbf" stroke="black" points="0,-14 0,-44 97,-44 97,-14 0,-14"/>
<text text-anchor="start" x="8" y="-32" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-21" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="149.5,-38.5 149.5,-57.5 203.5,-57.5 203.5,-38.5 149.5,-38.5"/>
<text text-anchor="middle" x="176.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M97.14,-36.18C111.1,-38.29 126.14,-40.56 139.28,-42.54"/>
<polygon fill="midnightblue" stroke="midnightblue" points="138.93,-46.03 149.34,-44.06 139.98,-39.1 138.93,-46.03"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="133,-0.5 133,-19.5 220,-19.5 220,-0.5 133,-0.5"/>
<text text-anchor="middle" x="176.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node1&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M97.14,-21.82C105.46,-20.56 114.16,-19.25 122.62,-17.97"/>
<polygon fill="midnightblue" stroke="midnightblue" points="123.4,-21.4 132.77,-16.44 122.36,-14.47 123.4,-21.4"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,4 @@
<map id="ciphers::HillCipher::rand_range" name="ciphers::HillCipher::rand_range">
<area shape="rect" id="node1" title="Function to generate a random integer in a given interval." alt="" coords="5,5,135,47"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="183,13,256,39"/>
</map>

View File

@@ -0,0 +1 @@
72bad3ebb15bc908928df29234470433

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: ciphers::HillCipher::rand_range Pages: 1 -->
<svg width="196pt" height="39pt"
viewBox="0.00 0.00 196.00 39.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 35)">
<title>ciphers::HillCipher::rand_range</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-35 192,-35 192,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function to generate a random integer in a given interval.">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-30.5 97,-30.5 97,-0.5 0,-0.5"/>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="133,-6 133,-25 188,-25 188,-6 133,-6"/>
<text text-anchor="middle" x="160.5" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M97.11,-15.5C105.68,-15.5 114.5,-15.5 122.71,-15.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="122.71,-19 132.71,-15.5 122.71,-12 122.71,-19"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,6 @@
<map id="ciphers::HillCipher::rand_range" name="ciphers::HillCipher::rand_range">
<area shape="rect" id="node1" title="Function overload to fill a matrix with random integers in a given interval." alt="" coords="5,74,135,115"/>
<area shape="rect" id="node2" href="$d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" title=" " alt="" coords="183,56,289,83"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="508,56,624,83"/>
<area shape="rect" id="node3" href="$d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" title=" " alt="" coords="337,5,460,32"/>
</map>

View File

@@ -0,0 +1 @@
9968d3ed6544f54266edb1cb4ee6ebd7

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: ciphers::HillCipher::rand_range Pages: 1 -->
<svg width="472pt" height="91pt"
viewBox="0.00 0.00 472.00 90.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 86.5)">
<title>ciphers::HillCipher::rand_range</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-86.5 468,-86.5 468,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Function overload to fill a matrix with random integers in a given interval.">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-30.5 97,-30.5 97,-0.5 0,-0.5"/>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="133,-25 133,-44 213,-44 213,-25 133,-25"/>
<text text-anchor="middle" x="173" y="-32" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M97.21,-22.9C105.62,-24.2 114.38,-25.56 122.83,-26.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="122.51,-30.37 132.92,-28.44 123.58,-23.45 122.51,-30.37"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="377,-25 377,-44 464,-44 464,-25 377,-25"/>
<text text-anchor="middle" x="420.5" y="-32" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge5" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M97.1,-14.35C129.74,-13.84 174.01,-13.71 213,-15.5 265.38,-17.9 325.01,-23.72 366.67,-28.29"/>
<polygon fill="midnightblue" stroke="midnightblue" points="366.54,-31.8 376.87,-29.43 367.31,-24.84 366.54,-31.8"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="249,-63 249,-82 341,-82 341,-63 249,-63"/>
<text text-anchor="middle" x="295" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M204.28,-44.09C219.35,-48.86 237.75,-54.69 253.97,-59.82"/>
<polygon fill="midnightblue" stroke="midnightblue" points="253.14,-63.23 263.73,-62.91 255.25,-56.56 253.14,-63.23"/>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge4" class="edge">
<title>Node2&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M213.17,-34.5C254.7,-34.5 320.55,-34.5 366.65,-34.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="366.76,-38 376.76,-34.5 366.76,-31 366.76,-38"/>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M327.16,-62.91C342.81,-58.1 361.97,-52.2 378.77,-47.03"/>
<polygon fill="midnightblue" stroke="midnightblue" points="379.82,-50.37 388.35,-44.09 377.76,-43.68 379.82,-50.37"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,4 @@
<map id="ciphers::HillCipher::gcd" name="ciphers::HillCipher::gcd">
<area shape="rect" id="node1" title="Compute GCD of two integers using Euler&#39;s algorithm." alt="" coords="5,5,164,32"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="212,5,291,32"/>
</map>

View File

@@ -0,0 +1 @@
9f57a473468bccdf869b893fb7369c2d

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: ciphers::HillCipher::gcd Pages: 1 -->
<svg width="222pt" height="28pt"
viewBox="0.00 0.00 222.00 28.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 24)">
<title>ciphers::HillCipher::gcd</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-24 218,-24 218,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Compute GCD of two integers using Euler&#39;s algorithm.">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 119,-19.5 119,-0.5 0,-0.5"/>
<text text-anchor="middle" x="59.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="155,-0.5 155,-19.5 214,-19.5 214,-0.5 155,-0.5"/>
<text text-anchor="middle" x="184.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M119.12,-10C127.72,-10 136.4,-10 144.48,-10"/>
<polygon fill="midnightblue" stroke="midnightblue" points="144.7,-13.5 154.7,-10 144.7,-6.5 144.7,-13.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

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

View File

@@ -0,0 +1 @@
a6ced2ff2420a81ad90fc98eaa8a5fee

View File

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

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -0,0 +1,9 @@
<map id="ciphers::HillCipher::encrypt_text" name="ciphers::HillCipher::encrypt_text">
<area shape="rect" id="node1" title="Encrypt a given text using a given key." alt="" coords="5,93,135,135"/>
<area shape="rect" id="node2" 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="183,93,312,135"/>
<area shape="rect" id="node3" href="$d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" title="Get the index of a character in the STRKEY." alt="" coords="360,5,489,47"/>
<area shape="rect" id="node5" 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="363,71,486,98"/>
<area shape="rect" id="node6" href="$d6/d26/classciphers_1_1_hill_cipher.html#a40efd842a5cc44c233641ac2df13b0c0" title="helper function to perform vector multiplication with encryption or decryption matrix" alt="" coords="360,123,489,164"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="537,158,653,185"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="555,103,635,130"/>
</map>

View File

@@ -0,0 +1 @@
4919afd3b515b2fef6644a5ddbafdb3f

View File

@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: ciphers::HillCipher::encrypt_text Pages: 1 -->
<svg width="494pt" height="145pt"
viewBox="0.00 0.00 494.00 144.67" 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 140.67)">
<title>ciphers::HillCipher::encrypt_text</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-140.67 490,-140.67 490,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Encrypt a given text using a given key.">
<polygon fill="#bfbfbf" stroke="black" points="0,-40.17 0,-70.17 97,-70.17 97,-40.17 0,-40.17"/>
<text text-anchor="start" x="8" y="-58.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-47.17" font-family="Helvetica,sans-Serif" font-size="10.00">::encrypt_text</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ad667fa0860977f6d6d443fa1dbcd80aa" target="_top" xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<polygon fill="white" stroke="black" points="133,-40.17 133,-70.17 230,-70.17 230,-40.17 133,-40.17"/>
<text text-anchor="start" x="141" y="-58.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="181.5" y="-47.17" font-family="Helvetica,sans-Serif" font-size="10.00">::codec</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M97.16,-55.17C105.38,-55.17 114.01,-55.17 122.46,-55.17"/>
<polygon fill="midnightblue" stroke="midnightblue" points="122.65,-58.67 132.65,-55.17 122.65,-51.67 122.65,-58.67"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><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="black" points="266,-106.17 266,-136.17 363,-136.17 363,-106.17 266,-106.17"/>
<text text-anchor="start" x="274" y="-124.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="314.5" y="-113.17" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M212.55,-70.31C230.94,-79.57 254.67,-91.52 274.5,-101.51"/>
<polygon fill="midnightblue" stroke="midnightblue" points="273.08,-104.72 283.59,-106.09 276.23,-98.47 273.08,-104.72"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="268.5,-67.67 268.5,-86.67 360.5,-86.67 360.5,-67.67 268.5,-67.67"/>
<text text-anchor="middle" x="314.5" y="-74.67" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::length</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node2&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M230.16,-63.17C239.3,-64.7 248.93,-66.32 258.28,-67.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="257.83,-71.37 268.27,-69.57 258.99,-64.46 257.83,-71.37"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a40efd842a5cc44c233641ac2df13b0c0" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<polygon fill="white" stroke="black" points="266,-18.17 266,-48.17 363,-48.17 363,-18.17 266,-18.17"/>
<text text-anchor="start" x="274" y="-36.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="314.5" y="-25.17" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node2&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M230.16,-47.16C238.47,-45.77 247.19,-44.3 255.74,-42.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="256.37,-46.31 265.65,-41.2 255.21,-39.41 256.37,-46.31"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="399,-2.67 399,-21.67 486,-21.67 486,-2.67 399,-2.67"/>
<text text-anchor="middle" x="442.5" y="-9.67" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node7 -->
<g id="edge8" class="edge">
<title>Node2&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M202.49,-40C218.65,-28.74 242.51,-14.32 266,-8.17 306.25,2.38 353.48,0.54 388.8,-3.47"/>
<polygon fill="midnightblue" stroke="midnightblue" points="388.54,-6.97 398.9,-4.71 389.4,-0.02 388.54,-6.97"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="412.5,-43.67 412.5,-62.67 472.5,-62.67 472.5,-43.67 412.5,-43.67"/>
<text text-anchor="middle" x="442.5" y="-50.67" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M344.43,-106.04C350.57,-102.8 357.01,-99.38 363,-96.17 380.46,-86.79 400,-76.08 415.22,-67.7"/>
<polygon fill="midnightblue" stroke="midnightblue" points="417.02,-70.71 424.09,-62.81 413.64,-64.58 417.02,-70.71"/>
</g>
<!-- Node6&#45;&gt;Node4 -->
<g id="edge7" class="edge">
<title>Node6&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M363.14,-40.73C376.09,-42.78 389.97,-44.99 402.4,-46.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="402.02,-50.44 412.44,-48.55 403.11,-43.53 402.02,-50.44"/>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<title>Node6&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M363.14,-25.23C371.55,-23.82 380.35,-22.36 388.9,-20.93"/>
<polygon fill="midnightblue" stroke="midnightblue" points="389.48,-24.38 398.77,-19.29 388.33,-17.48 389.48,-24.38"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

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

View File

@@ -0,0 +1 @@
caed926b5285caf4aa15dd928b5c3fd1

View File

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

After

Width:  |  Height:  |  Size: 13 KiB

View File

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

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -0,0 +1,8 @@
<map id="ciphers::HillCipher::codec" name="ciphers::HillCipher::codec">
<area shape="rect" id="node1" title="Convenience function to perform block cipher operations. The operations are identical for both encryp..." alt="" coords="5,93,135,135"/>
<area shape="rect" id="node2" href="$d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" title="Get the index of a character in the STRKEY." alt="" coords="183,5,312,47"/>
<area shape="rect" id="node4" 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="186,71,309,98"/>
<area shape="rect" id="node5" href="$d6/d26/classciphers_1_1_hill_cipher.html#a40efd842a5cc44c233641ac2df13b0c0" title="helper function to perform vector multiplication with encryption or decryption matrix" alt="" coords="183,123,312,164"/>
<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="360,158,476,185"/>
<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="378,103,458,130"/>
</map>

View File

@@ -0,0 +1 @@
35fef77fb23db5b708418a70400952e6

View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: ciphers::HillCipher::codec Pages: 1 -->
<svg width="361pt" height="145pt"
viewBox="0.00 0.00 361.00 144.67" 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 140.67)">
<title>ciphers::HillCipher::codec</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-140.67 357,-140.67 357,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Convenience function to perform block cipher operations. The operations are identical for both encryp...">
<polygon fill="#bfbfbf" stroke="black" points="0,-40.17 0,-70.17 97,-70.17 97,-40.17 0,-40.17"/>
<text text-anchor="start" x="8" y="-58.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-47.17" font-family="Helvetica,sans-Serif" font-size="10.00">::codec</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" target="_top" xlink:title="Get the index of a character in the STRKEY.">
<polygon fill="white" stroke="black" points="133,-106.17 133,-136.17 230,-136.17 230,-106.17 133,-106.17"/>
<text text-anchor="start" x="141" y="-124.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="181.5" y="-113.17" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M79.55,-70.31C97.94,-79.57 121.67,-91.52 141.5,-101.51"/>
<polygon fill="midnightblue" stroke="midnightblue" points="140.08,-104.72 150.59,-106.09 143.23,-98.47 140.08,-104.72"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="135.5,-67.67 135.5,-86.67 227.5,-86.67 227.5,-67.67 135.5,-67.67"/>
<text text-anchor="middle" x="181.5" y="-74.67" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::length</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node1&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M97.16,-63.17C106.3,-64.7 115.93,-66.32 125.28,-67.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="124.83,-71.37 135.27,-69.57 125.99,-64.46 124.83,-71.37"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a40efd842a5cc44c233641ac2df13b0c0" target="_top" xlink:title="helper function to perform vector multiplication with encryption or decryption matrix">
<polygon fill="white" stroke="black" points="133,-18.17 133,-48.17 230,-48.17 230,-18.17 133,-18.17"/>
<text text-anchor="start" x="141" y="-36.17" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="181.5" y="-25.17" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node1&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M97.16,-47.16C105.47,-45.77 114.19,-44.3 122.74,-42.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="123.37,-46.31 132.65,-41.2 122.21,-39.41 123.37,-46.31"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="266,-2.67 266,-21.67 353,-21.67 353,-2.67 266,-2.67"/>
<text text-anchor="middle" x="309.5" y="-9.67" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node6 -->
<g id="edge7" class="edge">
<title>Node1&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M69.49,-40C85.65,-28.74 109.51,-14.32 133,-8.17 173.25,2.38 220.48,0.54 255.8,-3.47"/>
<polygon fill="midnightblue" stroke="midnightblue" points="255.54,-6.97 265.9,-4.71 256.4,-0.02 255.54,-6.97"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="279.5,-43.67 279.5,-62.67 339.5,-62.67 339.5,-43.67 279.5,-43.67"/>
<text text-anchor="middle" x="309.5" y="-50.67" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node3 -->
<g id="edge2" class="edge">
<title>Node2&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M211.43,-106.04C217.57,-102.8 224.01,-99.38 230,-96.17 247.46,-86.79 267,-76.08 282.22,-67.7"/>
<polygon fill="midnightblue" stroke="midnightblue" points="284.02,-70.71 291.09,-62.81 280.64,-64.58 284.02,-70.71"/>
</g>
<!-- Node5&#45;&gt;Node3 -->
<g id="edge6" class="edge">
<title>Node5&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M230.14,-40.73C243.09,-42.78 256.97,-44.99 269.4,-46.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="269.02,-50.44 279.44,-48.55 270.11,-43.53 269.02,-50.44"/>
</g>
<!-- Node5&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node5&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M230.14,-25.23C238.55,-23.82 247.35,-22.36 255.9,-20.93"/>
<polygon fill="midnightblue" stroke="midnightblue" points="256.48,-24.38 265.77,-19.29 255.33,-17.48 256.48,-24.38"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -0,0 +1,4 @@
<map id="ciphers::HillCipher::get_char_idx" name="ciphers::HillCipher::get_char_idx">
<area shape="rect" id="node1" title="Get the index of a character in the STRKEY." alt="" coords="5,5,135,47"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="183,13,263,39"/>
</map>

View File

@@ -0,0 +1 @@
9c258c62cd44b02f697a6bf114861aeb

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
-->
<!-- Title: ciphers::HillCipher::get_char_idx Pages: 1 -->
<svg width="201pt" height="39pt"
viewBox="0.00 0.00 201.00 39.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 35)">
<title>ciphers::HillCipher::get_char_idx</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-35 197,-35 197,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Get the index of a character in the STRKEY.">
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-30.5 97,-30.5 97,-0.5 0,-0.5"/>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="48.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="133,-6 133,-25 193,-25 193,-6 133,-6"/>
<text text-anchor="middle" x="163" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M97.21,-15.5C105.72,-15.5 114.49,-15.5 122.73,-15.5"/>
<polygon fill="midnightblue" stroke="midnightblue" points="122.81,-19 132.81,-15.5 122.81,-12 122.81,-19"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,156 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers Namespace Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('d6/d4e/namespaceciphers.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">ciphers Namespace Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Algorithms for encryption and decryption.
<a href="../../d6/d4e/namespaceciphers.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d26/classciphers_1_1_hill_cipher.html">HillCipher</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation of <a href="https://en.wikipedia.org/wiki/Hill_cipher">Hill Cipher</a> algorithm. <a href="../../d6/d26/classciphers_1_1_hill_cipher.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ab9aec0ccf4b6809f652bb540be87c216"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d4e/namespaceciphers.html#ab9aec0ccf4b6809f652bb540be87c216">STRKEY</a></td></tr>
<tr class="separator:ab9aec0ccf4b6809f652bb540be87c216"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Algorithms for encryption and decryption. </p>
</div><h2 class="groupheader">Variable Documentation</h2>
<a id="ab9aec0ccf4b6809f652bb540be87c216"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9aec0ccf4b6809f652bb540be87c216">&#9670;&nbsp;</a></span>STRKEY</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* ciphers::STRKEY</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <span class="stringliteral">&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&amp;&quot;</span></div>
<div class="line"> <span class="stringliteral">&quot;*()_+`-=[]{}|;&#39;:\&quot;,./&lt;&gt;?\\\r\n \0&quot;</span></div>
</div><!-- fragment --><p>dictionary of characters that can be encrypted and decrypted </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../d6/d4e/namespaceciphers.html">ciphers</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var namespaceciphers =
[
[ "HillCipher", "d6/d26/classciphers_1_1_hill_cipher.html", "d6/d26/classciphers_1_1_hill_cipher" ]
];

View File

@@ -176,7 +176,7 @@ Documentation</h3>
<h3><a class="anchor" id="autotoc_md10"></a>
Test</h3>
<ul>
<li>Make sure to add examples and test cases in your <a class="el" href="../../d8/dee/avltree_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a> function.</li>
<li>Make sure to add examples and test cases in your <a class="el" href="../../d7/db9/hill__cipher_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a> function.</li>
<li>If you find any algorithm or document without tests, please feel free to create a pull request or issue describing suggested changes.</li>
</ul>
<h2><a class="anchor" id="autotoc_md11"></a>