Documentation for 05bb23ca27

This commit is contained in:
github-actions
2020-07-10 16:50:36 +00:00
parent 2936d28962
commit fc46f441ae
172 changed files with 6067 additions and 3376 deletions

228
da/d77/spirograph_8cpp.html Normal file
View File

@@ -0,0 +1,228 @@
<!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++: graphics/spirograph.cpp File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++
&#160;<span id="projectnumber">1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('da/d77/spirograph_8cpp.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">spirograph.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Implementation of <a href="https://en.wikipedia.org/wiki/Spirograph">Spirograph</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;array&gt;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;cstdlib&gt;</code><br />
<code>#include &lt;ctime&gt;</code><br />
<code>#include &lt;fstream&gt;</code><br />
<code>#include &lt;iomanip&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;sstream&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for spirograph.cpp:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d2/d4b/spirograph_8cpp__incl.svg" width="100%" height="384"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:da/dd3/namespacespirograph"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd3/namespacespirograph.html">spirograph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a525335710b53cb064ca56b936120431e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d77/spirograph_8cpp.html#a525335710b53cb064ca56b936120431e">_USE_MATH_DEFINES</a></td></tr>
<tr class="separator:a525335710b53cb064ca56b936120431e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aeca22dbe4563358960e907a40cd3e1ac"><td class="memTemplParams" colspan="2">template&lt;std::size_t N&gt; </td></tr>
<tr class="memitem:aeca22dbe4563358960e907a40cd3e1ac"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac">spirograph::spirograph</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; double, double &gt;, N &gt; *points, double l, double k, double rot)</td></tr>
<tr class="separator:aeca22dbe4563358960e907a40cd3e1ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99">spirograph::test</a> ()</td></tr>
<tr class="memdesc:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test function to save resulting points to a CSV file. <a href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99">More...</a><br /></td></tr>
<tr class="separator:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d77/spirograph_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
<tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of <a href="https://en.wikipedia.org/wiki/Spirograph">Spirograph</a> </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/kvedala">Krishna Vedala</a></dd></dl>
<p>Implementation of the program is based on the geometry shown in the figure below:</p>
<p><a href="https://commons.wikimedia.org/wiki/File:Resonance_Cascade.svg"><img src="https://upload.wikimedia.org/wikipedia/commons/3/39/Resonance_Cascade.svg" alt="Spirograph geometry from Wikipedia" style="pointer-events: none; width: 250px" class="inline"/></a> </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a525335710b53cb064ca56b936120431e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a525335710b53cb064ca56b936120431e">&#9670;&nbsp;</a></span>_USE_MATH_DEFINES</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _USE_MATH_DEFINES</td>
</tr>
</table>
</div><div class="memdoc">
<p>required for MSVC compiler </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>argv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main function </p>
<div class="fragment"><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99">spirograph::test</a>();</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor">#ifdef USE_GLUT</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; glutInit(&amp;argc, argv);</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; glutCreateWindow(<span class="stringliteral">&quot;Spirograph&quot;</span>);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; glutInitWindowSize(400, 400);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="comment">// glutIdleFunc(glutPostRedisplay);</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; glutTimerFunc(spirograph::animation_speed, spirograph::timer_cb, 0);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; glutKeyboardFunc(spirograph::keyboard_cb);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; glutDisplayFunc(<a class="code" href="../../d7/db9/hill__cipher_8cpp.html#a04391124480d2a49f2dec900237b0712">spirograph::test2</a>);</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; glutMainLoop();</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; </div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../da/d77/spirograph_8cpp_a3c04138a5bfe5d72780bb7e82a18e627_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="ahill__cipher_8cpp_html_a04391124480d2a49f2dec900237b0712"><div class="ttname"><a href="../../d7/db9/hill__cipher_8cpp.html#a04391124480d2a49f2dec900237b0712">test2</a></div><div class="ttdeci">void test2(const std::string &amp;text)</div><div class="ttdoc">Self test 2 - using 8x8 randomly generated key.</div><div class="ttdef"><b>Definition:</b> hill_cipher.cpp:505</div></div>
<div class="ttc" id="anamespacespirograph_html_a8e83a64e8443fff1e5ffdc1c299c1e99"><div class="ttname"><a href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99">spirograph::test</a></div><div class="ttdeci">void test()</div><div class="ttdoc">Test function to save resulting points to a CSV file.</div><div class="ttdef"><b>Definition:</b> spirograph.cpp:93</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_e79632891301b850df87e9c0030293fa.html">graphics</a></li><li class="navelem"><a class="el" href="../../da/d77/spirograph_8cpp.html">spirograph.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,7 @@
var spirograph_8cpp =
[
[ "_USE_MATH_DEFINES", "da/d77/spirograph_8cpp.html#a525335710b53cb064ca56b936120431e", null ],
[ "main", "da/d77/spirograph_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627", null ],
[ "spirograph", "da/d77/spirograph_8cpp.html#aeca22dbe4563358960e907a40cd3e1ac", null ],
[ "test", "da/d77/spirograph_8cpp.html#a8e83a64e8443fff1e5ffdc1c299c1e99", null ]
];

View File

@@ -0,0 +1,36 @@
<map id="main" name="main">
<area shape="rect" id="node1" title=" " alt="" coords="5,374,56,400"/>
<area shape="rect" id="node2" href="$da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99" title="Test function to save resulting points to a CSV file." alt="" coords="104,156,216,183"/>
<area shape="rect" id="node10" href="$d7/db9/hill__cipher_8cpp.html#a04391124480d2a49f2dec900237b0712" title="Self test 2 &#45; using 8x8 randomly generated key." alt="" coords="135,559,185,586"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="271,234,409,260"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/is_open.html#" title=" " alt="" coords="264,30,416,56"/>
<area shape="rect" id="node5" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/setw.html#" title=" " alt="" coords="302,80,378,107"/>
<area shape="rect" id="node6" href="$da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac" title=" " alt="" coords="265,131,415,158"/>
<area shape="rect" id="node9" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_stringstream/str.html#" title=" " alt="" coords="269,182,411,208"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/cos.html#" title=" " alt="" coords="517,79,586,106"/>
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/sin.html#" title=" " alt="" coords="519,130,584,156"/>
<area shape="rect" id="node11" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/basic_string/compare.html#" title=" " alt="" coords="271,908,409,935"/>
<area shape="rect" id="node12" href="$d6/d26/classciphers_1_1_hill_cipher.html#a427acfac1dbff3f48a2b071d449d965b" title="Decrypt a given text using a given key." alt="" coords="275,610,405,652"/>
<area shape="rect" id="node16" 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="705,624,827,651"/>
<area shape="rect" id="node18" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/container/vector/size.html#" title=" " alt="" coords="1064,144,1180,171"/>
<area shape="rect" id="node19" href="$d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" title="Encrypt a given text using a given key." alt="" coords="275,676,405,717"/>
<area shape="rect" id="node20" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/endl.html#" title=" " alt="" coords="919,275,991,302"/>
<area shape="rect" id="node21" href="$d6/d26/classciphers_1_1_hill_cipher.html#a14bfcd14af6cd853130cbacd32e35c13" title="Generate encryption and decryption key pair." alt="" coords="275,289,405,330"/>
<area shape="rect" id="node13" 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="487,676,616,717"/>
<area shape="rect" id="node14" href="$d6/d26/classciphers_1_1_hill_cipher.html#ae77cad522fa44b8c985779a7188d2f41" title="Get the index of a character in the STRKEY." alt="" coords="701,676,831,717"/>
<area shape="rect" id="node17" href="$d6/d26/classciphers_1_1_hill_cipher.html#a40efd842a5cc44c233641ac2df13b0c0" title="helper function to perform vector multiplication with encryption or decryption matrix" alt="" coords="701,741,831,782"/>
<area shape="rect" id="node15" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/string/byte/strlen.html#" title=" " alt="" coords="915,628,995,655"/>
<area shape="rect" id="node22" href="$d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" title=" " alt="" coords="713,35,819,62"/>
<area shape="rect" id="node24" href="$d6/d26/classciphers_1_1_hill_cipher.html#abb2c4dc2b8a59d3dfe0fa22c2adc086b" title="Generate decryption matrix from an encryption matrix key." alt="" coords="464,232,639,273"/>
<area shape="rect" id="node28" 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="464,465,639,506"/>
<area shape="rect" id="node34" 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="497,298,605,324"/>
<area shape="rect" id="node23" href="$d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" title=" " alt="" coords="893,35,1016,62"/>
<area shape="rect" id="node25" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/utility/program/exit.html#" title=" " alt="" coords="731,254,801,280"/>
<area shape="rect" id="node26" href="$d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b" title=" " alt="" coords="701,137,831,178"/>
<area shape="rect" id="node27" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/round.html#" title=" " alt="" coords="726,203,806,230"/>
<area shape="rect" id="node29" href="$d6/d26/classciphers_1_1_hill_cipher.html#a7760f3665651a0a37937c79c62f219c0" title="Compute GCD of two integers using Euler&#39;s algorithm." alt="" coords="687,523,845,550"/>
<area shape="rect" id="node31" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/isfinite.html#" title=" " alt="" coords="723,472,809,499"/>
<area shape="rect" id="node32" href="$d6/d26/classciphers_1_1_hill_cipher.html#a629be41c1ab78850963e4ce14e1d11d9" title="Function to generate a random integer in a given interval." alt="" coords="701,406,831,448"/>
<area shape="rect" id="node30" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/swap.html#" title=" " alt="" coords="915,523,994,550"/>
<area shape="rect" id="node33" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="918,414,991,440"/>
</map>

View File

@@ -0,0 +1 @@
7a8cc01cc55e221f91a1733c00d1edfa

View File

@@ -0,0 +1,699 @@
<?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: main Pages: 1 -->
<!--zoomable 705 -->
<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 = 889;
var viewHeight = 705;
var sectionId = 'dynsection-1';
</script>
<script xlink:href="../../svgpan.js"/>
<svg id="graph" class="graph">
<g id="viewport">
<title>main</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-701.16 885,-701.16 885,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,-401.5 0,-420.5 38,-420.5 38,-401.5 0,-401.5"/>
<text text-anchor="middle" x="19" y="-408.5" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99" target="_top" xlink:title="Test function to save resulting points to a CSV file.">
<polygon fill="white" stroke="black" points="74,-564.5 74,-583.5 158,-583.5 158,-564.5 74,-564.5"/>
<text text-anchor="middle" x="116" y="-571.5" font-family="Helvetica,sans-Serif" font-size="10.00">spirograph::test</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="M25.66,-420.71C41.07,-447.15 83.97,-520.75 104.19,-555.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="101.19,-557.26 109.25,-564.14 107.24,-553.73 101.19,-557.26"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="../../d7/db9/hill__cipher_8cpp.html#a04391124480d2a49f2dec900237b0712" target="_top" xlink:title="Self test 2 &#45; using 8x8 randomly generated key.">
<polygon fill="white" stroke="black" points="97,-262.5 97,-281.5 135,-281.5 135,-262.5 97,-262.5"/>
<text text-anchor="middle" x="116" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node1&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M26.53,-401.45C42.19,-378.53 82.1,-320.14 102.53,-290.25"/>
<polygon fill="midnightblue" stroke="midnightblue" points="105.67,-291.85 108.42,-281.62 99.89,-287.9 105.67,-291.85"/>
</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/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="199,-506.5 199,-525.5 303,-525.5 303,-506.5 199,-506.5"/>
<text text-anchor="middle" x="251" y="-513.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</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="M134.77,-564.5C150.21,-556.42 173.27,-544.78 194,-536 199.6,-533.63 205.59,-531.29 211.5,-529.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="213.06,-532.25 221.27,-525.55 210.67,-525.66 213.06,-532.25"/>
</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/io/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="194,-659.5 194,-678.5 308,-678.5 308,-659.5 194,-659.5"/>
<text text-anchor="middle" x="251" y="-666.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node2&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M124.25,-583.57C136.8,-599.5 164.11,-631.55 194,-650 197.34,-652.06 200.94,-653.94 204.64,-655.63"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203.38,-658.89 213.96,-659.46 206.04,-652.42 203.38,-658.89"/>
</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/io/manip/setw.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="222.5,-621.5 222.5,-640.5 279.5,-640.5 279.5,-621.5 222.5,-621.5"/>
<text text-anchor="middle" x="251" y="-628.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::setw</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="M134.74,-583.59C150.15,-591.71 173.2,-603.38 194,-612 199.98,-614.48 206.4,-616.88 212.69,-619.11"/>
<polygon fill="midnightblue" stroke="midnightblue" points="211.79,-622.5 222.39,-622.43 214.07,-615.88 211.79,-622.5"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="194.5,-583.5 194.5,-602.5 307.5,-602.5 307.5,-583.5 194.5,-583.5"/>
<text text-anchor="middle" x="251" y="-590.5" font-family="Helvetica,sans-Serif" font-size="10.00">spirograph::spirograph</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="M158.35,-579.91C166.66,-581.09 175.59,-582.37 184.49,-583.64"/>
<polygon fill="midnightblue" stroke="midnightblue" points="184.1,-587.12 194.5,-585.07 185.09,-580.19 184.1,-587.12"/>
</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/io/basic_stringstream/str.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="197.5,-545.5 197.5,-564.5 304.5,-564.5 304.5,-545.5 197.5,-545.5"/>
<text text-anchor="middle" x="251" y="-552.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::stringstream::str</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node2&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M158.35,-568.09C167.52,-566.78 177.44,-565.37 187.25,-563.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="187.99,-567.39 197.39,-562.52 187,-560.47 187.99,-567.39"/>
</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/numeric/math/cos.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="383.5,-622.5 383.5,-641.5 435.5,-641.5 435.5,-622.5 383.5,-622.5"/>
<text text-anchor="middle" x="409.5" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::cos</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<title>Node6&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M290.28,-602.54C315.62,-608.85 348.6,-617.07 373.29,-623.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="372.76,-626.7 383.31,-625.72 374.46,-619.91 372.76,-626.7"/>
</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/sin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="385,-584.5 385,-603.5 434,-603.5 434,-584.5 385,-584.5"/>
<text text-anchor="middle" x="409.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sin</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<title>Node6&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M307.62,-593.36C330,-593.5 355.09,-593.66 374.65,-593.78"/>
<polygon fill="midnightblue" stroke="midnightblue" points="374.88,-597.29 384.9,-593.85 374.92,-590.29 374.88,-597.29"/>
</g>
<!-- Node10&#45;&gt;Node3 -->
<g id="edge10" class="edge">
<title>Node10&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M117.63,-281.83C120.32,-315.75 133.66,-429.28 194,-493 197.18,-496.35 200.91,-499.23 204.92,-501.7"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203.54,-504.93 214.02,-506.48 206.79,-498.73 203.54,-504.93"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="199,-0.5 199,-19.5 303,-19.5 303,-0.5 199,-0.5"/>
<text text-anchor="middle" x="251" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::compare</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node11 -->
<g id="edge11" class="edge">
<title>Node10&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M117.37,-262.45C119.22,-227.35 130.2,-103.95 194,-34 197.47,-30.19 201.66,-26.96 206.15,-24.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="207.83,-27.3 215.07,-19.57 204.59,-21.1 207.83,-27.3"/>
</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#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<polygon fill="white" stroke="black" points="202.5,-213 202.5,-243 299.5,-243 299.5,-213 202.5,-213"/>
<text text-anchor="start" x="210.5" y="-231" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="251" y="-220" font-family="Helvetica,sans-Serif" font-size="10.00">::decrypt_text</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node12 -->
<g id="edge12" class="edge">
<title>Node10&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M135.21,-265.97C150.64,-260.87 173.58,-253.28 194.91,-246.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="196.17,-249.5 204.56,-243.03 193.97,-242.85 196.17,-249.5"/>
</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/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="524.5,-213.5 524.5,-232.5 616.5,-232.5 616.5,-213.5 524.5,-213.5"/>
<text text-anchor="middle" x="570.5" y="-220.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::length</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node16 -->
<g id="edge47" class="edge">
<title>Node10&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M135.18,-270.13C169.13,-266.64 244.52,-258.84 308,-252 379.1,-244.33 461.04,-235.2 513.97,-229.26"/>
<polygon fill="midnightblue" stroke="midnightblue" points="514.61,-232.71 524.16,-228.11 513.83,-225.75 514.61,-232.71"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="794,-573.5 794,-592.5 881,-592.5 881,-573.5 794,-573.5"/>
<text text-anchor="middle" x="837.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node18 -->
<g id="edge46" class="edge">
<title>Node10&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M121.19,-262.19C130.99,-240.23 157.41,-186.47 194,-154 273.54,-83.42 302.16,-48 408.5,-48 408.5,-48 408.5,-48 571.5,-48 655.6,-48 698.98,-20.08 758,-80 827.08,-150.13 835.38,-479.07 836.37,-563.31"/>
<polygon fill="midnightblue" stroke="midnightblue" points="832.87,-563.36 836.46,-573.33 839.87,-563.29 832.87,-563.36"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<polygon fill="white" stroke="black" points="202.5,-164 202.5,-194 299.5,-194 299.5,-164 202.5,-164"/>
<text text-anchor="start" x="210.5" y="-182" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="251" y="-171" font-family="Helvetica,sans-Serif" font-size="10.00">::encrypt_text</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node19 -->
<g id="edge21" class="edge">
<title>Node10&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M125.68,-262.44C139.16,-248.03 166.46,-220.57 194,-203 196.3,-201.53 198.71,-200.11 201.18,-198.75"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203,-201.75 210.31,-194.08 199.81,-195.52 203,-201.75"/>
</g>
<!-- Node20 -->
<g id="node20" class="node">
<title>Node20</title>
<g id="a_node20"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="685,-475.5 685,-494.5 739,-494.5 739,-475.5 685,-475.5"/>
<text text-anchor="middle" x="712" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node20 -->
<g id="edge23" class="edge">
<title>Node10&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M135.13,-279.45C173.46,-295.13 265.66,-332.43 344,-361 464.5,-404.95 609.13,-452.23 675.07,-473.49"/>
<polygon fill="midnightblue" stroke="midnightblue" points="674,-476.82 684.59,-476.56 676.15,-470.16 674,-476.82"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a14bfcd14af6cd853130cbacd32e35c13" target="_top" xlink:title="Generate encryption and decryption key pair.">
<polygon fill="white" stroke="black" points="202.5,-454 202.5,-484 299.5,-484 299.5,-454 202.5,-454"/>
<text text-anchor="start" x="210.5" y="-472" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="251" y="-461" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_keys</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node21 -->
<g id="edge24" class="edge">
<title>Node10&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M119.11,-281.51C125.67,-309.08 148.03,-390.2 194,-439 197.28,-442.48 201.05,-445.64 205.06,-448.49"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203.22,-451.47 213.53,-453.91 206.99,-445.57 203.22,-451.47"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><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="361,-164 361,-194 458,-194 458,-164 361,-164"/>
<text text-anchor="start" x="369" y="-182" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="409.5" y="-171" font-family="Helvetica,sans-Serif" font-size="10.00">::codec</text>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node13 -->
<g id="edge13" class="edge">
<title>Node12&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M299.81,-213.03C316.04,-207.95 334.34,-202.22 351.23,-196.93"/>
<polygon fill="midnightblue" stroke="midnightblue" points="352.49,-200.2 360.99,-193.88 350.4,-193.52 352.49,-200.2"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><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="522,-164 522,-194 619,-194 619,-164 522,-164"/>
<text text-anchor="start" x="530" y="-182" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="570.5" y="-171" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node14 -->
<g id="edge14" class="edge">
<title>Node13&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M458.21,-179C475.03,-179 494.12,-179 511.69,-179"/>
<polygon fill="midnightblue" stroke="midnightblue" points="511.83,-182.5 521.83,-179 511.83,-175.5 511.83,-182.5"/>
</g>
<!-- Node13&#45;&gt;Node16 -->
<g id="edge16" class="edge">
<title>Node13&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M458.21,-192.2C479.43,-198.07 504.27,-204.95 525.1,-210.71"/>
<polygon fill="midnightblue" stroke="midnightblue" points="524.39,-214.15 534.97,-213.44 526.26,-207.4 524.39,-214.15"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><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="522,-115 522,-145 619,-145 619,-115 522,-115"/>
<text text-anchor="start" x="530" y="-133" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="570.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node17 -->
<g id="edge17" class="edge">
<title>Node13&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M458.21,-164.3C475.19,-159.07 494.48,-153.12 512.18,-147.66"/>
<polygon fill="midnightblue" stroke="midnightblue" points="513.3,-150.98 521.83,-144.69 511.24,-144.29 513.3,-150.98"/>
</g>
<!-- Node13&#45;&gt;Node18 -->
<g id="edge20" class="edge">
<title>Node13&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M424.74,-163.77C442.78,-145.7 475.8,-116.56 511,-105 616.52,-70.34 683.98,-60.19 758,-143 814.81,-206.56 831.93,-485.14 835.64,-562.82"/>
<polygon fill="midnightblue" stroke="midnightblue" points="832.16,-563.31 836.11,-573.14 839.15,-562.99 832.16,-563.31"/>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<title>Node15</title>
<g id="a_node15"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="682,-210.5 682,-229.5 742,-229.5 742,-210.5 682,-210.5"/>
<text text-anchor="middle" x="712" y="-217.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node15 -->
<g id="edge15" class="edge">
<title>Node14&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M619.12,-193C636.37,-198.07 655.65,-203.73 672.07,-208.56"/>
<polygon fill="midnightblue" stroke="midnightblue" points="671.3,-211.98 681.88,-211.44 673.27,-205.26 671.3,-211.98"/>
</g>
<!-- Node17&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<title>Node17&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M612.53,-145.02C618.53,-147.73 624.53,-150.75 630,-154 653.9,-168.21 678.22,-189.07 693.89,-203.51"/>
<polygon fill="midnightblue" stroke="midnightblue" points="691.55,-206.13 701.24,-210.42 696.34,-201.02 691.55,-206.13"/>
</g>
<!-- Node17&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node17&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M619.02,-135.26C661.78,-142.58 723.09,-159.96 758,-201 805.68,-257.06 828.99,-493.39 834.94,-563.39"/>
<polygon fill="midnightblue" stroke="midnightblue" points="831.46,-563.79 835.77,-573.47 838.43,-563.22 831.46,-563.79"/>
</g>
<!-- Node19&#45;&gt;Node13 -->
<g id="edge22" class="edge">
<title>Node19&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M299.81,-179C315.88,-179 334,-179 350.76,-179"/>
<polygon fill="midnightblue" stroke="midnightblue" points="350.99,-182.5 360.99,-179 350.99,-175.5 350.99,-182.5"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="530.5,-655.5 530.5,-674.5 610.5,-674.5 610.5,-655.5 530.5,-655.5"/>
<text text-anchor="middle" x="570.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node22 -->
<g id="edge25" class="edge">
<title>Node21&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M286.92,-484.01C294.18,-487.79 301.57,-492.17 308,-497 326.86,-511.17 323.98,-523.52 344,-536 395.55,-568.13 427.78,-536.78 475,-575 500.97,-596.02 486.11,-618.71 511,-641 515.4,-644.94 520.54,-648.29 525.9,-651.11"/>
<polygon fill="midnightblue" stroke="midnightblue" points="524.52,-654.33 535.06,-655.39 527.48,-647.99 524.52,-654.33"/>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<title>Node24</title>
<g id="a_node24"><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="344,-497 344,-527 475,-527 475,-497 344,-497"/>
<text text-anchor="start" x="352" y="-515" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="409.5" y="-504" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node24 -->
<g id="edge29" class="edge">
<title>Node21&#45;&gt;Node24</title>
<path fill="none" stroke="midnightblue" d="M299.81,-482.14C313.68,-485.95 329.07,-490.18 343.8,-494.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="343.3,-497.71 353.87,-496.99 345.15,-490.96 343.3,-497.71"/>
</g>
<!-- Node28 -->
<g id="node28" class="node">
<title>Node28</title>
<g id="a_node28"><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="344,-322 344,-352 475,-352 475,-322 344,-322"/>
<text text-anchor="start" x="352" y="-340" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="409.5" y="-329" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_encryption_key</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node28 -->
<g id="edge38" class="edge">
<title>Node21&#45;&gt;Node28</title>
<path fill="none" stroke="midnightblue" d="M269.95,-453.86C297.52,-430.61 350.41,-386 382.27,-359.12"/>
<polygon fill="midnightblue" stroke="midnightblue" points="384.89,-361.49 390.27,-352.37 380.37,-356.14 384.89,-361.49"/>
</g>
<!-- Node34 -->
<g id="node34" class="node">
<title>Node34</title>
<g id="a_node34"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="369,-458.5 369,-477.5 450,-477.5 450,-458.5 369,-458.5"/>
<text text-anchor="middle" x="409.5" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::make_pair</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node34 -->
<g id="edge45" class="edge">
<title>Node21&#45;&gt;Node34</title>
<path fill="none" stroke="midnightblue" d="M299.81,-468.69C318.46,-468.58 339.86,-468.44 358.7,-468.32"/>
<polygon fill="midnightblue" stroke="midnightblue" points="358.9,-471.82 368.88,-468.25 358.85,-464.82 358.9,-471.82"/>
</g>
<!-- Node22&#45;&gt;Node18 -->
<g id="edge28" class="edge">
<title>Node22&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M593.8,-674.57C630.21,-688.64 703.77,-710.53 758,-684 792.91,-666.92 816.77,-625.99 828.38,-601.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="831.62,-603.13 832.6,-592.58 825.26,-600.22 831.62,-603.13"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="666,-655.5 666,-674.5 758,-674.5 758,-655.5 666,-655.5"/>
<text text-anchor="middle" x="712" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node22&#45;&gt;Node23 -->
<g id="edge26" class="edge">
<title>Node22&#45;&gt;Node23</title>
<path fill="none" stroke="midnightblue" d="M610.73,-665C624.68,-665 640.65,-665 655.69,-665"/>
<polygon fill="midnightblue" stroke="midnightblue" points="655.91,-668.5 665.91,-665 655.91,-661.5 655.91,-668.5"/>
</g>
<!-- Node23&#45;&gt;Node18 -->
<g id="edge27" class="edge">
<title>Node23&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M732.62,-655.33C740.64,-651.17 749.91,-646.1 758,-641 778.79,-627.87 801.24,-610.99 816.78,-598.83"/>
<polygon fill="midnightblue" stroke="midnightblue" points="818.97,-601.56 824.65,-592.61 814.63,-596.06 818.97,-601.56"/>
</g>
<!-- Node24&#45;&gt;Node15 -->
<g id="edge37" class="edge">
<title>Node24&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M451.16,-496.96C507.75,-475.25 606.01,-434.53 630,-405 666.46,-360.13 640.23,-331.75 666,-280 673.68,-264.58 685.44,-249.08 695.01,-237.69"/>
<polygon fill="midnightblue" stroke="midnightblue" points="697.89,-239.71 701.8,-229.86 692.6,-235.12 697.89,-239.71"/>
</g>
<!-- Node24&#45;&gt;Node18 -->
<g id="edge36" class="edge">
<title>Node24&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M468.47,-527.15C470.77,-528.62 472.96,-530.23 475,-532 503.23,-556.49 479.42,-588.01 511,-608 604.46,-667.14 744.56,-621.6 805.9,-596.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="807.51,-599.72 815.39,-592.63 804.81,-593.26 807.51,-599.72"/>
</g>
<!-- Node24&#45;&gt;Node22 -->
<g id="edge30" class="edge">
<title>Node24&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M455.25,-527.12C462.54,-531.09 469.49,-535.99 475,-542 506.64,-576.51 478.57,-607.23 511,-641 514.66,-644.81 519.01,-648.04 523.67,-650.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="522.38,-654.04 532.89,-655.42 525.54,-647.79 522.38,-654.04"/>
</g>
<!-- Node25 -->
<g id="node25" class="node">
<title>Node25</title>
<g id="a_node25"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="544.5,-491.5 544.5,-510.5 596.5,-510.5 596.5,-491.5 544.5,-491.5"/>
<text text-anchor="middle" x="570.5" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node24&#45;&gt;Node25 -->
<g id="edge31" class="edge">
<title>Node24&#45;&gt;Node25</title>
<path fill="none" stroke="midnightblue" d="M475.17,-507.53C495.25,-506.14 516.64,-504.66 533.96,-503.46"/>
<polygon fill="midnightblue" stroke="midnightblue" points="534.44,-506.93 544.17,-502.75 533.96,-499.95 534.44,-506.93"/>
</g>
<!-- Node26 -->
<g id="node26" class="node">
<title>Node26</title>
<g id="a_node26"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="522,-568 522,-598 619,-598 619,-568 522,-568"/>
<text text-anchor="start" x="530" y="-586" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="570.5" y="-575" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
</a>
</g>
</g>
<!-- Node24&#45;&gt;Node26 -->
<g id="edge32" class="edge">
<title>Node24&#45;&gt;Node26</title>
<path fill="none" stroke="midnightblue" d="M442.99,-527.13C462.63,-536.2 488.19,-547.91 511,-558 515.38,-559.94 519.95,-561.93 524.53,-563.92"/>
<polygon fill="midnightblue" stroke="midnightblue" points="523.29,-567.2 533.86,-567.94 526.06,-560.77 523.29,-567.2"/>
</g>
<!-- Node27 -->
<g id="node27" class="node">
<title>Node27</title>
<g id="a_node27"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="540.5,-529.5 540.5,-548.5 600.5,-548.5 600.5,-529.5 540.5,-529.5"/>
<text text-anchor="middle" x="570.5" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node24&#45;&gt;Node27 -->
<g id="edge35" class="edge">
<title>Node24&#45;&gt;Node27</title>
<path fill="none" stroke="midnightblue" d="M475.17,-522.98C493.83,-526.15 513.61,-529.51 530.21,-532.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="529.66,-535.78 540.11,-534.01 530.83,-528.88 529.66,-535.78"/>
</g>
<!-- Node26&#45;&gt;Node18 -->
<g id="edge34" class="edge">
<title>Node26&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M619.18,-583C665.41,-583 735.41,-583 783.39,-583"/>
<polygon fill="midnightblue" stroke="midnightblue" points="783.58,-586.5 793.58,-583 783.58,-579.5 783.58,-586.5"/>
</g>
<!-- Node26&#45;&gt;Node20 -->
<g id="edge33" class="edge">
<title>Node26&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M611.74,-567.9C618.03,-564.95 624.32,-561.63 630,-558 654.99,-542.03 679.74,-518.26 695.17,-502.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="698.03,-504.3 702.35,-494.62 692.94,-499.49 698.03,-504.3"/>
</g>
<!-- Node28&#45;&gt;Node15 -->
<g id="edge44" class="edge">
<title>Node28&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M433.69,-321.85C453.58,-309.36 483.33,-291.82 511,-280 540.08,-267.58 622.43,-244.22 671.92,-230.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="672.94,-233.95 681.66,-227.93 671.09,-227.2 672.94,-233.95"/>
</g>
<!-- Node29 -->
<g id="node29" class="node">
<title>Node29</title>
<g id="a_node29"><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="511,-289.5 511,-308.5 630,-308.5 630,-289.5 511,-289.5"/>
<text text-anchor="middle" x="570.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</text>
</a>
</g>
</g>
<!-- Node28&#45;&gt;Node29 -->
<g id="edge39" class="edge">
<title>Node28&#45;&gt;Node29</title>
<path fill="none" stroke="midnightblue" d="M473.34,-321.98C488.72,-318.31 504.96,-314.42 519.63,-310.92"/>
<polygon fill="midnightblue" stroke="midnightblue" points="520.6,-314.29 529.51,-308.56 518.97,-307.48 520.6,-314.29"/>
</g>
<!-- Node31 -->
<g id="node31" class="node">
<title>Node31</title>
<g id="a_node31"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="538,-327.5 538,-346.5 603,-346.5 603,-327.5 538,-327.5"/>
<text text-anchor="middle" x="570.5" y="-334.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::isfinite</text>
</a>
</g>
</g>
<!-- Node28&#45;&gt;Node31 -->
<g id="edge41" class="edge">
<title>Node28&#45;&gt;Node31</title>
<path fill="none" stroke="midnightblue" d="M475.17,-337C492.94,-337 511.74,-337 527.84,-337"/>
<polygon fill="midnightblue" stroke="midnightblue" points="527.99,-340.5 537.99,-337 527.99,-333.5 527.99,-340.5"/>
</g>
<!-- Node32 -->
<g id="node32" class="node">
<title>Node32</title>
<g id="a_node32"><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="522,-366 522,-396 619,-396 619,-366 522,-366"/>
<text text-anchor="start" x="530" y="-384" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="570.5" y="-373" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
</a>
</g>
</g>
<!-- Node28&#45;&gt;Node32 -->
<g id="edge42" class="edge">
<title>Node28&#45;&gt;Node32</title>
<path fill="none" stroke="midnightblue" d="M464.77,-352.02C479.98,-356.23 496.55,-360.81 511.94,-365.07"/>
<polygon fill="midnightblue" stroke="midnightblue" points="511.28,-368.52 521.85,-367.81 513.15,-361.77 511.28,-368.52"/>
</g>
<!-- Node30 -->
<g id="node30" class="node">
<title>Node30</title>
<g id="a_node30"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="682.5,-289.5 682.5,-308.5 741.5,-308.5 741.5,-289.5 682.5,-289.5"/>
<text text-anchor="middle" x="712" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node29&#45;&gt;Node30 -->
<g id="edge40" class="edge">
<title>Node29&#45;&gt;Node30</title>
<path fill="none" stroke="midnightblue" d="M630.26,-299C644.47,-299 659.32,-299 672.34,-299"/>
<polygon fill="midnightblue" stroke="midnightblue" points="672.35,-302.5 682.35,-299 672.35,-295.5 672.35,-302.5"/>
</g>
<!-- Node33 -->
<g id="node33" class="node">
<title>Node33</title>
<g id="a_node33"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="684.5,-371.5 684.5,-390.5 739.5,-390.5 739.5,-371.5 684.5,-371.5"/>
<text text-anchor="middle" x="712" y="-378.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node32&#45;&gt;Node33 -->
<g id="edge43" class="edge">
<title>Node32&#45;&gt;Node33</title>
<path fill="none" stroke="midnightblue" d="M619.12,-381C637.16,-381 657.4,-381 674.29,-381"/>
<polygon fill="midnightblue" stroke="midnightblue" points="674.32,-384.5 684.32,-381 674.32,-377.5 674.32,-384.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="spirograph_8cpp_a3c04138a5bfe5d72780bb7e82a18e627_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: 38 KiB

View File

@@ -0,0 +1,611 @@
<?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: main Pages: 1 -->
<svg width="889pt" height="705pt"
viewBox="0.00 0.00 889.00 705.16" 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 701.16)">
<title>main</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-701.16 885,-701.16 885,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,-401.5 0,-420.5 38,-420.5 38,-401.5 0,-401.5"/>
<text text-anchor="middle" x="19" y="-408.5" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99" target="_top" xlink:title="Test function to save resulting points to a CSV file.">
<polygon fill="white" stroke="black" points="74,-564.5 74,-583.5 158,-583.5 158,-564.5 74,-564.5"/>
<text text-anchor="middle" x="116" y="-571.5" font-family="Helvetica,sans-Serif" font-size="10.00">spirograph::test</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="M25.66,-420.71C41.07,-447.15 83.97,-520.75 104.19,-555.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="101.19,-557.26 109.25,-564.14 107.24,-553.73 101.19,-557.26"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="../../d7/db9/hill__cipher_8cpp.html#a04391124480d2a49f2dec900237b0712" target="_top" xlink:title="Self test 2 &#45; using 8x8 randomly generated key.">
<polygon fill="white" stroke="black" points="97,-262.5 97,-281.5 135,-281.5 135,-262.5 97,-262.5"/>
<text text-anchor="middle" x="116" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node1&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M26.53,-401.45C42.19,-378.53 82.1,-320.14 102.53,-290.25"/>
<polygon fill="midnightblue" stroke="midnightblue" points="105.67,-291.85 108.42,-281.62 99.89,-287.9 105.67,-291.85"/>
</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/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="199,-506.5 199,-525.5 303,-525.5 303,-506.5 199,-506.5"/>
<text text-anchor="middle" x="251" y="-513.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</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="M134.77,-564.5C150.21,-556.42 173.27,-544.78 194,-536 199.6,-533.63 205.59,-531.29 211.5,-529.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="213.06,-532.25 221.27,-525.55 210.67,-525.66 213.06,-532.25"/>
</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/io/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="194,-659.5 194,-678.5 308,-678.5 308,-659.5 194,-659.5"/>
<text text-anchor="middle" x="251" y="-666.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node2&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M124.25,-583.57C136.8,-599.5 164.11,-631.55 194,-650 197.34,-652.06 200.94,-653.94 204.64,-655.63"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203.38,-658.89 213.96,-659.46 206.04,-652.42 203.38,-658.89"/>
</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/io/manip/setw.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="222.5,-621.5 222.5,-640.5 279.5,-640.5 279.5,-621.5 222.5,-621.5"/>
<text text-anchor="middle" x="251" y="-628.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::setw</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="M134.74,-583.59C150.15,-591.71 173.2,-603.38 194,-612 199.98,-614.48 206.4,-616.88 212.69,-619.11"/>
<polygon fill="midnightblue" stroke="midnightblue" points="211.79,-622.5 222.39,-622.43 214.07,-615.88 211.79,-622.5"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="194.5,-583.5 194.5,-602.5 307.5,-602.5 307.5,-583.5 194.5,-583.5"/>
<text text-anchor="middle" x="251" y="-590.5" font-family="Helvetica,sans-Serif" font-size="10.00">spirograph::spirograph</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="M158.35,-579.91C166.66,-581.09 175.59,-582.37 184.49,-583.64"/>
<polygon fill="midnightblue" stroke="midnightblue" points="184.1,-587.12 194.5,-585.07 185.09,-580.19 184.1,-587.12"/>
</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/io/basic_stringstream/str.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="197.5,-545.5 197.5,-564.5 304.5,-564.5 304.5,-545.5 197.5,-545.5"/>
<text text-anchor="middle" x="251" y="-552.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::stringstream::str</text>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node2&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M158.35,-568.09C167.52,-566.78 177.44,-565.37 187.25,-563.96"/>
<polygon fill="midnightblue" stroke="midnightblue" points="187.99,-567.39 197.39,-562.52 187,-560.47 187.99,-567.39"/>
</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/numeric/math/cos.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="383.5,-622.5 383.5,-641.5 435.5,-641.5 435.5,-622.5 383.5,-622.5"/>
<text text-anchor="middle" x="409.5" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::cos</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<title>Node6&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M290.28,-602.54C315.62,-608.85 348.6,-617.07 373.29,-623.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="372.76,-626.7 383.31,-625.72 374.46,-619.91 372.76,-626.7"/>
</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/sin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="385,-584.5 385,-603.5 434,-603.5 434,-584.5 385,-584.5"/>
<text text-anchor="middle" x="409.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sin</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<title>Node6&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M307.62,-593.36C330,-593.5 355.09,-593.66 374.65,-593.78"/>
<polygon fill="midnightblue" stroke="midnightblue" points="374.88,-597.29 384.9,-593.85 374.92,-590.29 374.88,-597.29"/>
</g>
<!-- Node10&#45;&gt;Node3 -->
<g id="edge10" class="edge">
<title>Node10&#45;&gt;Node3</title>
<path fill="none" stroke="midnightblue" d="M117.63,-281.83C120.32,-315.75 133.66,-429.28 194,-493 197.18,-496.35 200.91,-499.23 204.92,-501.7"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203.54,-504.93 214.02,-506.48 206.79,-498.73 203.54,-504.93"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/basic_string/compare.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="199,-0.5 199,-19.5 303,-19.5 303,-0.5 199,-0.5"/>
<text text-anchor="middle" x="251" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::compare</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node11 -->
<g id="edge11" class="edge">
<title>Node10&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M117.37,-262.45C119.22,-227.35 130.2,-103.95 194,-34 197.47,-30.19 201.66,-26.96 206.15,-24.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="207.83,-27.3 215.07,-19.57 204.59,-21.1 207.83,-27.3"/>
</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#a427acfac1dbff3f48a2b071d449d965b" target="_top" xlink:title="Decrypt a given text using a given key.">
<polygon fill="white" stroke="black" points="202.5,-213 202.5,-243 299.5,-243 299.5,-213 202.5,-213"/>
<text text-anchor="start" x="210.5" y="-231" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="251" y="-220" font-family="Helvetica,sans-Serif" font-size="10.00">::decrypt_text</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node12 -->
<g id="edge12" class="edge">
<title>Node10&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M135.21,-265.97C150.64,-260.87 173.58,-253.28 194.91,-246.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="196.17,-249.5 204.56,-243.03 193.97,-242.85 196.17,-249.5"/>
</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/string/basic_string/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="524.5,-213.5 524.5,-232.5 616.5,-232.5 616.5,-213.5 524.5,-213.5"/>
<text text-anchor="middle" x="570.5" y="-220.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::string::length</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node16 -->
<g id="edge47" class="edge">
<title>Node10&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M135.18,-270.13C169.13,-266.64 244.52,-258.84 308,-252 379.1,-244.33 461.04,-235.2 513.97,-229.26"/>
<polygon fill="midnightblue" stroke="midnightblue" points="514.61,-232.71 524.16,-228.11 513.83,-225.75 514.61,-232.71"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/container/vector/size.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="794,-573.5 794,-592.5 881,-592.5 881,-573.5 794,-573.5"/>
<text text-anchor="middle" x="837.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::vector::size</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node18 -->
<g id="edge46" class="edge">
<title>Node10&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M121.19,-262.19C130.99,-240.23 157.41,-186.47 194,-154 273.54,-83.42 302.16,-48 408.5,-48 408.5,-48 408.5,-48 571.5,-48 655.6,-48 698.98,-20.08 758,-80 827.08,-150.13 835.38,-479.07 836.37,-563.31"/>
<polygon fill="midnightblue" stroke="midnightblue" points="832.87,-563.36 836.46,-573.33 839.87,-563.29 832.87,-563.36"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#aa8bbb6e4a5749f6008b06602d5103917" target="_top" xlink:title="Encrypt a given text using a given key.">
<polygon fill="white" stroke="black" points="202.5,-164 202.5,-194 299.5,-194 299.5,-164 202.5,-164"/>
<text text-anchor="start" x="210.5" y="-182" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="251" y="-171" font-family="Helvetica,sans-Serif" font-size="10.00">::encrypt_text</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node19 -->
<g id="edge21" class="edge">
<title>Node10&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M125.68,-262.44C139.16,-248.03 166.46,-220.57 194,-203 196.3,-201.53 198.71,-200.11 201.18,-198.75"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203,-201.75 210.31,-194.08 199.81,-195.52 203,-201.75"/>
</g>
<!-- Node20 -->
<g id="node20" class="node">
<title>Node20</title>
<g id="a_node20"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/manip/endl.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="685,-475.5 685,-494.5 739,-494.5 739,-475.5 685,-475.5"/>
<text text-anchor="middle" x="712" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::endl</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node20 -->
<g id="edge23" class="edge">
<title>Node10&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M135.13,-279.45C173.46,-295.13 265.66,-332.43 344,-361 464.5,-404.95 609.13,-452.23 675.07,-473.49"/>
<polygon fill="midnightblue" stroke="midnightblue" points="674,-476.82 684.59,-476.56 676.15,-470.16 674,-476.82"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a14bfcd14af6cd853130cbacd32e35c13" target="_top" xlink:title="Generate encryption and decryption key pair.">
<polygon fill="white" stroke="black" points="202.5,-454 202.5,-484 299.5,-484 299.5,-454 202.5,-454"/>
<text text-anchor="start" x="210.5" y="-472" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="251" y="-461" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_keys</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node21 -->
<g id="edge24" class="edge">
<title>Node10&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M119.11,-281.51C125.67,-309.08 148.03,-390.2 194,-439 197.28,-442.48 201.05,-445.64 205.06,-448.49"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203.22,-451.47 213.53,-453.91 206.99,-445.57 203.22,-451.47"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><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="361,-164 361,-194 458,-194 458,-164 361,-164"/>
<text text-anchor="start" x="369" y="-182" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="409.5" y="-171" font-family="Helvetica,sans-Serif" font-size="10.00">::codec</text>
</a>
</g>
</g>
<!-- Node12&#45;&gt;Node13 -->
<g id="edge13" class="edge">
<title>Node12&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M299.81,-213.03C316.04,-207.95 334.34,-202.22 351.23,-196.93"/>
<polygon fill="midnightblue" stroke="midnightblue" points="352.49,-200.2 360.99,-193.88 350.4,-193.52 352.49,-200.2"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><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="522,-164 522,-194 619,-194 619,-164 522,-164"/>
<text text-anchor="start" x="530" y="-182" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="570.5" y="-171" font-family="Helvetica,sans-Serif" font-size="10.00">::get_char_idx</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node14 -->
<g id="edge14" class="edge">
<title>Node13&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M458.21,-179C475.03,-179 494.12,-179 511.69,-179"/>
<polygon fill="midnightblue" stroke="midnightblue" points="511.83,-182.5 521.83,-179 511.83,-175.5 511.83,-182.5"/>
</g>
<!-- Node13&#45;&gt;Node16 -->
<g id="edge16" class="edge">
<title>Node13&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M458.21,-192.2C479.43,-198.07 504.27,-204.95 525.1,-210.71"/>
<polygon fill="midnightblue" stroke="midnightblue" points="524.39,-214.15 534.97,-213.44 526.26,-207.4 524.39,-214.15"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><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="522,-115 522,-145 619,-145 619,-115 522,-115"/>
<text text-anchor="start" x="530" y="-133" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="570.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">::mat_mul</text>
</a>
</g>
</g>
<!-- Node13&#45;&gt;Node17 -->
<g id="edge17" class="edge">
<title>Node13&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M458.21,-164.3C475.19,-159.07 494.48,-153.12 512.18,-147.66"/>
<polygon fill="midnightblue" stroke="midnightblue" points="513.3,-150.98 521.83,-144.69 511.24,-144.29 513.3,-150.98"/>
</g>
<!-- Node13&#45;&gt;Node18 -->
<g id="edge20" class="edge">
<title>Node13&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M424.74,-163.77C442.78,-145.7 475.8,-116.56 511,-105 616.52,-70.34 683.98,-60.19 758,-143 814.81,-206.56 831.93,-485.14 835.64,-562.82"/>
<polygon fill="midnightblue" stroke="midnightblue" points="832.16,-563.31 836.11,-573.14 839.15,-562.99 832.16,-563.31"/>
</g>
<!-- Node15 -->
<g id="node15" class="node">
<title>Node15</title>
<g id="a_node15"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/string/byte/strlen.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="682,-210.5 682,-229.5 742,-229.5 742,-210.5 682,-210.5"/>
<text text-anchor="middle" x="712" y="-217.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::strlen</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node15 -->
<g id="edge15" class="edge">
<title>Node14&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M619.12,-193C636.37,-198.07 655.65,-203.73 672.07,-208.56"/>
<polygon fill="midnightblue" stroke="midnightblue" points="671.3,-211.98 681.88,-211.44 673.27,-205.26 671.3,-211.98"/>
</g>
<!-- Node17&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<title>Node17&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M612.53,-145.02C618.53,-147.73 624.53,-150.75 630,-154 653.9,-168.21 678.22,-189.07 693.89,-203.51"/>
<polygon fill="midnightblue" stroke="midnightblue" points="691.55,-206.13 701.24,-210.42 696.34,-201.02 691.55,-206.13"/>
</g>
<!-- Node17&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node17&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M619.02,-135.26C661.78,-142.58 723.09,-159.96 758,-201 805.68,-257.06 828.99,-493.39 834.94,-563.39"/>
<polygon fill="midnightblue" stroke="midnightblue" points="831.46,-563.79 835.77,-573.47 838.43,-563.22 831.46,-563.79"/>
</g>
<!-- Node19&#45;&gt;Node13 -->
<g id="edge22" class="edge">
<title>Node19&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M299.81,-179C315.88,-179 334,-179 350.76,-179"/>
<polygon fill="midnightblue" stroke="midnightblue" points="350.99,-182.5 360.99,-179 350.99,-175.5 350.99,-182.5"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a3108d43bd32c6fb3b3c158476c51ba7f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="530.5,-655.5 530.5,-674.5 610.5,-674.5 610.5,-655.5 530.5,-655.5"/>
<text text-anchor="middle" x="570.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00">determinant_lu</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node22 -->
<g id="edge25" class="edge">
<title>Node21&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M286.92,-484.01C294.18,-487.79 301.57,-492.17 308,-497 326.86,-511.17 323.98,-523.52 344,-536 395.55,-568.13 427.78,-536.78 475,-575 500.97,-596.02 486.11,-618.71 511,-641 515.4,-644.94 520.54,-648.29 525.9,-651.11"/>
<polygon fill="midnightblue" stroke="midnightblue" points="524.52,-654.33 535.06,-655.39 527.48,-647.99 524.52,-654.33"/>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<title>Node24</title>
<g id="a_node24"><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="344,-497 344,-527 475,-527 475,-497 344,-497"/>
<text text-anchor="start" x="352" y="-515" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="409.5" y="-504" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_decryption_key</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node24 -->
<g id="edge29" class="edge">
<title>Node21&#45;&gt;Node24</title>
<path fill="none" stroke="midnightblue" d="M299.81,-482.14C313.68,-485.95 329.07,-490.18 343.8,-494.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="343.3,-497.71 353.87,-496.99 345.15,-490.96 343.3,-497.71"/>
</g>
<!-- Node28 -->
<g id="node28" class="node">
<title>Node28</title>
<g id="a_node28"><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="344,-322 344,-352 475,-352 475,-322 344,-322"/>
<text text-anchor="start" x="352" y="-340" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="409.5" y="-329" font-family="Helvetica,sans-Serif" font-size="10.00">::generate_encryption_key</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node28 -->
<g id="edge38" class="edge">
<title>Node21&#45;&gt;Node28</title>
<path fill="none" stroke="midnightblue" d="M269.95,-453.86C297.52,-430.61 350.41,-386 382.27,-359.12"/>
<polygon fill="midnightblue" stroke="midnightblue" points="384.89,-361.49 390.27,-352.37 380.37,-356.14 384.89,-361.49"/>
</g>
<!-- Node34 -->
<g id="node34" class="node">
<title>Node34</title>
<g id="a_node34"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="369,-458.5 369,-477.5 450,-477.5 450,-458.5 369,-458.5"/>
<text text-anchor="middle" x="409.5" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::make_pair</text>
</a>
</g>
</g>
<!-- Node21&#45;&gt;Node34 -->
<g id="edge45" class="edge">
<title>Node21&#45;&gt;Node34</title>
<path fill="none" stroke="midnightblue" d="M299.81,-468.69C318.46,-468.58 339.86,-468.44 358.7,-468.32"/>
<polygon fill="midnightblue" stroke="midnightblue" points="358.9,-471.82 368.88,-468.25 358.85,-464.82 358.9,-471.82"/>
</g>
<!-- Node22&#45;&gt;Node18 -->
<g id="edge28" class="edge">
<title>Node22&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M593.8,-674.57C630.21,-688.64 703.77,-710.53 758,-684 792.91,-666.92 816.77,-625.99 828.38,-601.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="831.62,-603.13 832.6,-592.58 825.26,-600.22 831.62,-603.13"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a xlink:href="../../d1/dbe/lu__decomposition_8h.html#a75b8a228c6419ecda6077255d6d60509" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="666,-655.5 666,-674.5 758,-674.5 758,-655.5 666,-655.5"/>
<text text-anchor="middle" x="712" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00">lu_decomposition</text>
</a>
</g>
</g>
<!-- Node22&#45;&gt;Node23 -->
<g id="edge26" class="edge">
<title>Node22&#45;&gt;Node23</title>
<path fill="none" stroke="midnightblue" d="M610.73,-665C624.68,-665 640.65,-665 655.69,-665"/>
<polygon fill="midnightblue" stroke="midnightblue" points="655.91,-668.5 665.91,-665 655.91,-661.5 655.91,-668.5"/>
</g>
<!-- Node23&#45;&gt;Node18 -->
<g id="edge27" class="edge">
<title>Node23&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M732.62,-655.33C740.64,-651.17 749.91,-646.1 758,-641 778.79,-627.87 801.24,-610.99 816.78,-598.83"/>
<polygon fill="midnightblue" stroke="midnightblue" points="818.97,-601.56 824.65,-592.61 814.63,-596.06 818.97,-601.56"/>
</g>
<!-- Node24&#45;&gt;Node15 -->
<g id="edge37" class="edge">
<title>Node24&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M451.16,-496.96C507.75,-475.25 606.01,-434.53 630,-405 666.46,-360.13 640.23,-331.75 666,-280 673.68,-264.58 685.44,-249.08 695.01,-237.69"/>
<polygon fill="midnightblue" stroke="midnightblue" points="697.89,-239.71 701.8,-229.86 692.6,-235.12 697.89,-239.71"/>
</g>
<!-- Node24&#45;&gt;Node18 -->
<g id="edge36" class="edge">
<title>Node24&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M468.47,-527.15C470.77,-528.62 472.96,-530.23 475,-532 503.23,-556.49 479.42,-588.01 511,-608 604.46,-667.14 744.56,-621.6 805.9,-596.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="807.51,-599.72 815.39,-592.63 804.81,-593.26 807.51,-599.72"/>
</g>
<!-- Node24&#45;&gt;Node22 -->
<g id="edge30" class="edge">
<title>Node24&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M455.25,-527.12C462.54,-531.09 469.49,-535.99 475,-542 506.64,-576.51 478.57,-607.23 511,-641 514.66,-644.81 519.01,-648.04 523.67,-650.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="522.38,-654.04 532.89,-655.42 525.54,-647.79 522.38,-654.04"/>
</g>
<!-- Node25 -->
<g id="node25" class="node">
<title>Node25</title>
<g id="a_node25"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/utility/program/exit.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="544.5,-491.5 544.5,-510.5 596.5,-510.5 596.5,-491.5 544.5,-491.5"/>
<text text-anchor="middle" x="570.5" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exit</text>
</a>
</g>
</g>
<!-- Node24&#45;&gt;Node25 -->
<g id="edge31" class="edge">
<title>Node24&#45;&gt;Node25</title>
<path fill="none" stroke="midnightblue" d="M475.17,-507.53C495.25,-506.14 516.64,-504.66 533.96,-503.46"/>
<polygon fill="midnightblue" stroke="midnightblue" points="534.44,-506.93 544.17,-502.75 533.96,-499.95 534.44,-506.93"/>
</g>
<!-- Node26 -->
<g id="node26" class="node">
<title>Node26</title>
<g id="a_node26"><a xlink:href="../../d6/d26/classciphers_1_1_hill_cipher.html#a5a4cdbd4d4dad9efe2ed309bd466dd4b" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="522,-568 522,-598 619,-598 619,-568 522,-568"/>
<text text-anchor="start" x="530" y="-586" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="570.5" y="-575" font-family="Helvetica,sans-Serif" font-size="10.00">::get_inverse</text>
</a>
</g>
</g>
<!-- Node24&#45;&gt;Node26 -->
<g id="edge32" class="edge">
<title>Node24&#45;&gt;Node26</title>
<path fill="none" stroke="midnightblue" d="M442.99,-527.13C462.63,-536.2 488.19,-547.91 511,-558 515.38,-559.94 519.95,-561.93 524.53,-563.92"/>
<polygon fill="midnightblue" stroke="midnightblue" points="523.29,-567.2 533.86,-567.94 526.06,-560.77 523.29,-567.2"/>
</g>
<!-- Node27 -->
<g id="node27" class="node">
<title>Node27</title>
<g id="a_node27"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/round.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="540.5,-529.5 540.5,-548.5 600.5,-548.5 600.5,-529.5 540.5,-529.5"/>
<text text-anchor="middle" x="570.5" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::round</text>
</a>
</g>
</g>
<!-- Node24&#45;&gt;Node27 -->
<g id="edge35" class="edge">
<title>Node24&#45;&gt;Node27</title>
<path fill="none" stroke="midnightblue" d="M475.17,-522.98C493.83,-526.15 513.61,-529.51 530.21,-532.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="529.66,-535.78 540.11,-534.01 530.83,-528.88 529.66,-535.78"/>
</g>
<!-- Node26&#45;&gt;Node18 -->
<g id="edge34" class="edge">
<title>Node26&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M619.18,-583C665.41,-583 735.41,-583 783.39,-583"/>
<polygon fill="midnightblue" stroke="midnightblue" points="783.58,-586.5 793.58,-583 783.58,-579.5 783.58,-586.5"/>
</g>
<!-- Node26&#45;&gt;Node20 -->
<g id="edge33" class="edge">
<title>Node26&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M611.74,-567.9C618.03,-564.95 624.32,-561.63 630,-558 654.99,-542.03 679.74,-518.26 695.17,-502.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="698.03,-504.3 702.35,-494.62 692.94,-499.49 698.03,-504.3"/>
</g>
<!-- Node28&#45;&gt;Node15 -->
<g id="edge44" class="edge">
<title>Node28&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M433.69,-321.85C453.58,-309.36 483.33,-291.82 511,-280 540.08,-267.58 622.43,-244.22 671.92,-230.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="672.94,-233.95 681.66,-227.93 671.09,-227.2 672.94,-233.95"/>
</g>
<!-- Node29 -->
<g id="node29" class="node">
<title>Node29</title>
<g id="a_node29"><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="511,-289.5 511,-308.5 630,-308.5 630,-289.5 511,-289.5"/>
<text text-anchor="middle" x="570.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher::gcd</text>
</a>
</g>
</g>
<!-- Node28&#45;&gt;Node29 -->
<g id="edge39" class="edge">
<title>Node28&#45;&gt;Node29</title>
<path fill="none" stroke="midnightblue" d="M473.34,-321.98C488.72,-318.31 504.96,-314.42 519.63,-310.92"/>
<polygon fill="midnightblue" stroke="midnightblue" points="520.6,-314.29 529.51,-308.56 518.97,-307.48 520.6,-314.29"/>
</g>
<!-- Node31 -->
<g id="node31" class="node">
<title>Node31</title>
<g id="a_node31"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/isfinite.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="538,-327.5 538,-346.5 603,-346.5 603,-327.5 538,-327.5"/>
<text text-anchor="middle" x="570.5" y="-334.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::isfinite</text>
</a>
</g>
</g>
<!-- Node28&#45;&gt;Node31 -->
<g id="edge41" class="edge">
<title>Node28&#45;&gt;Node31</title>
<path fill="none" stroke="midnightblue" d="M475.17,-337C492.94,-337 511.74,-337 527.84,-337"/>
<polygon fill="midnightblue" stroke="midnightblue" points="527.99,-340.5 537.99,-337 527.99,-333.5 527.99,-340.5"/>
</g>
<!-- Node32 -->
<g id="node32" class="node">
<title>Node32</title>
<g id="a_node32"><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="522,-366 522,-396 619,-396 619,-366 522,-366"/>
<text text-anchor="start" x="530" y="-384" font-family="Helvetica,sans-Serif" font-size="10.00">ciphers::HillCipher</text>
<text text-anchor="middle" x="570.5" y="-373" font-family="Helvetica,sans-Serif" font-size="10.00">::rand_range</text>
</a>
</g>
</g>
<!-- Node28&#45;&gt;Node32 -->
<g id="edge42" class="edge">
<title>Node28&#45;&gt;Node32</title>
<path fill="none" stroke="midnightblue" d="M464.77,-352.02C479.98,-356.23 496.55,-360.81 511.94,-365.07"/>
<polygon fill="midnightblue" stroke="midnightblue" points="511.28,-368.52 521.85,-367.81 513.15,-361.77 511.28,-368.52"/>
</g>
<!-- Node30 -->
<g id="node30" class="node">
<title>Node30</title>
<g id="a_node30"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/swap.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="682.5,-289.5 682.5,-308.5 741.5,-308.5 741.5,-289.5 682.5,-289.5"/>
<text text-anchor="middle" x="712" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::swap</text>
</a>
</g>
</g>
<!-- Node29&#45;&gt;Node30 -->
<g id="edge40" class="edge">
<title>Node29&#45;&gt;Node30</title>
<path fill="none" stroke="midnightblue" d="M630.26,-299C644.47,-299 659.32,-299 672.34,-299"/>
<polygon fill="midnightblue" stroke="midnightblue" points="672.35,-302.5 682.35,-299 672.35,-295.5 672.35,-302.5"/>
</g>
<!-- Node33 -->
<g id="node33" class="node">
<title>Node33</title>
<g id="a_node33"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="684.5,-371.5 684.5,-390.5 739.5,-390.5 739.5,-371.5 684.5,-371.5"/>
<text text-anchor="middle" x="712" y="-378.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node32&#45;&gt;Node33 -->
<g id="edge43" class="edge">
<title>Node32&#45;&gt;Node33</title>
<path fill="none" stroke="midnightblue" d="M619.12,-381C637.16,-381 657.4,-381 674.29,-381"/>
<polygon fill="midnightblue" stroke="midnightblue" points="674.32,-384.5 684.32,-381 674.32,-377.5 674.32,-384.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -0,0 +1,277 @@
<!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++: spirograph 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('da/dd3/namespacespirograph.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="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">spirograph Namespace Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aeca22dbe4563358960e907a40cd3e1ac"><td class="memTemplParams" colspan="2">template&lt;std::size_t N&gt; </td></tr>
<tr class="memitem:aeca22dbe4563358960e907a40cd3e1ac"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac">spirograph</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; double, double &gt;, N &gt; *points, double l, double k, double rot)</td></tr>
<tr class="separator:aeca22dbe4563358960e907a40cd3e1ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99">test</a> ()</td></tr>
<tr class="memdesc:a8e83a64e8443fff1e5ffdc1c299c1e99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test function to save resulting points to a CSV file. <a href="../../da/dd3/namespacespirograph.html#a8e83a64e8443fff1e5ffdc1c299c1e99">More...</a><br /></td></tr>
<tr class="separator:a8e83a64e8443fff1e5ffdc1c299c1e99"><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>Functions related to <a class="el" href="../../da/d77/spirograph_8cpp.html" title="Implementation of Spirograph">spirograph.cpp</a> </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="aeca22dbe4563358960e907a40cd3e1ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeca22dbe4563358960e907a40cd3e1ac">&#9670;&nbsp;</a></span>spirograph()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;std::size_t N&gt; </div>
<table class="memname">
<tr>
<td class="memname">void spirograph::spirograph </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; double, double &gt;, N &gt; *&#160;</td>
<td class="paramname"><em>points</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>l</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>k</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>rot</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generate spirograph curve into arrays <code>x</code> and <code>y</code> such that the i^th point in 2D is represented by <code>(x[i],y[i])</code>. The generating function is given by: </p><p class="formulaDsp">
\begin{eqnarray*} x &amp;=&amp; R\left[ (1-k) \cos (t) + l\cdot k\cdot\cos \left(\frac{1-k}{k}t\right) \right]\\ y &amp;=&amp; R\left[ (1-k) \sin (t) - l\cdot k\cdot\sin \left(\frac{1-k}{k}t\right) \right] \end{eqnarray*}
</p>
<p> where</p><ul>
<li>\(R\) is the scaling parameter that we will consider \(=1\)</li>
<li>\(l=\frac{\rho}{r}\) is the relative distance of marker from the centre of inner circle and \(0\le l\le1\)</li>
<li>\(\rho\) is physical distance of marker from centre of inner circle</li>
<li>\(r\) is the radius of inner circle</li>
<li>\(k=\frac{r}{R}\) is the ratio of radius of inner circle to outer circle and \(0&lt;k&lt;1\)</li>
<li>\(R\) is the radius of outer circle</li>
<li>\(t\) is the angle of rotation of the point i.e., represents the time parameter</li>
</ul>
<p>Since we are considering ratios, the actual values of \(r\) and \(R\) are immaterial.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">N</td><td>number of points = size of array </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">points</td><td>Array of 2D points represented as <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a> </td></tr>
<tr><td class="paramdir"></td><td class="paramname">l</td><td>the relative distance of marker from the centre of inner circle and \(0\le l\le1\) </td></tr>
<tr><td class="paramdir"></td><td class="paramname">k</td><td>the ratio of radius of inner circle to outer circle and \(0&lt;k&lt;1\) </td></tr>
<tr><td class="paramdir"></td><td class="paramname">rot</td><td>the number of rotations to perform (can be fractional value) </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> dt = rot * 2.f * M_PI / N;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">double</span> R = 1.f;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> k1 = 1.f - k;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; int32_t step = 0;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span> (step = 0; step &lt; N; step++) {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">double</span> t = dt * step;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">double</span> first = R * (k1 * <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a>(t) + l * k * <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a>(k1 * t / k));</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">double</span> second = R * (k1 * <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sin.html">std::sin</a>(t) - l * k * <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/math/sin.html">std::sin</a>(k1 * t / k));</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; points[0][step].first = first;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; points[0][step].second = second;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/dd3/namespacespirograph_aeca22dbe4563358960e907a40cd3e1ac_cgraph.svg" width="279" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
<a id="a8e83a64e8443fff1e5ffdc1c299c1e99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e83a64e8443fff1e5ffdc1c299c1e99">&#9670;&nbsp;</a></span>test()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void spirograph::test </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Test function to save resulting points to a CSV file. </p>
<div class="fragment"><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> N = 500;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">double</span> l = 0.3, k = 0.75, rot = 10.;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_stringstream.html">std::stringstream</a> fname;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; fname &lt;&lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a>(3) &lt;&lt; <span class="stringliteral">&quot;spirograph_&quot;</span> &lt;&lt; l &lt;&lt; <span class="stringliteral">&quot;_&quot;</span> &lt;&lt; k &lt;&lt; <span class="stringliteral">&quot;_&quot;</span> &lt;&lt; rot</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; &lt;&lt; <span class="stringliteral">&quot;.csv&quot;</span>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ofstream.html">std::ofstream</a> fp(fname.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">str</a>());</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (!fp.is_open()) {</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/c/perror.html">perror</a>(fname.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">str</a>().c_str());</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/program/exit.html">exit</a>(EXIT_FAILURE);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::pair&lt;double, double&gt;</a>, N&gt; points;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac">spirograph</a>(&amp;points, l, k, rot);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; N; i++) {</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; fp &lt;&lt; points[i].first &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; points[i].first;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span> (i &lt; N - 1) {</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; fp &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; fp.close();</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="../../da/dd3/namespacespirograph_a8e83a64e8443fff1e5ffdc1c299c1e99_cgraph.svg" width="440" height="240"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="acos_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/cos.html">std::cos</a></div><div class="ttdeci">T cos(T... args)</div></div>
<div class="ttc" id="abasic_stringstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream.html">std::stringstream</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="abasic_ofstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream.html">std::ofstream</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aperror_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/c/perror.html">std::perror</a></div><div class="ttdeci">T perror(T... args)</div></div>
<div class="ttc" id="asin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/math/sin.html">std::sin</a></div><div class="ttdeci">T sin(T... args)</div></div>
<div class="ttc" id="astr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">std::stringstream::str</a></div><div class="ttdeci">T str(T... args)</div></div>
<div class="ttc" id="asetw_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a></div><div class="ttdeci">T setw(T... args)</div></div>
<div class="ttc" id="anamespacespirograph_html_aeca22dbe4563358960e907a40cd3e1ac"><div class="ttname"><a href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac">spirograph::spirograph</a></div><div class="ttdeci">void spirograph(std::array&lt; std::pair&lt; double, double &gt;, N &gt; *points, double l, double k, double rot)</div><div class="ttdef"><b>Definition:</b> spirograph.cpp:70</div></div>
<div class="ttc" id="aexit_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a></div><div class="ttdeci">T exit(T... args)</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../da/dd3/namespacespirograph.html">spirograph</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,10 @@
<map id="spirograph::test" name="spirograph::test">
<area shape="rect" id="node1" title="Test function to save resulting points to a CSV file." alt="" coords="5,107,117,133"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="172,5,311,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/is_open.html#" title=" " alt="" coords="165,56,317,83"/>
<area shape="rect" id="node4" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/manip/setw.html#" title=" " alt="" coords="203,107,279,133"/>
<area shape="rect" id="node5" href="$da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac" title=" " alt="" coords="166,157,317,184"/>
<area shape="rect" id="node8" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_stringstream/str.html#" title=" " alt="" coords="170,208,313,235"/>
<area shape="rect" id="node6" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/cos.html#" title=" " alt="" coords="365,132,435,159"/>
<area shape="rect" id="node7" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/sin.html#" title=" " alt="" coords="367,183,433,209"/>
</map>

View File

@@ -0,0 +1 @@
eee4f4748f64ee50700e9f09c03af832

View File

@@ -0,0 +1,127 @@
<?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: spirograph::test Pages: 1 -->
<svg width="330pt" height="180pt"
viewBox="0.00 0.00 330.00 180.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 176)">
<title>spirograph::test</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-176 326,-176 326,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Test function to save resulting points to a CSV file.">
<polygon fill="#bfbfbf" stroke="black" points="0,-76.5 0,-95.5 84,-95.5 84,-76.5 0,-76.5"/>
<text text-anchor="middle" x="42" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">spirograph::test</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/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="125,-152.5 125,-171.5 229,-171.5 229,-152.5 125,-152.5"/>
<text text-anchor="middle" x="177" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node2 -->
<g id="edge1" class="edge">
<title>Node1&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M53.75,-95.67C68,-108.07 94.36,-129.58 120,-143 124.05,-145.12 128.38,-147.08 132.78,-148.86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="131.83,-152.25 142.42,-152.5 134.3,-145.7 131.83,-152.25"/>
</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/io/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="120,-114.5 120,-133.5 234,-133.5 234,-114.5 120,-114.5"/>
<text text-anchor="middle" x="177" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</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="M76.56,-95.59C93.57,-100.45 114.43,-106.41 132.64,-111.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="131.87,-115.03 142.45,-114.41 133.8,-108.3 131.87,-115.03"/>
</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/io/manip/setw.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="148.5,-76.5 148.5,-95.5 205.5,-95.5 205.5,-76.5 148.5,-76.5"/>
<text text-anchor="middle" x="177" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::setw</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="M84.35,-86C101.53,-86 121.33,-86 138.12,-86"/>
<polygon fill="midnightblue" stroke="midnightblue" points="138.14,-89.5 148.14,-86 138.14,-82.5 138.14,-89.5"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../da/dd3/namespacespirograph.html#aeca22dbe4563358960e907a40cd3e1ac" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="120.5,-38.5 120.5,-57.5 233.5,-57.5 233.5,-38.5 120.5,-38.5"/>
<text text-anchor="middle" x="177" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">spirograph::spirograph</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="M76.56,-76.41C93.57,-71.55 114.43,-65.59 132.64,-60.39"/>
<polygon fill="midnightblue" stroke="midnightblue" points="133.8,-63.7 142.45,-57.59 131.87,-56.97 133.8,-63.7"/>
</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/basic_stringstream/str.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="123.5,-0.5 123.5,-19.5 230.5,-19.5 230.5,-0.5 123.5,-0.5"/>
<text text-anchor="middle" x="177" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::stringstream::str</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<title>Node1&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M53.75,-76.33C68,-63.93 94.36,-42.42 120,-29 124.05,-26.88 128.38,-24.92 132.78,-23.14"/>
<polygon fill="midnightblue" stroke="midnightblue" points="134.3,-26.3 142.42,-19.5 131.83,-19.75 134.3,-26.3"/>
</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/math/cos.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="270,-57.5 270,-76.5 322,-76.5 322,-57.5 270,-57.5"/>
<text text-anchor="middle" x="296" y="-64.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::cos</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="M233.76,-57.05C242.61,-58.49 251.55,-59.94 259.76,-61.28"/>
<polygon fill="midnightblue" stroke="midnightblue" points="259.28,-64.75 269.71,-62.89 260.4,-57.84 259.28,-64.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/numeric/math/sin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="271.5,-19.5 271.5,-38.5 320.5,-38.5 320.5,-19.5 271.5,-19.5"/>
<text text-anchor="middle" x="296" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sin</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node7 -->
<g id="edge6" class="edge">
<title>Node5&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M233.76,-38.95C243.22,-37.41 252.77,-35.86 261.42,-34.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="262.16,-37.88 271.47,-32.82 261.04,-30.97 262.16,-37.88"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,5 @@
<map id="spirograph::spirograph" name="spirograph::spirograph">
<area shape="rect" id="node1" title=" " alt="" coords="5,31,156,57"/>
<area shape="rect" id="node2" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/cos.html#" title=" " alt="" coords="204,5,273,32"/>
<area shape="rect" id="node3" href="/Users/runner/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/sin.html#" title=" " alt="" coords="206,56,271,83"/>
</map>

View File

@@ -0,0 +1 @@
162bb25e033bbfd6cfc30611113e2291

View File

@@ -0,0 +1,52 @@
<?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: spirograph::spirograph Pages: 1 -->
<svg width="209pt" height="66pt"
viewBox="0.00 0.00 209.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>spirograph::spirograph</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-62 205,-62 205,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,-19.5 0,-38.5 113,-38.5 113,-19.5 0,-19.5"/>
<text text-anchor="middle" x="56.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">spirograph::spirograph</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/math/cos.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="149,-38.5 149,-57.5 201,-57.5 201,-38.5 149,-38.5"/>
<text text-anchor="middle" x="175" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::cos</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="M113.02,-38.05C121.84,-39.49 130.74,-40.94 138.92,-42.28"/>
<polygon fill="midnightblue" stroke="midnightblue" points="138.39,-45.74 148.82,-43.89 139.51,-38.83 138.39,-45.74"/>
</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/numeric/math/sin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="150.5,-0.5 150.5,-19.5 199.5,-19.5 199.5,-0.5 150.5,-0.5"/>
<text text-anchor="middle" x="175" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sin</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="M113.02,-19.95C122.35,-18.42 131.78,-16.89 140.34,-15.49"/>
<polygon fill="midnightblue" stroke="midnightblue" points="140.98,-18.93 150.28,-13.87 139.85,-12.02 140.98,-18.93"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB