Documentation for aaa08b0150

This commit is contained in:
github-actions
2020-06-19 16:07:44 +00:00
parent 4c261744f6
commit 93021161c2
1714 changed files with 114526 additions and 0 deletions

View File

@@ -0,0 +1,693 @@
<!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++: machine_learning/kohonen_som_topology.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('d4/def/kohonen__som__topology_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">kohonen_som_topology.cpp File Reference<div class="ingroups"><a class="el" href="../../d9/d66/group__machine__learning.html">Machine Learning Algorithms</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p><a href="https://en.wikipedia.org/wiki/Self-organizing_map">Kohonen self organizing map</a> (topological map)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;algorithm&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;iostream&gt;</code><br />
<code>#include &lt;valarray&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for kohonen_som_topology.cpp:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d5/dcd/kohonen__som__topology_8cpp__incl.svg" width="100%" height="395"><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:d8/d77/namespacemachine__learning"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d77/namespacemachine__learning.html">machine_learning</a></td></tr>
<tr class="memdesc:d8/d77/namespacemachine__learning"><td class="mdescLeft">&#160;</td><td class="mdescRight">Machine learning algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga525335710b53cb064ca56b936120431e"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>_USE_MATH_DEFINES</b></td></tr>
<tr class="separator:ga525335710b53cb064ca56b936120431e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a549d41dcf9444ed7d6df1da3c73e7d16"><td class="memItemLeft" align="right" valign="top"><a id="a549d41dcf9444ed7d6df1da3c73e7d16"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/def/kohonen__som__topology_8cpp.html#a549d41dcf9444ed7d6df1da3c73e7d16">MIN_DISTANCE</a>&#160;&#160;&#160;1e-4</td></tr>
<tr class="memdesc:a549d41dcf9444ed7d6df1da3c73e7d16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum average distance of image nodes. <br /></td></tr>
<tr class="separator:a549d41dcf9444ed7d6df1da3c73e7d16"><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:gaf5ce14f026d6d231bef29161bac2b485"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a> (double <a class="el" href="../../d7/d35/matrix__exponentiation_8cpp.html#a9ecd98ce0064e2f7f97bb6a92f58ee72">a</a>, double b)</td></tr>
<tr class="separator:gaf5ce14f026d6d231bef29161bac2b485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c606bc85a3e9fd9d010f874ad760336"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336">save_2d_data</a> (const char *fname, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; &amp;X)</td></tr>
<tr class="separator:ga6c606bc85a3e9fd9d010f874ad760336"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab53c14440b2b2dd3172c66afc5c2f63f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f">get_min_2d</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; &amp;X, double *val, int *x_idx, int *y_idx)</td></tr>
<tr class="separator:gab53c14440b2b2dd3172c66afc5c2f63f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d577f5d95b774ae97eb6838852d0df5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5">machine_learning::save_u_matrix</a> (const char *fname, const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt;&gt; &amp;W)</td></tr>
<tr class="separator:a1d577f5d95b774ae97eb6838852d0df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4010fe3a52a74e8b5b1aaadfe38b46f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f">machine_learning::update_weights</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt; &amp;X, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt;&gt; *W, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; *D, double alpha, int R)</td></tr>
<tr class="separator:ac4010fe3a52a74e8b5b1aaadfe38b46f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc731720947b4bc2ab047c141e7d0299"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299">machine_learning::kohonen_som</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; &amp;X, <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt;&gt; *W, double alpha_min)</td></tr>
<tr class="separator:adc731720947b4bc2ab047c141e7d0299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b5e744876fd980a3451cbb385d4e755"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755">test_2d_classes</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; *<a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
<tr class="separator:a6b5e744876fd980a3451cbb385d4e755"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/def/kohonen__som__topology_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a> ()</td></tr>
<tr class="separator:a1440a7779ac56f47a3f355ce4a8c7da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3081e021270ba21a9fd88646f6a6e26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26">test_3d_classes1</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; *<a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
<tr class="separator:ab3081e021270ba21a9fd88646f6a6e26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0283886819c7c140a023582b7269e2d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/def/kohonen__som__topology_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a> ()</td></tr>
<tr class="separator:a0283886819c7c140a023582b7269e2d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e7435446ed7c763f7de79a468add2e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0">test_3d_classes2</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; *<a class="el" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>)</td></tr>
<tr class="separator:a0e7435446ed7c763f7de79a468add2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d0455dd5c30adda100e95f0423c786e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/def/kohonen__som__topology_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a> ()</td></tr>
<tr class="separator:a6d0455dd5c30adda100e95f0423c786e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2256c10b16edba377b64a44b6c656908"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/def/kohonen__som__topology_8cpp.html#a2256c10b16edba377b64a44b6c656908">get_clock_diff</a> (clock_t start_t, clock_t end_t)</td></tr>
<tr class="separator:a2256c10b16edba377b64a44b6c656908"><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="../../d4/def/kohonen__som__topology_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><a href="https://en.wikipedia.org/wiki/Self-organizing_map">Kohonen self organizing map</a> (topological map) </p>
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/kvedala">Krishna Vedala</a> This example implements a powerful unsupervised learning algorithm called as a self organizing map. The algorithm creates a connected network of weights that closely follows the given data points. This thus creates a topological map of the given data i.e., it maintains the relationship between varipus data points in a much higher dimesional space by creating an equivalent in a 2-dimensional space. <img src="https://raw.githubusercontent.com/TheAlgorithms/C-Plus-Plus/docs/images/machine_learning/2D_Kohonen_SOM.svg" alt="Trained topological maps for the test cases in the program" style="pointer-events: none;" class="inline"/> </dd></dl>
<dl class="section note"><dt>Note</dt><dd>This C++ version of the program is considerable slower than its <a href="https://github.com/kvedala/C/blob/master/machine_learning/kohonen_som_trace.c">C counterpart</a> </dd>
<dd>
The compiled code is much slower when compiled with MS Visual C++ 2019 than with GCC on windows </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../d9/d49/kohonen__som__trace_8cpp.html" title="Kohonen self organizing map (data tracing)">kohonen_som_trace.cpp</a> </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a2256c10b16edba377b64a44b6c656908"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2256c10b16edba377b64a44b6c656908">&#9670;&nbsp;</a></span>get_clock_diff()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double get_clock_diff </td>
<td>(</td>
<td class="paramtype">clock_t&#160;</td>
<td class="paramname"><em>start_t</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">clock_t&#160;</td>
<td class="paramname"><em>end_t</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert clock cycle difference to time in seconds</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">start_t</td><td>start clock </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">end_t</td><td>end clock </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>time difference in seconds </dd></dl>
<div class="fragment"><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; {</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(end_t - start_t) / CLOCKS_PER_SEC;</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<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="l00564"></a><span class="lineno"> 564</span>&#160; {</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Using OpenMP based parallelization\n&quot;</span>;</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;NOT using OpenMP based parallelization\n&quot;</span>;</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; </div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a>(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a>(<span class="keyword">nullptr</span>));</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; </div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a> start_clk = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <a class="code" href="../../d4/def/kohonen__som__topology_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a>();</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keyword">auto</span> end_clk = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 1 completed in &quot;</span> &lt;&lt; <a class="code" href="../../d4/def/kohonen__som__topology_8cpp.html#a2256c10b16edba377b64a44b6c656908">get_clock_diff</a>(start_clk, end_clk)</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; &lt;&lt; <span class="stringliteral">&quot; sec\n&quot;</span>;</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; </div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; start_clk = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="../../d4/def/kohonen__som__topology_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a>();</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; end_clk = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 2 completed in &quot;</span> &lt;&lt; <a class="code" href="../../d4/def/kohonen__som__topology_8cpp.html#a2256c10b16edba377b64a44b6c656908">get_clock_diff</a>(start_clk, end_clk)</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; &lt;&lt; <span class="stringliteral">&quot; sec\n&quot;</span>;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; </div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; start_clk = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <a class="code" href="../../d4/def/kohonen__som__topology_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a>();</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; end_clk = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a>();</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> &lt;&lt; <span class="stringliteral">&quot;Test 3 completed in &quot;</span> &lt;&lt; <a class="code" href="../../d4/def/kohonen__som__topology_8cpp.html#a2256c10b16edba377b64a44b6c656908">get_clock_diff</a>(start_clk, end_clk)</div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; &lt;&lt; <span class="stringliteral">&quot; sec\n&quot;</span>;</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; </div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; &lt;&lt; <span class="stringliteral">&quot;(Note: Calculated times include: creating test sets, training &quot;</span></div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="stringliteral">&quot;model and writing files to disk.)\n\n&quot;</span>;</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</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="../../d4/def/kohonen__som__topology_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>
<a id="a1440a7779ac56f47a3f355ce4a8c7da0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1440a7779ac56f47a3f355ce4a8c7da0">&#9670;&nbsp;</a></span>test1()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test1 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Test that creates a random set of points distributed in four clusters in circumference of a circle and trains an SOM that finds that circular pattern. The following <a href="https://en.wikipedia.org/wiki/Comma-separated_values">CSV</a> files are created to validate the execution:</p><ul>
<li><code>test1.csv</code>: random test samples points with a circular pattern</li>
<li><code>w11.csv</code>: initial random map</li>
<li><code>w12.csv</code>: trained SOM map </li>
</ul>
<div class="fragment"><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordtype">int</span> j, N = 300;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordtype">int</span> features = 2;</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordtype">int</span> num_out = 30;</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::valarray&lt;double&gt;</a>&gt; X(N);</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::valarray&lt;double&gt;</a>&gt;&gt; W(num_out);</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(num_out, N); i++) {</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="comment">// loop till max(N, num_out)</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> (i &lt; N) <span class="comment">// only add new arrays if i &lt; N</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; X[i] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(features);</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span> (i &lt; num_out) { <span class="comment">// only add new arrays if i &lt; num_out</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; W[i] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::valarray&lt;double&gt;</a>&gt;(num_out);</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a> = 0; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a> &lt; num_out; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a>++) {</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; W[i][<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a>] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(features);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; features; j++)</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="comment">// preallocate with random initial weights</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; W[i][<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a>][j] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(-10, 10);</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; </div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="../../d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755">test_2d_classes</a>(&amp;X); <span class="comment">// create test data around circumference of a circle</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336">save_2d_data</a>(<span class="stringliteral">&quot;test1.csv&quot;</span>, X); <span class="comment">// save test data points</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5">save_u_matrix</a>(<span class="stringliteral">&quot;w11.csv&quot;</span>, W); <span class="comment">// save initial random weights</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299">kohonen_som</a>(X, &amp;W, 1e-4); <span class="comment">// train the SOM</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5">save_u_matrix</a>(<span class="stringliteral">&quot;w12.csv&quot;</span>, W); <span class="comment">// save the resultant weights</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</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="../../d4/def/kohonen__som__topology_8cpp_a1440a7779ac56f47a3f355ce4a8c7da0_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>
<a id="a0283886819c7c140a023582b7269e2d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0283886819c7c140a023582b7269e2d0">&#9670;&nbsp;</a></span>test2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test2 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Test that creates a random set of points distributed in 4 clusters in 3D space and trains an SOM that finds the topological pattern. The following <a href="https://en.wikipedia.org/wiki/Comma-separated_values">CSV</a> files are created to validate the execution:</p><ul>
<li><code>test2.csv</code>: random test samples points with a lamniscate pattern</li>
<li><code>w21.csv</code>: initial random map</li>
<li><code>w22.csv</code>: trained SOM map </li>
</ul>
<div class="fragment"><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordtype">int</span> j, N = 300;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordtype">int</span> features = 3;</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordtype">int</span> num_out = 30;</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::valarray&lt;double&gt;</a>&gt; X(N);</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::valarray&lt;double&gt;</a>&gt;&gt; W(num_out);</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(num_out, N); i++) {</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">// loop till max(N, num_out)</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span> (i &lt; N) <span class="comment">// only add new arrays if i &lt; N</span></div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; X[i] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(features);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">if</span> (i &lt; num_out) { <span class="comment">// only add new arrays if i &lt; num_out</span></div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; W[i] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::valarray&lt;double&gt;</a>&gt;(num_out);</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a> = 0; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a> &lt; num_out; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a>++) {</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; W[i][<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a>] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(features);</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; features; j++)</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="comment">// preallocate with random initial weights</span></div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; W[i][<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a>][j] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(-10, 10);</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; </div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="../../d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26">test_3d_classes1</a>(&amp;X); <span class="comment">// create test data around circumference of a circle</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336">save_2d_data</a>(<span class="stringliteral">&quot;test2.csv&quot;</span>, X); <span class="comment">// save test data points</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5">save_u_matrix</a>(<span class="stringliteral">&quot;w21.csv&quot;</span>, W); <span class="comment">// save initial random weights</span></div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299">kohonen_som</a>(X, &amp;W, 1e-4); <span class="comment">// train the SOM</span></div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5">save_u_matrix</a>(<span class="stringliteral">&quot;w22.csv&quot;</span>, W); <span class="comment">// save the resultant weights</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</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="../../d4/def/kohonen__som__topology_8cpp_a0283886819c7c140a023582b7269e2d0_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>
<a id="a6d0455dd5c30adda100e95f0423c786e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d0455dd5c30adda100e95f0423c786e">&#9670;&nbsp;</a></span>test3()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test3 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Test that creates a random set of points distributed in eight clusters in 3D space and trains an SOM that finds the topological pattern. The following <a href="https://en.wikipedia.org/wiki/Comma-separated_values">CSV</a> files are created to validate the execution:</p><ul>
<li><code>test3.csv</code>: random test samples points with a circular pattern</li>
<li><code>w31.csv</code>: initial random map</li>
<li><code>w32.csv</code>: trained SOM map </li>
</ul>
<div class="fragment"><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; {</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordtype">int</span> j, N = 500;</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordtype">int</span> features = 3;</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordtype">int</span> num_out = 30;</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::valarray&lt;double&gt;</a>&gt; X(N);</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::vector&lt;std::valarray&lt;double&gt;</a>&gt;&gt; W(num_out);</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(num_out, N); i++) {</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="comment">// loop till max(N, num_out)</span></div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span> (i &lt; N) <span class="comment">// only add new arrays if i &lt; N</span></div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; X[i] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(features);</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">if</span> (i &lt; num_out) { <span class="comment">// only add new arrays if i &lt; num_out</span></div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; W[i] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::valarray&lt;double&gt;</a>&gt;(num_out);</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a> = 0; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a> &lt; num_out; <a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a>++) {</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; W[i][<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a>] = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray&lt;double&gt;</a>(features);</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">for</span> (j = 0; j &lt; features; j++)</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="comment">// preallocate with random initial weights</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; W[i][<a class="code" href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a>][j] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(-10, 10);</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; }</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; }</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; </div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="../../d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0">test_3d_classes2</a>(&amp;X); <span class="comment">// create test data around circumference of a circle</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <a class="code" href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336">save_2d_data</a>(<span class="stringliteral">&quot;test3.csv&quot;</span>, X); <span class="comment">// save test data points</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5">save_u_matrix</a>(<span class="stringliteral">&quot;w31.csv&quot;</span>, W); <span class="comment">// save initial random weights</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299">kohonen_som</a>(X, &amp;W, 1e-4); <span class="comment">// train the SOM</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5">save_u_matrix</a>(<span class="stringliteral">&quot;w32.csv&quot;</span>, W); <span class="comment">// save the resultant weights</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</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="../../d4/def/kohonen__som__topology_8cpp_a6d0455dd5c30adda100e95f0423c786e_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>
<a id="a6b5e744876fd980a3451cbb385d4e755"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b5e744876fd980a3451cbb385d4e755">&#9670;&nbsp;</a></span>test_2d_classes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test_2d_classes </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; *&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a random set of points distributed in four clusters in 3D space with centroids at the points</p><ul>
<li>\((0,5, 0.5, 0.5)\)</li>
<li>\((0,5,-0.5, -0.5)\)</li>
<li>\((-0,5, 0.5, 0.5)\)</li>
<li>\((-0,5,-0.5, -0.5)\)</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>matrix to store data in </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; {</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> N = <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>-&gt;size();</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> R = 0.3; <span class="comment">// radius of cluster</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> num_classes = 4;</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> centres[][2] = {</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// centres of each class cluster</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {.5, .5}, <span class="comment">// centre of class 1</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {.5, -.5}, <span class="comment">// centre of class 2</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; {-.5, .5}, <span class="comment">// centre of class 3</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {-.5, -.5} <span class="comment">// centre of class 4</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; };</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; </div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; N; i++) {</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="comment">// select a random class for the point</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordtype">int</span> cls = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a>() % num_classes;</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="comment">// create random coordinates (x,y,z) around the centre of the class</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[0][i][0] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(centres[cls][0] - R, centres[cls][0] + R);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[0][i][1] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(centres[cls][1] - R, centres[cls][1] + R);</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; </div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="comment">/* The follosing can also be used</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment"> for (int j = 0; j &lt; 2; j++)</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment"> data[i][j] = _random(centres[class][j] - R, centres[class][j] + R);</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</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="../../d4/def/kohonen__som__topology_8cpp_a6b5e744876fd980a3451cbb385d4e755_cgraph.svg" width="250" 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="ab3081e021270ba21a9fd88646f6a6e26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3081e021270ba21a9fd88646f6a6e26">&#9670;&nbsp;</a></span>test_3d_classes1()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test_3d_classes1 </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; *&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a random set of points distributed in four clusters in 3D space with centroids at the points</p><ul>
<li>\((0,5, 0.5, 0.5)\)</li>
<li>\((0,5,-0.5, -0.5)\)</li>
<li>\((-0,5, 0.5, 0.5)\)</li>
<li>\((-0,5,-0.5, -0.5)\)</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>matrix to store data in </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; {</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> N = <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>-&gt;size();</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> R = 0.3; <span class="comment">// radius of cluster</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> num_classes = 4;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> centres[][3] = {</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// centres of each class cluster</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {.5, .5, .5}, <span class="comment">// centre of class 1</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; {.5, -.5, -.5}, <span class="comment">// centre of class 2</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {-.5, .5, .5}, <span class="comment">// centre of class 3</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; {-.5, -.5 - .5} <span class="comment">// centre of class 4</span></div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; };</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; N; i++) {</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="comment">// select a random class for the point</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">int</span> cls = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a>() % num_classes;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="comment">// create random coordinates (x,y,z) around the centre of the class</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[0][i][0] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(centres[cls][0] - R, centres[cls][0] + R);</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[0][i][1] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(centres[cls][1] - R, centres[cls][1] + R);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[0][i][2] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(centres[cls][2] - R, centres[cls][2] + R);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">/* The follosing can also be used</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="comment"> for (int j = 0; j &lt; 3; j++)</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="comment"> data[i][j] = _random(centres[class][j] - R, centres[class][j] + R);</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</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="../../d4/def/kohonen__som__topology_8cpp_ab3081e021270ba21a9fd88646f6a6e26_cgraph.svg" width="256" 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="a0e7435446ed7c763f7de79a468add2e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e7435446ed7c763f7de79a468add2e0">&#9670;&nbsp;</a></span>test_3d_classes2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void test_3d_classes2 </td>
<td>(</td>
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a>&lt; double &gt;&gt; *&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a random set of points distributed in four clusters in 3D space with centroids at the points</p><ul>
<li>\((0,5, 0.5, 0.5)\)</li>
<li>\((0,5,-0.5, -0.5)\)</li>
<li>\((-0,5, 0.5, 0.5)\)</li>
<li>\((-0,5,-0.5, -0.5)\)</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>matrix to store data in </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; {</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> N = <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>-&gt;size();</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> R = 0.2; <span class="comment">// radius of cluster</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> num_classes = 8;</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> centres[][3] = {</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="comment">// centres of each class cluster</span></div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; {.5, .5, .5}, <span class="comment">// centre of class 1</span></div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {.5, .5, -.5}, <span class="comment">// centre of class 2</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; {.5, -.5, .5}, <span class="comment">// centre of class 3</span></div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; {.5, -.5, -.5}, <span class="comment">// centre of class 4</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; {-.5, .5, .5}, <span class="comment">// centre of class 5</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; {-.5, .5, -.5}, <span class="comment">// centre of class 6</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; {-.5, -.5, .5}, <span class="comment">// centre of class 7</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; {-.5, -.5, -.5} <span class="comment">// centre of class 8</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; };</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; </div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor">#ifdef _OPENMP</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor">#pragma omp for</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; N; i++) {</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="comment">// select a random class for the point</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordtype">int</span> cls = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a>() % num_classes;</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; </div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// create random coordinates (x,y,z) around the centre of the class</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[0][i][0] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(centres[cls][0] - R, centres[cls][0] + R);</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[0][i][1] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(centres[cls][1] - R, centres[cls][1] + R);</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a>[0][i][2] = <a class="code" href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a>(centres[cls][2] - R, centres[cls][2] + R);</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">/* The follosing can also be used</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="comment"> for (int j = 0; j &lt; 3; j++)</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="comment"> data[i][j] = _random(centres[class][j] - R, centres[class][j] + R);</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</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="../../d4/def/kohonen__som__topology_8cpp_a0e7435446ed7c763f7de79a468add2e0_cgraph.svg" width="256" 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>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="asrand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/srand.html">std::srand</a></div><div class="ttdeci">T srand(T... args)</div></div>
<div class="ttc" id="aclock_t_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock_t.html">std::clock_t</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="akohonen__som__topology_8cpp_html_a1440a7779ac56f47a3f355ce4a8c7da0"><div class="ttname"><a href="../../d4/def/kohonen__som__topology_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0">test1</a></div><div class="ttdeci">void test1()</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:357</div></div>
<div class="ttc" id="aclock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/clock.html">std::clock</a></div><div class="ttdeci">T clock(T... args)</div></div>
<div class="ttc" id="akohonen__som__topology_8cpp_html_a6d0455dd5c30adda100e95f0423c786e"><div class="ttname"><a href="../../d4/def/kohonen__som__topology_8cpp.html#a6d0455dd5c30adda100e95f0423c786e">test3</a></div><div class="ttdeci">void test3()</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:521</div></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a></div></div>
<div class="ttc" id="amatrix__exponentiation_8cpp_html_afcf0d19607cd0edd8ae333d2b9c220c0"><div class="ttname"><a href="../../d7/d35/matrix__exponentiation_8cpp.html#afcf0d19607cd0edd8ae333d2b9c220c0">k</a></div><div class="ttdeci">ll k</div><div class="ttdef"><b>Definition:</b> matrix_exponentiation.cpp:48</div></div>
<div class="ttc" id="avalarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/valarray.html">std::valarray</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="akohonen__som__topology_8cpp_html_ab3081e021270ba21a9fd88646f6a6e26"><div class="ttname"><a href="../../d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26">test_3d_classes1</a></div><div class="ttdeci">void test_3d_classes1(std::vector&lt; std::valarray&lt; double &gt;&gt; *data)</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:397</div></div>
<div class="ttc" id="akohonen__som__topology_8cpp_html_a0283886819c7c140a023582b7269e2d0"><div class="ttname"><a href="../../d4/def/kohonen__som__topology_8cpp.html#a0283886819c7c140a023582b7269e2d0">test2</a></div><div class="ttdeci">void test2()</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:437</div></div>
<div class="ttc" id="arand_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/numeric/random/rand.html">std::rand</a></div><div class="ttdeci">T rand(T... args)</div></div>
<div class="ttc" id="agroup__machine__learning_html_ga6c606bc85a3e9fd9d010f874ad760336"><div class="ttname"><a href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336">save_2d_data</a></div><div class="ttdeci">int save_2d_data(const char *fname, const std::vector&lt; std::valarray&lt; double &gt;&gt; &amp;X)</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:60</div></div>
<div class="ttc" id="ahash__search_8cpp_html_a6e1a77282bc65ad359d753d25df23243"><div class="ttname"><a href="../../d1/df3/hash__search_8cpp.html#a6e1a77282bc65ad359d753d25df23243">data</a></div><div class="ttdeci">int data[MAX]</div><div class="ttdoc">test data</div><div class="ttdef"><b>Definition:</b> hash_search.cpp:24</div></div>
<div class="ttc" id="anamespacemachine__learning_html_a1d577f5d95b774ae97eb6838852d0df5"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5">machine_learning::save_u_matrix</a></div><div class="ttdeci">int save_u_matrix(const char *fname, const std::vector&lt; std::vector&lt; std::valarray&lt; double &gt;&gt;&gt; &amp;W)</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:133</div></div>
<div class="ttc" id="akohonen__som__topology_8cpp_html_a2256c10b16edba377b64a44b6c656908"><div class="ttname"><a href="../../d4/def/kohonen__som__topology_8cpp.html#a2256c10b16edba377b64a44b6c656908">get_clock_diff</a></div><div class="ttdeci">double get_clock_diff(clock_t start_t, clock_t end_t)</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:559</div></div>
<div class="ttc" id="atime_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/c/time.html">std::time</a></div><div class="ttdeci">T time(T... args)</div></div>
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
<div class="ttc" id="akohonen__som__topology_8cpp_html_a6b5e744876fd980a3451cbb385d4e755"><div class="ttname"><a href="../../d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755">test_2d_classes</a></div><div class="ttdeci">void test_2d_classes(std::vector&lt; std::valarray&lt; double &gt;&gt; *data)</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:318</div></div>
<div class="ttc" id="anamespacemachine__learning_html_adc731720947b4bc2ab047c141e7d0299"><div class="ttname"><a href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299">machine_learning::kohonen_som</a></div><div class="ttdeci">void kohonen_som(const std::vector&lt; std::valarray&lt; double &gt;&gt; &amp;X, std::vector&lt; std::vector&lt; std::valarray&lt; double &gt;&gt;&gt; *W, double alpha_min)</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:259</div></div>
<div class="ttc" id="akohonen__som__topology_8cpp_html_a0e7435446ed7c763f7de79a468add2e0"><div class="ttname"><a href="../../d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0">test_3d_classes2</a></div><div class="ttdeci">void test_3d_classes2(std::vector&lt; std::valarray&lt; double &gt;&gt; *data)</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:477</div></div>
<div class="ttc" id="agroup__machine__learning_html_gaf5ce14f026d6d231bef29161bac2b485"><div class="ttname"><a href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485">_random</a></div><div class="ttdeci">double _random(double a, double b)</div><div class="ttdef"><b>Definition:</b> kohonen_som_topology.cpp:48</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_3343723ae086de42ee4ca9774da3a13f.html">machine_learning</a></li><li class="navelem"><a class="el" href="../../d4/def/kohonen__som__topology_8cpp.html">kohonen_som_topology.cpp</a></li>
<li class="footer">Generated on Fri Jun 19 2020 16:06:44 for Algorithms_in_C++ 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,19 @@
var kohonen__som__topology_8cpp =
[
[ "_USE_MATH_DEFINES", "d9/d66/group__machine__learning.html#ga525335710b53cb064ca56b936120431e", null ],
[ "MIN_DISTANCE", "d4/def/kohonen__som__topology_8cpp.html#a549d41dcf9444ed7d6df1da3c73e7d16", null ],
[ "_random", "d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485", null ],
[ "get_clock_diff", "d4/def/kohonen__som__topology_8cpp.html#a2256c10b16edba377b64a44b6c656908", null ],
[ "get_min_2d", "d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f", null ],
[ "kohonen_som", "d4/def/kohonen__som__topology_8cpp.html#adc731720947b4bc2ab047c141e7d0299", null ],
[ "main", "d4/def/kohonen__som__topology_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627", null ],
[ "save_2d_data", "d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336", null ],
[ "save_u_matrix", "d4/def/kohonen__som__topology_8cpp.html#a1d577f5d95b774ae97eb6838852d0df5", null ],
[ "test1", "d4/def/kohonen__som__topology_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0", null ],
[ "test2", "d4/def/kohonen__som__topology_8cpp.html#a0283886819c7c140a023582b7269e2d0", null ],
[ "test3", "d4/def/kohonen__som__topology_8cpp.html#a6d0455dd5c30adda100e95f0423c786e", null ],
[ "test_2d_classes", "d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755", null ],
[ "test_3d_classes1", "d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26", null ],
[ "test_3d_classes2", "d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0", null ],
[ "update_weights", "d4/def/kohonen__som__topology_8cpp.html#ac4010fe3a52a74e8b5b1aaadfe38b46f", null ]
];

View File

@@ -0,0 +1,25 @@
<map id="test2" name="test2">
<area shape="rect" id="node1" title=" " alt="" coords="5,153,56,180"/>
<area shape="rect" id="node2" href="$d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" title=" " alt="" coords="413,15,485,41"/>
<area shape="rect" id="node3" href="$d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" title=" " alt="" coords="104,128,316,155"/>
<area shape="rect" id="node11" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/max.html#" title=" " alt="" coords="591,183,664,209"/>
<area shape="rect" id="node14" href="$d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" title=" " alt="" coords="159,259,261,285"/>
<area shape="rect" id="node18" href="$d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" title=" " alt="" coords="131,403,289,445"/>
<area shape="rect" id="node22" href="$d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26" title=" " alt="" coords="148,65,272,92"/>
<area shape="rect" id="node4" href="$d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" title=" " alt="" coords="364,117,535,158"/>
<area shape="rect" id="node5" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/exp.html#" title=" " alt="" coords="593,31,662,57"/>
<area shape="rect" id="node6" href="$d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" title=" " alt="" coords="583,81,672,108"/>
<area shape="rect" id="node12" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min.html#" title=" " alt="" coords="593,132,662,159"/>
<area shape="rect" id="node13" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/sqrt.html#" title=" " alt="" coords="592,335,663,361"/>
<area shape="rect" id="node7" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/begin.html#" title=" " alt="" coords="742,5,821,32"/>
<area shape="rect" id="node8" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/distance.html#" title=" " alt="" coords="733,56,830,83"/>
<area shape="rect" id="node9" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/end.html#" title=" " alt="" coords="747,107,816,133"/>
<area shape="rect" id="node10" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min_element.html#" title=" " alt="" coords="720,157,843,184"/>
<area shape="rect" id="node15" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="380,335,519,361"/>
<area shape="rect" id="node16" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/is_open.html#" title=" " alt="" coords="373,284,525,311"/>
<area shape="rect" id="node17" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/open.html#" title=" " alt="" coords="382,233,517,260"/>
<area shape="rect" id="node19" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/c/perror.html#" title=" " alt="" coords="409,487,490,513"/>
<area shape="rect" id="node20" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/pow.html#" title=" " alt="" coords="413,537,485,564"/>
<area shape="rect" id="node21" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/c/fprintf.html#" title=" " alt="" coords="404,385,495,412"/>
<area shape="rect" id="node23" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="413,65,486,92"/>
</map>

View File

@@ -0,0 +1 @@
2212341558ef92b106f3c22b810aefd9

View File

@@ -0,0 +1,466 @@
<?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: test2 Pages: 1 -->
<!--zoomable 427 -->
<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 = 636;
var viewHeight = 427;
var sectionId = 'dynsection-3';
</script>
<script xlink:href="../../svgpan.js"/>
<svg id="graph" class="graph">
<g id="viewport">
<title>test2</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-423 632,-423 632,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,-288.5 0,-307.5 38,-307.5 38,-288.5 0,-288.5"/>
<text text-anchor="middle" x="19" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-392.5 306,-411.5 360,-411.5 360,-392.5 306,-392.5"/>
<text text-anchor="middle" x="333" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M22.94,-307.76C29.06,-326.16 45.04,-365.68 74,-383 143.56,-424.61 243.26,-417 296.04,-408.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="296.64,-412.33 305.95,-407.27 295.51,-405.42 296.64,-412.33"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-307.5 74,-326.5 233,-326.5 233,-307.5 74,-307.5"/>
<text text-anchor="middle" x="153.5" y="-314.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::kohonen_som</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="M38.15,-300.6C48.4,-302.07 61.98,-304.02 76.2,-306.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="75.71,-309.52 86.11,-307.48 76.7,-302.6 75.71,-309.52"/>
</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/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="439,-266.5 439,-285.5 494,-285.5 494,-266.5 439,-266.5"/>
<text text-anchor="middle" x="466.5" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<title>Node1&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M38.02,-297.11C104.64,-293.82 337.93,-282.3 428.84,-277.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="429.13,-281.3 438.95,-277.31 428.79,-274.31 429.13,-281.3"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="115,-209.5 115,-228.5 192,-228.5 192,-209.5 115,-209.5"/>
<text text-anchor="middle" x="153.5" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">save_2d_data</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node14 -->
<g id="edge14" class="edge">
<title>Node1&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M33.55,-288.49C44.34,-281.03 59.93,-270.52 74,-262 90.62,-251.93 109.73,-241.44 124.94,-233.34"/>
<polygon fill="midnightblue" stroke="midnightblue" points="126.64,-236.4 133.84,-228.63 123.37,-230.21 126.64,-236.4"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="94,-90 94,-120 213,-120 213,-90 94,-90"/>
<text text-anchor="start" x="102" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::save</text>
<text text-anchor="middle" x="153.5" y="-97" font-family="Helvetica,sans-Serif" font-size="10.00">_u_matrix</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node1&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M24.51,-288.47C33.14,-270.55 53.03,-230.84 74,-200 91.71,-173.95 115.01,-146.45 131.62,-127.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="134.43,-129.88 138.51,-120.1 129.22,-125.2 134.43,-129.88"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="107,-354.5 107,-373.5 200,-373.5 200,-354.5 107,-354.5"/>
<text text-anchor="middle" x="153.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes1</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node22 -->
<g id="edge24" class="edge">
<title>Node1&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M31.83,-307.75C42.39,-316.09 58.53,-327.99 74,-336 85.24,-341.82 97.97,-346.94 109.85,-351.15"/>
<polygon fill="midnightblue" stroke="midnightblue" points="108.99,-354.55 119.59,-354.46 111.25,-347.92 108.99,-354.55"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="269,-305 269,-335 397,-335 397,-305 269,-305"/>
<text text-anchor="start" x="277" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::update</text>
<text text-anchor="middle" x="333" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">_weights</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M233.13,-318.33C241.63,-318.47 250.26,-318.62 258.7,-318.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="258.82,-322.26 268.88,-318.93 258.94,-315.26 258.82,-322.26"/>
</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/numeric/math/exp.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-380.5 440.5,-399.5 492.5,-399.5 492.5,-380.5 440.5,-380.5"/>
<text text-anchor="middle" x="466.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exp</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M376.35,-335.12C383.38,-338.11 390.5,-341.44 397,-345 414.31,-354.49 416.46,-360.23 433,-371 435.16,-372.4 437.42,-373.83 439.7,-375.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="438.06,-378.32 448.44,-380.44 441.65,-372.31 438.06,-378.32"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="433,-342.5 433,-361.5 500,-361.5 500,-342.5 433,-342.5"/>
<text text-anchor="middle" x="466.5" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00">get_min_2d</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M395.9,-335.06C405.09,-337.3 414.39,-339.56 423.06,-341.67"/>
<polygon fill="midnightblue" stroke="midnightblue" points="422.37,-345.11 432.91,-344.07 424.02,-338.3 422.37,-345.11"/>
</g>
<!-- Node4&#45;&gt;Node11 -->
<g id="edge10" class="edge">
<title>Node4&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M378.89,-304.98C395.24,-299.51 413.52,-293.39 429.06,-288.19"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.45,-291.42 438.82,-284.93 428.23,-284.78 430.45,-291.42"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-304.5 440.5,-323.5 492.5,-323.5 492.5,-304.5 440.5,-304.5"/>
<text text-anchor="middle" x="466.5" y="-311.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node12 -->
<g id="edge11" class="edge">
<title>Node4&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M397.05,-317.12C408.4,-316.61 419.86,-316.08 430.07,-315.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.37,-319.11 440.2,-315.15 430.05,-312.11 430.37,-319.11"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440,-152.5 440,-171.5 493,-171.5 493,-152.5 440,-152.5"/>
<text text-anchor="middle" x="466.5" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sqrt</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node13 -->
<g id="edge12" class="edge">
<title>Node4&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M350.52,-304.88C363.68,-292.52 382.26,-274.32 397,-257 418.63,-231.58 440.68,-199.7 453.73,-180.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="456.78,-181.82 459.36,-171.54 450.94,-177.97 456.78,-181.82"/>
</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/iterator/begin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="552.5,-399.5 552.5,-418.5 611.5,-418.5 611.5,-399.5 552.5,-399.5"/>
<text text-anchor="middle" x="582" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::begin</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="M483.57,-361.56C497.29,-369.56 517.66,-381.07 536,-390 539.77,-391.84 543.77,-393.67 547.76,-395.44"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-398.66 556.97,-399.41 549.17,-392.24 546.4,-398.66"/>
</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/iterator/distance.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="545.5,-361.5 545.5,-380.5 618.5,-380.5 618.5,-361.5 545.5,-361.5"/>
<text text-anchor="middle" x="582" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::distance</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="M500.02,-357.44C510.97,-359.28 523.39,-361.36 535.16,-363.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="534.85,-366.82 545.29,-365.02 536,-359.92 534.85,-366.82"/>
</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/iterator/end.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="556,-323.5 556,-342.5 608,-342.5 608,-323.5 556,-323.5"/>
<text text-anchor="middle" x="582" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::end</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M500.02,-346.56C514.26,-344.17 530.99,-341.37 545.54,-338.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-342.34 555.68,-337.24 545.24,-335.44 546.4,-342.34"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min_element.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="536,-285.5 536,-304.5 628,-304.5 628,-285.5 536,-285.5"/>
<text text-anchor="middle" x="582" y="-292.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min_element</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node6&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M483.57,-342.44C497.29,-334.44 517.66,-322.93 536,-314 539.77,-312.16 543.77,-310.33 547.76,-308.56"/>
<polygon fill="midnightblue" stroke="midnightblue" points="549.17,-311.76 556.97,-304.59 546.4,-305.34 549.17,-311.76"/>
</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/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="281,-152.5 281,-171.5 385,-171.5 385,-152.5 281,-152.5"/>
<text text-anchor="middle" x="333" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</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="M182.66,-209.41C205.8,-201.6 239.45,-190.36 269,-181 275.66,-178.89 282.73,-176.71 289.64,-174.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="291.02,-177.84 299.57,-171.59 288.99,-171.14 291.02,-177.84"/>
</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/io/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="276,-190.5 276,-209.5 390,-209.5 390,-190.5 276,-190.5"/>
<text text-anchor="middle" x="333" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node16 -->
<g id="edge16" class="edge">
<title>Node14&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M192.14,-214.97C213.52,-212.68 240.9,-209.75 265.75,-207.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="266.29,-210.55 275.86,-206.01 265.54,-203.59 266.29,-210.55"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="282.5,-228.5 282.5,-247.5 383.5,-247.5 383.5,-228.5 282.5,-228.5"/>
<text text-anchor="middle" x="333" y="-235.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node17 -->
<g id="edge17" class="edge">
<title>Node14&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M192.14,-223.03C215.42,-225.52 245.82,-228.78 272.33,-231.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="271.96,-235.09 282.28,-232.68 272.71,-228.13 271.96,-235.09"/>
</g>
<!-- Node18&#45;&gt;Node13 -->
<g id="edge23" class="edge">
<title>Node18&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M213.25,-94.09C263.59,-87.26 337.22,-83.38 397,-105 418.69,-112.84 438.34,-130.88 450.98,-144.58"/>
<polygon fill="midnightblue" stroke="midnightblue" points="448.66,-147.23 457.9,-152.42 453.91,-142.6 448.66,-147.23"/>
</g>
<!-- Node18&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<title>Node18&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M199,-120.08C220.16,-127.18 245.84,-135.67 269,-143 275.66,-145.11 282.73,-147.29 289.64,-149.4"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.99,-152.86 299.57,-152.41 291.02,-146.16 288.99,-152.86"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/perror.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="302.5,-38.5 302.5,-57.5 363.5,-57.5 363.5,-38.5 302.5,-38.5"/>
<text text-anchor="middle" x="333" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::perror</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node19 -->
<g id="edge20" class="edge">
<title>Node18&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M201.6,-89.87C229.92,-80.78 265.57,-69.33 292.43,-60.71"/>
<polygon fill="midnightblue" stroke="midnightblue" points="293.81,-63.94 302.26,-57.55 291.67,-57.28 293.81,-63.94"/>
</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/numeric/math/pow.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-0.5 306,-19.5 360,-19.5 360,-0.5 306,-0.5"/>
<text text-anchor="middle" x="333" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::pow</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node20 -->
<g id="edge21" class="edge">
<title>Node18&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M173.32,-89.98C195.2,-73.13 232.94,-45.95 269,-29 277.49,-25.01 287.01,-21.62 296.03,-18.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="297.28,-22.15 305.92,-16.02 295.35,-15.42 297.28,-22.15"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/fprintf.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="299,-114.5 299,-133.5 367,-133.5 367,-114.5 299,-114.5"/>
<text text-anchor="middle" x="333" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::snprintf</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node21 -->
<g id="edge22" class="edge">
<title>Node18&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M213.11,-111.27C237.81,-113.92 266.03,-116.94 288.78,-119.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.5,-122.86 298.82,-120.45 289.25,-115.9 288.5,-122.86"/>
</g>
<!-- Node22&#45;&gt;Node2 -->
<g id="edge25" class="edge">
<title>Node22&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M199.29,-373.59C229.16,-379.98 267.92,-388.28 295.83,-394.26"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.44,-397.75 305.95,-396.42 296.91,-390.91 295.44,-397.75"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="305.5,-354.5 305.5,-373.5 360.5,-373.5 360.5,-354.5 305.5,-354.5"/>
<text text-anchor="middle" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</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="M200.21,-364C229.81,-364 267.84,-364 295.44,-364"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.46,-367.5 305.46,-364 295.46,-360.5 295.46,-367.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="kohonen__som__topology_8cpp_a0283886819c7c140a023582b7269e2d0_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: 24 KiB

View File

@@ -0,0 +1,378 @@
<?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: test2 Pages: 1 -->
<svg width="636pt" height="427pt"
viewBox="0.00 0.00 636.00 427.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 423)">
<title>test2</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-423 632,-423 632,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,-288.5 0,-307.5 38,-307.5 38,-288.5 0,-288.5"/>
<text text-anchor="middle" x="19" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-392.5 306,-411.5 360,-411.5 360,-392.5 306,-392.5"/>
<text text-anchor="middle" x="333" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M22.94,-307.76C29.06,-326.16 45.04,-365.68 74,-383 143.56,-424.61 243.26,-417 296.04,-408.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="296.64,-412.33 305.95,-407.27 295.51,-405.42 296.64,-412.33"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-307.5 74,-326.5 233,-326.5 233,-307.5 74,-307.5"/>
<text text-anchor="middle" x="153.5" y="-314.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::kohonen_som</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="M38.15,-300.6C48.4,-302.07 61.98,-304.02 76.2,-306.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="75.71,-309.52 86.11,-307.48 76.7,-302.6 75.71,-309.52"/>
</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/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="439,-266.5 439,-285.5 494,-285.5 494,-266.5 439,-266.5"/>
<text text-anchor="middle" x="466.5" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<title>Node1&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M38.02,-297.11C104.64,-293.82 337.93,-282.3 428.84,-277.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="429.13,-281.3 438.95,-277.31 428.79,-274.31 429.13,-281.3"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="115,-209.5 115,-228.5 192,-228.5 192,-209.5 115,-209.5"/>
<text text-anchor="middle" x="153.5" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">save_2d_data</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node14 -->
<g id="edge14" class="edge">
<title>Node1&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M33.55,-288.49C44.34,-281.03 59.93,-270.52 74,-262 90.62,-251.93 109.73,-241.44 124.94,-233.34"/>
<polygon fill="midnightblue" stroke="midnightblue" points="126.64,-236.4 133.84,-228.63 123.37,-230.21 126.64,-236.4"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="94,-90 94,-120 213,-120 213,-90 94,-90"/>
<text text-anchor="start" x="102" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::save</text>
<text text-anchor="middle" x="153.5" y="-97" font-family="Helvetica,sans-Serif" font-size="10.00">_u_matrix</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node1&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M24.51,-288.47C33.14,-270.55 53.03,-230.84 74,-200 91.71,-173.95 115.01,-146.45 131.62,-127.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="134.43,-129.88 138.51,-120.1 129.22,-125.2 134.43,-129.88"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="107,-354.5 107,-373.5 200,-373.5 200,-354.5 107,-354.5"/>
<text text-anchor="middle" x="153.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes1</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node22 -->
<g id="edge24" class="edge">
<title>Node1&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M31.83,-307.75C42.39,-316.09 58.53,-327.99 74,-336 85.24,-341.82 97.97,-346.94 109.85,-351.15"/>
<polygon fill="midnightblue" stroke="midnightblue" points="108.99,-354.55 119.59,-354.46 111.25,-347.92 108.99,-354.55"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="269,-305 269,-335 397,-335 397,-305 269,-305"/>
<text text-anchor="start" x="277" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::update</text>
<text text-anchor="middle" x="333" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">_weights</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M233.13,-318.33C241.63,-318.47 250.26,-318.62 258.7,-318.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="258.82,-322.26 268.88,-318.93 258.94,-315.26 258.82,-322.26"/>
</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/numeric/math/exp.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-380.5 440.5,-399.5 492.5,-399.5 492.5,-380.5 440.5,-380.5"/>
<text text-anchor="middle" x="466.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exp</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M376.35,-335.12C383.38,-338.11 390.5,-341.44 397,-345 414.31,-354.49 416.46,-360.23 433,-371 435.16,-372.4 437.42,-373.83 439.7,-375.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="438.06,-378.32 448.44,-380.44 441.65,-372.31 438.06,-378.32"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="433,-342.5 433,-361.5 500,-361.5 500,-342.5 433,-342.5"/>
<text text-anchor="middle" x="466.5" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00">get_min_2d</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M395.9,-335.06C405.09,-337.3 414.39,-339.56 423.06,-341.67"/>
<polygon fill="midnightblue" stroke="midnightblue" points="422.37,-345.11 432.91,-344.07 424.02,-338.3 422.37,-345.11"/>
</g>
<!-- Node4&#45;&gt;Node11 -->
<g id="edge10" class="edge">
<title>Node4&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M378.89,-304.98C395.24,-299.51 413.52,-293.39 429.06,-288.19"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.45,-291.42 438.82,-284.93 428.23,-284.78 430.45,-291.42"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-304.5 440.5,-323.5 492.5,-323.5 492.5,-304.5 440.5,-304.5"/>
<text text-anchor="middle" x="466.5" y="-311.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node12 -->
<g id="edge11" class="edge">
<title>Node4&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M397.05,-317.12C408.4,-316.61 419.86,-316.08 430.07,-315.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.37,-319.11 440.2,-315.15 430.05,-312.11 430.37,-319.11"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440,-152.5 440,-171.5 493,-171.5 493,-152.5 440,-152.5"/>
<text text-anchor="middle" x="466.5" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sqrt</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node13 -->
<g id="edge12" class="edge">
<title>Node4&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M350.52,-304.88C363.68,-292.52 382.26,-274.32 397,-257 418.63,-231.58 440.68,-199.7 453.73,-180.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="456.78,-181.82 459.36,-171.54 450.94,-177.97 456.78,-181.82"/>
</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/iterator/begin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="552.5,-399.5 552.5,-418.5 611.5,-418.5 611.5,-399.5 552.5,-399.5"/>
<text text-anchor="middle" x="582" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::begin</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="M483.57,-361.56C497.29,-369.56 517.66,-381.07 536,-390 539.77,-391.84 543.77,-393.67 547.76,-395.44"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-398.66 556.97,-399.41 549.17,-392.24 546.4,-398.66"/>
</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/iterator/distance.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="545.5,-361.5 545.5,-380.5 618.5,-380.5 618.5,-361.5 545.5,-361.5"/>
<text text-anchor="middle" x="582" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::distance</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="M500.02,-357.44C510.97,-359.28 523.39,-361.36 535.16,-363.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="534.85,-366.82 545.29,-365.02 536,-359.92 534.85,-366.82"/>
</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/iterator/end.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="556,-323.5 556,-342.5 608,-342.5 608,-323.5 556,-323.5"/>
<text text-anchor="middle" x="582" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::end</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M500.02,-346.56C514.26,-344.17 530.99,-341.37 545.54,-338.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-342.34 555.68,-337.24 545.24,-335.44 546.4,-342.34"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min_element.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="536,-285.5 536,-304.5 628,-304.5 628,-285.5 536,-285.5"/>
<text text-anchor="middle" x="582" y="-292.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min_element</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node6&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M483.57,-342.44C497.29,-334.44 517.66,-322.93 536,-314 539.77,-312.16 543.77,-310.33 547.76,-308.56"/>
<polygon fill="midnightblue" stroke="midnightblue" points="549.17,-311.76 556.97,-304.59 546.4,-305.34 549.17,-311.76"/>
</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/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="281,-152.5 281,-171.5 385,-171.5 385,-152.5 281,-152.5"/>
<text text-anchor="middle" x="333" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</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="M182.66,-209.41C205.8,-201.6 239.45,-190.36 269,-181 275.66,-178.89 282.73,-176.71 289.64,-174.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="291.02,-177.84 299.57,-171.59 288.99,-171.14 291.02,-177.84"/>
</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/io/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="276,-190.5 276,-209.5 390,-209.5 390,-190.5 276,-190.5"/>
<text text-anchor="middle" x="333" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node16 -->
<g id="edge16" class="edge">
<title>Node14&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M192.14,-214.97C213.52,-212.68 240.9,-209.75 265.75,-207.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="266.29,-210.55 275.86,-206.01 265.54,-203.59 266.29,-210.55"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="282.5,-228.5 282.5,-247.5 383.5,-247.5 383.5,-228.5 282.5,-228.5"/>
<text text-anchor="middle" x="333" y="-235.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node17 -->
<g id="edge17" class="edge">
<title>Node14&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M192.14,-223.03C215.42,-225.52 245.82,-228.78 272.33,-231.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="271.96,-235.09 282.28,-232.68 272.71,-228.13 271.96,-235.09"/>
</g>
<!-- Node18&#45;&gt;Node13 -->
<g id="edge23" class="edge">
<title>Node18&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M213.25,-94.09C263.59,-87.26 337.22,-83.38 397,-105 418.69,-112.84 438.34,-130.88 450.98,-144.58"/>
<polygon fill="midnightblue" stroke="midnightblue" points="448.66,-147.23 457.9,-152.42 453.91,-142.6 448.66,-147.23"/>
</g>
<!-- Node18&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<title>Node18&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M199,-120.08C220.16,-127.18 245.84,-135.67 269,-143 275.66,-145.11 282.73,-147.29 289.64,-149.4"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.99,-152.86 299.57,-152.41 291.02,-146.16 288.99,-152.86"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/perror.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="302.5,-38.5 302.5,-57.5 363.5,-57.5 363.5,-38.5 302.5,-38.5"/>
<text text-anchor="middle" x="333" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::perror</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node19 -->
<g id="edge20" class="edge">
<title>Node18&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M201.6,-89.87C229.92,-80.78 265.57,-69.33 292.43,-60.71"/>
<polygon fill="midnightblue" stroke="midnightblue" points="293.81,-63.94 302.26,-57.55 291.67,-57.28 293.81,-63.94"/>
</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/numeric/math/pow.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-0.5 306,-19.5 360,-19.5 360,-0.5 306,-0.5"/>
<text text-anchor="middle" x="333" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::pow</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node20 -->
<g id="edge21" class="edge">
<title>Node18&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M173.32,-89.98C195.2,-73.13 232.94,-45.95 269,-29 277.49,-25.01 287.01,-21.62 296.03,-18.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="297.28,-22.15 305.92,-16.02 295.35,-15.42 297.28,-22.15"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/fprintf.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="299,-114.5 299,-133.5 367,-133.5 367,-114.5 299,-114.5"/>
<text text-anchor="middle" x="333" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::snprintf</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node21 -->
<g id="edge22" class="edge">
<title>Node18&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M213.11,-111.27C237.81,-113.92 266.03,-116.94 288.78,-119.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.5,-122.86 298.82,-120.45 289.25,-115.9 288.5,-122.86"/>
</g>
<!-- Node22&#45;&gt;Node2 -->
<g id="edge25" class="edge">
<title>Node22&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M199.29,-373.59C229.16,-379.98 267.92,-388.28 295.83,-394.26"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.44,-397.75 305.95,-396.42 296.91,-390.91 295.44,-397.75"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="305.5,-354.5 305.5,-373.5 360.5,-373.5 360.5,-354.5 305.5,-354.5"/>
<text text-anchor="middle" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</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="M200.21,-364C229.81,-364 267.84,-364 295.44,-364"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.46,-367.5 305.46,-364 295.46,-360.5 295.46,-367.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,5 @@
<map id="test_3d_classes2" name="test_3d_classes2">
<area shape="rect" id="node1" title=" " alt="" coords="5,31,129,57"/>
<area shape="rect" id="node2" href="$d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" title=" " alt="" coords="178,5,250,32"/>
<area shape="rect" id="node3" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="177,56,251,83"/>
</map>

View File

@@ -0,0 +1 @@
b88cf6ab42c98e33a2a6b6263d3379c3

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: test_3d_classes2 Pages: 1 -->
<svg width="192pt" height="66pt"
viewBox="0.00 0.00 192.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>test_3d_classes2</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-62 188,-62 188,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 93,-38.5 93,-19.5 0,-19.5"/>
<text text-anchor="middle" x="46.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes2</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="129.5,-38.5 129.5,-57.5 183.5,-57.5 183.5,-38.5 129.5,-38.5"/>
<text text-anchor="middle" x="156.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M93.3,-37.06C101.95,-38.58 110.89,-40.15 119.2,-41.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="118.86,-45.11 129.32,-43.39 120.08,-38.21 118.86,-45.11"/>
</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/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="129,-0.5 129,-19.5 184,-19.5 184,-0.5 129,-0.5"/>
<text text-anchor="middle" x="156.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</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="M93.3,-20.94C101.79,-19.45 110.56,-17.91 118.73,-16.47"/>
<polygon fill="midnightblue" stroke="midnightblue" points="119.47,-19.89 128.71,-14.71 118.25,-13 119.47,-19.89"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,25 @@
<map id="test1" name="test1">
<area shape="rect" id="node1" title=" " alt="" coords="5,153,56,180"/>
<area shape="rect" id="node2" href="$d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" title=" " alt="" coords="413,15,485,41"/>
<area shape="rect" id="node3" href="$d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" title=" " alt="" coords="104,128,316,155"/>
<area shape="rect" id="node11" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/max.html#" title=" " alt="" coords="591,183,664,209"/>
<area shape="rect" id="node14" href="$d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" title=" " alt="" coords="159,259,261,285"/>
<area shape="rect" id="node18" href="$d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" title=" " alt="" coords="131,403,289,445"/>
<area shape="rect" id="node22" href="$d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755" title=" " alt="" coords="151,65,269,92"/>
<area shape="rect" id="node4" href="$d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" title=" " alt="" coords="364,117,535,158"/>
<area shape="rect" id="node5" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/exp.html#" title=" " alt="" coords="593,31,662,57"/>
<area shape="rect" id="node6" href="$d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" title=" " alt="" coords="583,81,672,108"/>
<area shape="rect" id="node12" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min.html#" title=" " alt="" coords="593,132,662,159"/>
<area shape="rect" id="node13" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/sqrt.html#" title=" " alt="" coords="592,335,663,361"/>
<area shape="rect" id="node7" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/begin.html#" title=" " alt="" coords="742,5,821,32"/>
<area shape="rect" id="node8" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/distance.html#" title=" " alt="" coords="733,56,830,83"/>
<area shape="rect" id="node9" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/end.html#" title=" " alt="" coords="747,107,816,133"/>
<area shape="rect" id="node10" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min_element.html#" title=" " alt="" coords="720,157,843,184"/>
<area shape="rect" id="node15" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="380,335,519,361"/>
<area shape="rect" id="node16" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/is_open.html#" title=" " alt="" coords="373,284,525,311"/>
<area shape="rect" id="node17" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/open.html#" title=" " alt="" coords="382,233,517,260"/>
<area shape="rect" id="node19" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/c/perror.html#" title=" " alt="" coords="409,487,490,513"/>
<area shape="rect" id="node20" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/pow.html#" title=" " alt="" coords="413,537,485,564"/>
<area shape="rect" id="node21" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/c/fprintf.html#" title=" " alt="" coords="404,385,495,412"/>
<area shape="rect" id="node23" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="413,65,486,92"/>
</map>

View File

@@ -0,0 +1 @@
244b6433450f7a6dfcf4edcfb0b19853

View File

@@ -0,0 +1,466 @@
<?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: test1 Pages: 1 -->
<!--zoomable 427 -->
<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 = 636;
var viewHeight = 427;
var sectionId = 'dynsection-2';
</script>
<script xlink:href="../../svgpan.js"/>
<svg id="graph" class="graph">
<g id="viewport">
<title>test1</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-423 632,-423 632,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,-288.5 0,-307.5 38,-307.5 38,-288.5 0,-288.5"/>
<text text-anchor="middle" x="19" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">test1</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-392.5 306,-411.5 360,-411.5 360,-392.5 306,-392.5"/>
<text text-anchor="middle" x="333" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M22.94,-307.76C29.06,-326.16 45.04,-365.68 74,-383 143.56,-424.61 243.26,-417 296.04,-408.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="296.64,-412.33 305.95,-407.27 295.51,-405.42 296.64,-412.33"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-307.5 74,-326.5 233,-326.5 233,-307.5 74,-307.5"/>
<text text-anchor="middle" x="153.5" y="-314.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::kohonen_som</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="M38.15,-300.6C48.4,-302.07 61.98,-304.02 76.2,-306.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="75.71,-309.52 86.11,-307.48 76.7,-302.6 75.71,-309.52"/>
</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/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="439,-266.5 439,-285.5 494,-285.5 494,-266.5 439,-266.5"/>
<text text-anchor="middle" x="466.5" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<title>Node1&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M38.02,-297.11C104.64,-293.82 337.93,-282.3 428.84,-277.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="429.13,-281.3 438.95,-277.31 428.79,-274.31 429.13,-281.3"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="115,-209.5 115,-228.5 192,-228.5 192,-209.5 115,-209.5"/>
<text text-anchor="middle" x="153.5" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">save_2d_data</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node14 -->
<g id="edge14" class="edge">
<title>Node1&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M33.55,-288.49C44.34,-281.03 59.93,-270.52 74,-262 90.62,-251.93 109.73,-241.44 124.94,-233.34"/>
<polygon fill="midnightblue" stroke="midnightblue" points="126.64,-236.4 133.84,-228.63 123.37,-230.21 126.64,-236.4"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="94,-90 94,-120 213,-120 213,-90 94,-90"/>
<text text-anchor="start" x="102" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::save</text>
<text text-anchor="middle" x="153.5" y="-97" font-family="Helvetica,sans-Serif" font-size="10.00">_u_matrix</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node1&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M24.51,-288.47C33.14,-270.55 53.03,-230.84 74,-200 91.71,-173.95 115.01,-146.45 131.62,-127.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="134.43,-129.88 138.51,-120.1 129.22,-125.2 134.43,-129.88"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="109.5,-354.5 109.5,-373.5 197.5,-373.5 197.5,-354.5 109.5,-354.5"/>
<text text-anchor="middle" x="153.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">test_2d_classes</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node22 -->
<g id="edge24" class="edge">
<title>Node1&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M31.83,-307.75C42.39,-316.09 58.53,-327.99 74,-336 85.24,-341.82 97.97,-346.94 109.85,-351.15"/>
<polygon fill="midnightblue" stroke="midnightblue" points="108.99,-354.55 119.59,-354.46 111.25,-347.92 108.99,-354.55"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="269,-305 269,-335 397,-335 397,-305 269,-305"/>
<text text-anchor="start" x="277" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::update</text>
<text text-anchor="middle" x="333" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">_weights</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M233.13,-318.33C241.63,-318.47 250.26,-318.62 258.7,-318.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="258.82,-322.26 268.88,-318.93 258.94,-315.26 258.82,-322.26"/>
</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/numeric/math/exp.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-380.5 440.5,-399.5 492.5,-399.5 492.5,-380.5 440.5,-380.5"/>
<text text-anchor="middle" x="466.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exp</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M376.35,-335.12C383.38,-338.11 390.5,-341.44 397,-345 414.31,-354.49 416.46,-360.23 433,-371 435.16,-372.4 437.42,-373.83 439.7,-375.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="438.06,-378.32 448.44,-380.44 441.65,-372.31 438.06,-378.32"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="433,-342.5 433,-361.5 500,-361.5 500,-342.5 433,-342.5"/>
<text text-anchor="middle" x="466.5" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00">get_min_2d</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M395.9,-335.06C405.09,-337.3 414.39,-339.56 423.06,-341.67"/>
<polygon fill="midnightblue" stroke="midnightblue" points="422.37,-345.11 432.91,-344.07 424.02,-338.3 422.37,-345.11"/>
</g>
<!-- Node4&#45;&gt;Node11 -->
<g id="edge10" class="edge">
<title>Node4&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M378.89,-304.98C395.24,-299.51 413.52,-293.39 429.06,-288.19"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.45,-291.42 438.82,-284.93 428.23,-284.78 430.45,-291.42"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-304.5 440.5,-323.5 492.5,-323.5 492.5,-304.5 440.5,-304.5"/>
<text text-anchor="middle" x="466.5" y="-311.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node12 -->
<g id="edge11" class="edge">
<title>Node4&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M397.05,-317.12C408.4,-316.61 419.86,-316.08 430.07,-315.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.37,-319.11 440.2,-315.15 430.05,-312.11 430.37,-319.11"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440,-152.5 440,-171.5 493,-171.5 493,-152.5 440,-152.5"/>
<text text-anchor="middle" x="466.5" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sqrt</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node13 -->
<g id="edge12" class="edge">
<title>Node4&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M350.52,-304.88C363.68,-292.52 382.26,-274.32 397,-257 418.63,-231.58 440.68,-199.7 453.73,-180.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="456.78,-181.82 459.36,-171.54 450.94,-177.97 456.78,-181.82"/>
</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/iterator/begin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="552.5,-399.5 552.5,-418.5 611.5,-418.5 611.5,-399.5 552.5,-399.5"/>
<text text-anchor="middle" x="582" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::begin</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="M483.57,-361.56C497.29,-369.56 517.66,-381.07 536,-390 539.77,-391.84 543.77,-393.67 547.76,-395.44"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-398.66 556.97,-399.41 549.17,-392.24 546.4,-398.66"/>
</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/iterator/distance.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="545.5,-361.5 545.5,-380.5 618.5,-380.5 618.5,-361.5 545.5,-361.5"/>
<text text-anchor="middle" x="582" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::distance</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="M500.02,-357.44C510.97,-359.28 523.39,-361.36 535.16,-363.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="534.85,-366.82 545.29,-365.02 536,-359.92 534.85,-366.82"/>
</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/iterator/end.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="556,-323.5 556,-342.5 608,-342.5 608,-323.5 556,-323.5"/>
<text text-anchor="middle" x="582" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::end</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M500.02,-346.56C514.26,-344.17 530.99,-341.37 545.54,-338.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-342.34 555.68,-337.24 545.24,-335.44 546.4,-342.34"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min_element.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="536,-285.5 536,-304.5 628,-304.5 628,-285.5 536,-285.5"/>
<text text-anchor="middle" x="582" y="-292.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min_element</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node6&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M483.57,-342.44C497.29,-334.44 517.66,-322.93 536,-314 539.77,-312.16 543.77,-310.33 547.76,-308.56"/>
<polygon fill="midnightblue" stroke="midnightblue" points="549.17,-311.76 556.97,-304.59 546.4,-305.34 549.17,-311.76"/>
</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/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="281,-152.5 281,-171.5 385,-171.5 385,-152.5 281,-152.5"/>
<text text-anchor="middle" x="333" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</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="M182.66,-209.41C205.8,-201.6 239.45,-190.36 269,-181 275.66,-178.89 282.73,-176.71 289.64,-174.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="291.02,-177.84 299.57,-171.59 288.99,-171.14 291.02,-177.84"/>
</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/io/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="276,-190.5 276,-209.5 390,-209.5 390,-190.5 276,-190.5"/>
<text text-anchor="middle" x="333" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node16 -->
<g id="edge16" class="edge">
<title>Node14&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M192.14,-214.97C213.52,-212.68 240.9,-209.75 265.75,-207.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="266.29,-210.55 275.86,-206.01 265.54,-203.59 266.29,-210.55"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="282.5,-228.5 282.5,-247.5 383.5,-247.5 383.5,-228.5 282.5,-228.5"/>
<text text-anchor="middle" x="333" y="-235.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node17 -->
<g id="edge17" class="edge">
<title>Node14&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M192.14,-223.03C215.42,-225.52 245.82,-228.78 272.33,-231.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="271.96,-235.09 282.28,-232.68 272.71,-228.13 271.96,-235.09"/>
</g>
<!-- Node18&#45;&gt;Node13 -->
<g id="edge23" class="edge">
<title>Node18&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M213.25,-94.09C263.59,-87.26 337.22,-83.38 397,-105 418.69,-112.84 438.34,-130.88 450.98,-144.58"/>
<polygon fill="midnightblue" stroke="midnightblue" points="448.66,-147.23 457.9,-152.42 453.91,-142.6 448.66,-147.23"/>
</g>
<!-- Node18&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<title>Node18&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M199,-120.08C220.16,-127.18 245.84,-135.67 269,-143 275.66,-145.11 282.73,-147.29 289.64,-149.4"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.99,-152.86 299.57,-152.41 291.02,-146.16 288.99,-152.86"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/perror.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="302.5,-38.5 302.5,-57.5 363.5,-57.5 363.5,-38.5 302.5,-38.5"/>
<text text-anchor="middle" x="333" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::perror</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node19 -->
<g id="edge20" class="edge">
<title>Node18&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M201.6,-89.87C229.92,-80.78 265.57,-69.33 292.43,-60.71"/>
<polygon fill="midnightblue" stroke="midnightblue" points="293.81,-63.94 302.26,-57.55 291.67,-57.28 293.81,-63.94"/>
</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/numeric/math/pow.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-0.5 306,-19.5 360,-19.5 360,-0.5 306,-0.5"/>
<text text-anchor="middle" x="333" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::pow</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node20 -->
<g id="edge21" class="edge">
<title>Node18&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M173.32,-89.98C195.2,-73.13 232.94,-45.95 269,-29 277.49,-25.01 287.01,-21.62 296.03,-18.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="297.28,-22.15 305.92,-16.02 295.35,-15.42 297.28,-22.15"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/fprintf.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="299,-114.5 299,-133.5 367,-133.5 367,-114.5 299,-114.5"/>
<text text-anchor="middle" x="333" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::snprintf</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node21 -->
<g id="edge22" class="edge">
<title>Node18&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M213.11,-111.27C237.81,-113.92 266.03,-116.94 288.78,-119.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.5,-122.86 298.82,-120.45 289.25,-115.9 288.5,-122.86"/>
</g>
<!-- Node22&#45;&gt;Node2 -->
<g id="edge25" class="edge">
<title>Node22&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M197.92,-373.3C227.99,-379.73 267.56,-388.2 295.9,-394.27"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.29,-397.72 305.8,-396.39 296.75,-390.87 295.29,-397.72"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="305.5,-354.5 305.5,-373.5 360.5,-373.5 360.5,-354.5 305.5,-354.5"/>
<text text-anchor="middle" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</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="M197.92,-364C227.68,-364 266.74,-364 295.01,-364"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.28,-367.5 305.28,-364 295.28,-360.5 295.28,-367.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="kohonen__som__topology_8cpp_a1440a7779ac56f47a3f355ce4a8c7da0_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: 24 KiB

View File

@@ -0,0 +1,378 @@
<?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: test1 Pages: 1 -->
<svg width="636pt" height="427pt"
viewBox="0.00 0.00 636.00 427.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 423)">
<title>test1</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-423 632,-423 632,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,-288.5 0,-307.5 38,-307.5 38,-288.5 0,-288.5"/>
<text text-anchor="middle" x="19" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">test1</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-392.5 306,-411.5 360,-411.5 360,-392.5 306,-392.5"/>
<text text-anchor="middle" x="333" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M22.94,-307.76C29.06,-326.16 45.04,-365.68 74,-383 143.56,-424.61 243.26,-417 296.04,-408.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="296.64,-412.33 305.95,-407.27 295.51,-405.42 296.64,-412.33"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-307.5 74,-326.5 233,-326.5 233,-307.5 74,-307.5"/>
<text text-anchor="middle" x="153.5" y="-314.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::kohonen_som</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="M38.15,-300.6C48.4,-302.07 61.98,-304.02 76.2,-306.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="75.71,-309.52 86.11,-307.48 76.7,-302.6 75.71,-309.52"/>
</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/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="439,-266.5 439,-285.5 494,-285.5 494,-266.5 439,-266.5"/>
<text text-anchor="middle" x="466.5" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<title>Node1&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M38.02,-297.11C104.64,-293.82 337.93,-282.3 428.84,-277.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="429.13,-281.3 438.95,-277.31 428.79,-274.31 429.13,-281.3"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="115,-209.5 115,-228.5 192,-228.5 192,-209.5 115,-209.5"/>
<text text-anchor="middle" x="153.5" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">save_2d_data</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node14 -->
<g id="edge14" class="edge">
<title>Node1&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M33.55,-288.49C44.34,-281.03 59.93,-270.52 74,-262 90.62,-251.93 109.73,-241.44 124.94,-233.34"/>
<polygon fill="midnightblue" stroke="midnightblue" points="126.64,-236.4 133.84,-228.63 123.37,-230.21 126.64,-236.4"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="94,-90 94,-120 213,-120 213,-90 94,-90"/>
<text text-anchor="start" x="102" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::save</text>
<text text-anchor="middle" x="153.5" y="-97" font-family="Helvetica,sans-Serif" font-size="10.00">_u_matrix</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node1&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M24.51,-288.47C33.14,-270.55 53.03,-230.84 74,-200 91.71,-173.95 115.01,-146.45 131.62,-127.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="134.43,-129.88 138.51,-120.1 129.22,-125.2 134.43,-129.88"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="109.5,-354.5 109.5,-373.5 197.5,-373.5 197.5,-354.5 109.5,-354.5"/>
<text text-anchor="middle" x="153.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">test_2d_classes</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node22 -->
<g id="edge24" class="edge">
<title>Node1&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M31.83,-307.75C42.39,-316.09 58.53,-327.99 74,-336 85.24,-341.82 97.97,-346.94 109.85,-351.15"/>
<polygon fill="midnightblue" stroke="midnightblue" points="108.99,-354.55 119.59,-354.46 111.25,-347.92 108.99,-354.55"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="269,-305 269,-335 397,-335 397,-305 269,-305"/>
<text text-anchor="start" x="277" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::update</text>
<text text-anchor="middle" x="333" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">_weights</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M233.13,-318.33C241.63,-318.47 250.26,-318.62 258.7,-318.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="258.82,-322.26 268.88,-318.93 258.94,-315.26 258.82,-322.26"/>
</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/numeric/math/exp.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-380.5 440.5,-399.5 492.5,-399.5 492.5,-380.5 440.5,-380.5"/>
<text text-anchor="middle" x="466.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exp</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M376.35,-335.12C383.38,-338.11 390.5,-341.44 397,-345 414.31,-354.49 416.46,-360.23 433,-371 435.16,-372.4 437.42,-373.83 439.7,-375.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="438.06,-378.32 448.44,-380.44 441.65,-372.31 438.06,-378.32"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="433,-342.5 433,-361.5 500,-361.5 500,-342.5 433,-342.5"/>
<text text-anchor="middle" x="466.5" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00">get_min_2d</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M395.9,-335.06C405.09,-337.3 414.39,-339.56 423.06,-341.67"/>
<polygon fill="midnightblue" stroke="midnightblue" points="422.37,-345.11 432.91,-344.07 424.02,-338.3 422.37,-345.11"/>
</g>
<!-- Node4&#45;&gt;Node11 -->
<g id="edge10" class="edge">
<title>Node4&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M378.89,-304.98C395.24,-299.51 413.52,-293.39 429.06,-288.19"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.45,-291.42 438.82,-284.93 428.23,-284.78 430.45,-291.42"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-304.5 440.5,-323.5 492.5,-323.5 492.5,-304.5 440.5,-304.5"/>
<text text-anchor="middle" x="466.5" y="-311.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node12 -->
<g id="edge11" class="edge">
<title>Node4&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M397.05,-317.12C408.4,-316.61 419.86,-316.08 430.07,-315.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.37,-319.11 440.2,-315.15 430.05,-312.11 430.37,-319.11"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440,-152.5 440,-171.5 493,-171.5 493,-152.5 440,-152.5"/>
<text text-anchor="middle" x="466.5" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sqrt</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node13 -->
<g id="edge12" class="edge">
<title>Node4&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M350.52,-304.88C363.68,-292.52 382.26,-274.32 397,-257 418.63,-231.58 440.68,-199.7 453.73,-180.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="456.78,-181.82 459.36,-171.54 450.94,-177.97 456.78,-181.82"/>
</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/iterator/begin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="552.5,-399.5 552.5,-418.5 611.5,-418.5 611.5,-399.5 552.5,-399.5"/>
<text text-anchor="middle" x="582" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::begin</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="M483.57,-361.56C497.29,-369.56 517.66,-381.07 536,-390 539.77,-391.84 543.77,-393.67 547.76,-395.44"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-398.66 556.97,-399.41 549.17,-392.24 546.4,-398.66"/>
</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/iterator/distance.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="545.5,-361.5 545.5,-380.5 618.5,-380.5 618.5,-361.5 545.5,-361.5"/>
<text text-anchor="middle" x="582" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::distance</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="M500.02,-357.44C510.97,-359.28 523.39,-361.36 535.16,-363.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="534.85,-366.82 545.29,-365.02 536,-359.92 534.85,-366.82"/>
</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/iterator/end.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="556,-323.5 556,-342.5 608,-342.5 608,-323.5 556,-323.5"/>
<text text-anchor="middle" x="582" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::end</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M500.02,-346.56C514.26,-344.17 530.99,-341.37 545.54,-338.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-342.34 555.68,-337.24 545.24,-335.44 546.4,-342.34"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min_element.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="536,-285.5 536,-304.5 628,-304.5 628,-285.5 536,-285.5"/>
<text text-anchor="middle" x="582" y="-292.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min_element</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node6&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M483.57,-342.44C497.29,-334.44 517.66,-322.93 536,-314 539.77,-312.16 543.77,-310.33 547.76,-308.56"/>
<polygon fill="midnightblue" stroke="midnightblue" points="549.17,-311.76 556.97,-304.59 546.4,-305.34 549.17,-311.76"/>
</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/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="281,-152.5 281,-171.5 385,-171.5 385,-152.5 281,-152.5"/>
<text text-anchor="middle" x="333" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</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="M182.66,-209.41C205.8,-201.6 239.45,-190.36 269,-181 275.66,-178.89 282.73,-176.71 289.64,-174.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="291.02,-177.84 299.57,-171.59 288.99,-171.14 291.02,-177.84"/>
</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/io/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="276,-190.5 276,-209.5 390,-209.5 390,-190.5 276,-190.5"/>
<text text-anchor="middle" x="333" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node16 -->
<g id="edge16" class="edge">
<title>Node14&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M192.14,-214.97C213.52,-212.68 240.9,-209.75 265.75,-207.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="266.29,-210.55 275.86,-206.01 265.54,-203.59 266.29,-210.55"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="282.5,-228.5 282.5,-247.5 383.5,-247.5 383.5,-228.5 282.5,-228.5"/>
<text text-anchor="middle" x="333" y="-235.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node17 -->
<g id="edge17" class="edge">
<title>Node14&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M192.14,-223.03C215.42,-225.52 245.82,-228.78 272.33,-231.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="271.96,-235.09 282.28,-232.68 272.71,-228.13 271.96,-235.09"/>
</g>
<!-- Node18&#45;&gt;Node13 -->
<g id="edge23" class="edge">
<title>Node18&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M213.25,-94.09C263.59,-87.26 337.22,-83.38 397,-105 418.69,-112.84 438.34,-130.88 450.98,-144.58"/>
<polygon fill="midnightblue" stroke="midnightblue" points="448.66,-147.23 457.9,-152.42 453.91,-142.6 448.66,-147.23"/>
</g>
<!-- Node18&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<title>Node18&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M199,-120.08C220.16,-127.18 245.84,-135.67 269,-143 275.66,-145.11 282.73,-147.29 289.64,-149.4"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.99,-152.86 299.57,-152.41 291.02,-146.16 288.99,-152.86"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/perror.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="302.5,-38.5 302.5,-57.5 363.5,-57.5 363.5,-38.5 302.5,-38.5"/>
<text text-anchor="middle" x="333" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::perror</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node19 -->
<g id="edge20" class="edge">
<title>Node18&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M201.6,-89.87C229.92,-80.78 265.57,-69.33 292.43,-60.71"/>
<polygon fill="midnightblue" stroke="midnightblue" points="293.81,-63.94 302.26,-57.55 291.67,-57.28 293.81,-63.94"/>
</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/numeric/math/pow.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-0.5 306,-19.5 360,-19.5 360,-0.5 306,-0.5"/>
<text text-anchor="middle" x="333" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::pow</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node20 -->
<g id="edge21" class="edge">
<title>Node18&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M173.32,-89.98C195.2,-73.13 232.94,-45.95 269,-29 277.49,-25.01 287.01,-21.62 296.03,-18.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="297.28,-22.15 305.92,-16.02 295.35,-15.42 297.28,-22.15"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/fprintf.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="299,-114.5 299,-133.5 367,-133.5 367,-114.5 299,-114.5"/>
<text text-anchor="middle" x="333" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::snprintf</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node21 -->
<g id="edge22" class="edge">
<title>Node18&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M213.11,-111.27C237.81,-113.92 266.03,-116.94 288.78,-119.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.5,-122.86 298.82,-120.45 289.25,-115.9 288.5,-122.86"/>
</g>
<!-- Node22&#45;&gt;Node2 -->
<g id="edge25" class="edge">
<title>Node22&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M197.92,-373.3C227.99,-379.73 267.56,-388.2 295.9,-394.27"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.29,-397.72 305.8,-396.39 296.75,-390.87 295.29,-397.72"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="305.5,-354.5 305.5,-373.5 360.5,-373.5 360.5,-354.5 305.5,-354.5"/>
<text text-anchor="middle" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</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="M197.92,-364C227.68,-364 266.74,-364 295.01,-364"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.28,-367.5 305.28,-364 295.28,-360.5 295.28,-367.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,34 @@
<map id="main" name="main">
<area shape="rect" id="node1" title=" " alt="" coords="5,360,56,387"/>
<area shape="rect" id="node2" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/chrono/c/clock.html#" title=" " alt="" coords="116,208,195,235"/>
<area shape="rect" id="node3" href="$d4/def/kohonen__som__topology_8cpp.html#a2256c10b16edba377b64a44b6c656908" title=" " alt="" coords="104,259,207,285"/>
<area shape="rect" id="node4" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/srand.html#" title=" " alt="" coords="115,309,195,336"/>
<area shape="rect" id="node5" href="$d4/def/kohonen__som__topology_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0" title=" " alt="" coords="130,360,181,387"/>
<area shape="rect" id="node28" href="$d4/def/kohonen__som__topology_8cpp.html#a0283886819c7c140a023582b7269e2d0" title=" " alt="" coords="130,461,181,488"/>
<area shape="rect" id="node30" href="$d4/def/kohonen__som__topology_8cpp.html#a6d0455dd5c30adda100e95f0423c786e" title=" " alt="" coords="130,411,181,437"/>
<area shape="rect" id="node32" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/chrono/c/time.html#" title=" " alt="" coords="119,512,192,539"/>
<area shape="rect" id="node6" href="$d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" title=" " alt="" coords="564,596,636,623"/>
<area shape="rect" id="node7" href="$d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" title=" " alt="" coords="255,276,467,303"/>
<area shape="rect" id="node15" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/max.html#" title=" " alt="" coords="741,516,815,543"/>
<area shape="rect" id="node18" href="$d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" title=" " alt="" coords="309,327,412,353"/>
<area shape="rect" id="node22" href="$d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" title=" " alt="" coords="281,378,440,419"/>
<area shape="rect" id="node26" href="$d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755" title=" " alt="" coords="302,545,419,572"/>
<area shape="rect" id="node8" href="$d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" title=" " alt="" coords="515,125,685,166"/>
<area shape="rect" id="node9" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/exp.html#" title=" " alt="" coords="743,183,813,209"/>
<area shape="rect" id="node10" href="$d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" title=" " alt="" coords="733,81,823,108"/>
<area shape="rect" id="node16" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min.html#" title=" " alt="" coords="743,132,813,159"/>
<area shape="rect" id="node17" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/sqrt.html#" title=" " alt="" coords="743,313,813,340"/>
<area shape="rect" id="node11" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/begin.html#" title=" " alt="" coords="893,5,971,32"/>
<area shape="rect" id="node12" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/distance.html#" title=" " alt="" coords="883,56,981,83"/>
<area shape="rect" id="node13" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/end.html#" title=" " alt="" coords="897,107,967,133"/>
<area shape="rect" id="node14" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min_element.html#" title=" " alt="" coords="871,157,993,184"/>
<area shape="rect" id="node19" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="531,343,669,369"/>
<area shape="rect" id="node20" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/is_open.html#" title=" " alt="" coords="524,292,676,319"/>
<area shape="rect" id="node21" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/open.html#" title=" " alt="" coords="533,241,667,268"/>
<area shape="rect" id="node23" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/c/perror.html#" title=" " alt="" coords="559,495,641,521"/>
<area shape="rect" id="node24" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/pow.html#" title=" " alt="" coords="564,545,636,572"/>
<area shape="rect" id="node25" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/c/fprintf.html#" title=" " alt="" coords="555,444,645,471"/>
<area shape="rect" id="node27" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="563,647,637,673"/>
<area shape="rect" id="node29" href="$d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26" title=" " alt="" coords="299,697,423,724"/>
<area shape="rect" id="node31" href="$d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0" title=" " alt="" coords="299,596,423,623"/>
</map>

View File

@@ -0,0 +1 @@
955081ca737810043903e417b4ddcfff

View File

@@ -0,0 +1,685 @@
<?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 655 -->
<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 = 749;
var viewHeight = 655;
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,-650.89 745,-650.89 745,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,-361.39 0,-380.39 38,-380.39 38,-361.39 0,-361.39"/>
<text text-anchor="middle" x="19" y="-368.39" 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 target="_blank" xlink:href="http://en.cppreference.com/w/cpp/chrono/c/clock.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="83,-475.39 83,-494.39 142,-494.39 142,-475.39 83,-475.39"/>
<text text-anchor="middle" x="112.5" y="-482.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::clock</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="M23.28,-380.44C30.08,-399.03 47.36,-440.5 74,-465.89 75.47,-467.29 77.05,-468.61 78.72,-469.84"/>
<polygon fill="midnightblue" stroke="midnightblue" points="77.19,-473.02 87.52,-475.39 80.92,-467.09 77.19,-473.02"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a2256c10b16edba377b64a44b6c656908" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-437.39 74,-456.39 151,-456.39 151,-437.39 74,-437.39"/>
<text text-anchor="middle" x="112.5" y="-444.39" font-family="Helvetica,sans-Serif" font-size="10.00">get_clock_diff</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="M27.56,-380.75C37.29,-392.96 55.2,-413.88 74,-427.89 76.05,-429.42 78.24,-430.88 80.49,-432.27"/>
<polygon fill="midnightblue" stroke="midnightblue" points="78.9,-435.4 89.33,-437.25 82.33,-429.29 78.9,-435.4"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/srand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="82.5,-399.39 82.5,-418.39 142.5,-418.39 142.5,-399.39 82.5,-399.39"/>
<text text-anchor="middle" x="112.5" y="-406.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::srand</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="M38.08,-378.4C49.73,-383.24 65.21,-389.67 78.96,-395.38"/>
<polygon fill="midnightblue" stroke="midnightblue" points="78,-398.77 88.58,-399.37 80.69,-392.3 78,-398.77"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="93.5,-361.39 93.5,-380.39 131.5,-380.39 131.5,-361.39 93.5,-361.39"/>
<text text-anchor="middle" x="112.5" y="-368.39" font-family="Helvetica,sans-Serif" font-size="10.00">test1</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="M38.08,-370.89C50.99,-370.89 68.6,-370.89 83.34,-370.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="83.46,-374.39 93.46,-370.89 83.46,-367.39 83.46,-374.39"/>
</g>
<!-- Node28 -->
<g id="node28" class="node">
<title>Node28</title>
<g id="a_node28"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a0283886819c7c140a023582b7269e2d0" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="93.5,-285.39 93.5,-304.39 131.5,-304.39 131.5,-285.39 93.5,-285.39"/>
<text text-anchor="middle" x="112.5" y="-292.39" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node28 -->
<g id="edge31" class="edge">
<title>Node1&#45;&gt;Node28</title>
<path fill="none" stroke="midnightblue" d="M27.56,-361.03C37.29,-348.82 55.2,-327.91 74,-313.89 77.2,-311.5 80.74,-309.27 84.34,-307.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="85.97,-310.33 93.21,-302.6 82.73,-304.13 85.97,-310.33"/>
</g>
<!-- Node30 -->
<g id="node30" class="node">
<title>Node30</title>
<g id="a_node30"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a6d0455dd5c30adda100e95f0423c786e" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="93.5,-323.39 93.5,-342.39 131.5,-342.39 131.5,-323.39 93.5,-323.39"/>
<text text-anchor="middle" x="112.5" y="-330.39" font-family="Helvetica,sans-Serif" font-size="10.00">test3</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node30 -->
<g id="edge40" class="edge">
<title>Node1&#45;&gt;Node30</title>
<path fill="none" stroke="midnightblue" d="M38.08,-363.38C51.24,-357.92 69.29,-350.42 84.2,-344.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="85.57,-347.45 93.46,-340.38 82.88,-340.99 85.57,-347.45"/>
</g>
<!-- Node32 -->
<g id="node32" class="node">
<title>Node32</title>
<g id="a_node32"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/chrono/c/time.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="85,-247.39 85,-266.39 140,-266.39 140,-247.39 85,-247.39"/>
<text text-anchor="middle" x="112.5" y="-254.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::time</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node32 -->
<g id="edge49" class="edge">
<title>Node1&#45;&gt;Node32</title>
<path fill="none" stroke="midnightblue" d="M23.28,-361.34C30.08,-342.75 47.36,-301.28 74,-275.89 75.47,-274.49 77.05,-273.18 78.72,-271.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="80.92,-274.69 87.52,-266.4 77.19,-268.77 80.92,-274.69"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="419,-184.39 419,-203.39 473,-203.39 473,-184.39 419,-184.39"/>
<text text-anchor="middle" x="446" y="-191.39" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M131.66,-362.23C137.88,-359.13 144.82,-355.5 151,-351.89 167.61,-342.19 169.47,-335.79 187,-327.89 253.64,-297.88 289.42,-332.16 346,-285.89 374,-262.99 354.4,-236.27 382,-212.89 389.63,-206.42 399.42,-202.16 408.99,-199.34"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.92,-202.72 418.78,-196.91 408.23,-195.93 409.92,-202.72"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="187,-424.39 187,-443.39 346,-443.39 346,-424.39 187,-424.39"/>
<text text-anchor="middle" x="266.5" y="-431.39" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::kohonen_som</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="M131.7,-379.48C137.92,-382.58 144.86,-386.23 151,-389.89 167.73,-399.87 169.23,-406.91 187,-414.89 192.41,-417.32 198.17,-419.47 204.02,-421.35"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203.33,-424.8 213.91,-424.3 205.33,-418.09 203.33,-424.8"/>
</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/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="552,-244.39 552,-263.39 607,-263.39 607,-244.39 552,-244.39"/>
<text text-anchor="middle" x="579.5" y="-251.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node15 -->
<g id="edge17" class="edge">
<title>Node5&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M131.64,-377.5C138.28,-380.54 145.5,-384.66 151,-389.89 174.37,-412.11 160.24,-434.89 187,-452.89 246.75,-493.08 452.14,-521.76 510,-478.89 527.04,-466.27 561.54,-325.95 573.93,-273.51"/>
<polygon fill="midnightblue" stroke="midnightblue" points="577.41,-274 576.29,-263.47 570.6,-272.4 577.41,-274"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="228,-386.39 228,-405.39 305,-405.39 305,-386.39 228,-386.39"/>
<text text-anchor="middle" x="266.5" y="-393.39" font-family="Helvetica,sans-Serif" font-size="10.00">save_2d_data</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node5&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M131.53,-373.86C152.64,-377.33 188.42,-383.21 217.7,-388.03"/>
<polygon fill="midnightblue" stroke="midnightblue" points="217.31,-391.51 227.75,-389.68 218.45,-384.61 217.31,-391.51"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="207,-336.89 207,-366.89 326,-366.89 326,-336.89 207,-336.89"/>
<text text-anchor="start" x="215" y="-354.89" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::save</text>
<text text-anchor="middle" x="266.5" y="-343.89" font-family="Helvetica,sans-Serif" font-size="10.00">_u_matrix</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node22 -->
<g id="edge22" class="edge">
<title>Node5&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M131.53,-368.64C147.77,-366.61 172.7,-363.49 196.68,-360.49"/>
<polygon fill="midnightblue" stroke="midnightblue" points="197.37,-363.93 206.86,-359.22 196.51,-356.99 197.37,-363.93"/>
</g>
<!-- Node26 -->
<g id="node26" class="node">
<title>Node26</title>
<g id="a_node26"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="222.5,-222.39 222.5,-241.39 310.5,-241.39 310.5,-222.39 222.5,-222.39"/>
<text text-anchor="middle" x="266.5" y="-229.39" font-family="Helvetica,sans-Serif" font-size="10.00">test_2d_classes</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node26 -->
<g id="edge28" class="edge">
<title>Node5&#45;&gt;Node26</title>
<path fill="none" stroke="midnightblue" d="M131.55,-364.18C138.17,-361.12 145.41,-357.02 151,-351.89 173.36,-331.39 166.79,-316.52 187,-293.89 203.2,-275.75 225.17,-258.9 241.75,-247.36"/>
<polygon fill="midnightblue" stroke="midnightblue" points="244.03,-250.04 250.33,-241.52 240.1,-244.25 244.03,-250.04"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="../../d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="382,-526.89 382,-556.89 510,-556.89 510,-526.89 382,-526.89"/>
<text text-anchor="start" x="390" y="-544.89" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::update</text>
<text text-anchor="middle" x="446" y="-533.89" font-family="Helvetica,sans-Serif" font-size="10.00">_weights</text>
</a>
</g>
</g>
<!-- Node7&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<title>Node7&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M283.25,-443.47C311.92,-460.92 373.2,-498.21 411.56,-521.54"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.95,-524.66 420.32,-526.87 413.59,-518.68 409.95,-524.66"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/exp.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="553.5,-494.39 553.5,-513.39 605.5,-513.39 605.5,-494.39 553.5,-494.39"/>
<text text-anchor="middle" x="579.5" y="-501.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::exp</text>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node8&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M498.97,-526.87C513.85,-522.57 529.71,-517.99 543.32,-514.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="544.6,-517.33 553.23,-511.19 542.65,-510.61 544.6,-517.33"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="../../d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="546,-570.39 546,-589.39 613,-589.39 613,-570.39 546,-570.39"/>
<text text-anchor="middle" x="579.5" y="-577.39" font-family="Helvetica,sans-Serif" font-size="10.00">get_min_2d</text>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node8&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M498.97,-556.91C511.31,-560.47 524.33,-564.24 536.18,-567.66"/>
<polygon fill="midnightblue" stroke="midnightblue" points="535.24,-571.03 545.81,-570.45 537.18,-564.31 535.24,-571.03"/>
</g>
<!-- Node8&#45;&gt;Node15 -->
<g id="edge14" class="edge">
<title>Node8&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M491.48,-526.83C498.43,-522.86 504.97,-517.95 510,-511.89 517.84,-502.45 559.61,-331.96 573.79,-273.42"/>
<polygon fill="midnightblue" stroke="midnightblue" points="577.22,-274.12 576.17,-263.58 570.42,-272.47 577.22,-274.12"/>
</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/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="553.5,-532.39 553.5,-551.39 605.5,-551.39 605.5,-532.39 553.5,-532.39"/>
<text text-anchor="middle" x="579.5" y="-539.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node16 -->
<g id="edge15" class="edge">
<title>Node8&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M510.05,-541.89C521.4,-541.89 532.86,-541.89 543.07,-541.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="543.2,-545.39 553.2,-541.89 543.2,-538.39 543.2,-545.39"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="553,-396.39 553,-415.39 606,-415.39 606,-396.39 553,-396.39"/>
<text text-anchor="middle" x="579.5" y="-403.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::sqrt</text>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node17 -->
<g id="edge16" class="edge">
<title>Node8&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M487.37,-526.76C495.38,-522.67 503.36,-517.73 510,-511.89 538.25,-487.08 559.41,-447.9 570.29,-424.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="573.48,-426.2 574.43,-415.65 567.11,-423.3 573.48,-426.2"/>
</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/iterator/begin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="665.5,-627.39 665.5,-646.39 724.5,-646.39 724.5,-627.39 665.5,-627.39"/>
<text text-anchor="middle" x="695" y="-634.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::begin</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node11 -->
<g id="edge10" class="edge">
<title>Node10&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M596.57,-589.45C610.29,-597.45 630.66,-608.96 649,-617.89 652.77,-619.73 656.77,-621.56 660.76,-623.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="659.4,-626.56 669.97,-627.3 662.17,-620.13 659.4,-626.56"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/iterator/distance.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="658.5,-589.39 658.5,-608.39 731.5,-608.39 731.5,-589.39 658.5,-589.39"/>
<text text-anchor="middle" x="695" y="-596.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::distance</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node12 -->
<g id="edge11" class="edge">
<title>Node10&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M613.02,-585.34C623.97,-587.17 636.39,-589.25 648.16,-591.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="647.85,-594.71 658.29,-592.91 649,-587.81 647.85,-594.71"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/iterator/end.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="669,-551.39 669,-570.39 721,-570.39 721,-551.39 669,-551.39"/>
<text text-anchor="middle" x="695" y="-558.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::end</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node13 -->
<g id="edge12" class="edge">
<title>Node10&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M613.02,-574.45C627.26,-572.06 643.99,-569.26 658.54,-566.83"/>
<polygon fill="midnightblue" stroke="midnightblue" points="659.4,-570.23 668.68,-565.13 658.24,-563.33 659.4,-570.23"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min_element.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="649,-513.39 649,-532.39 741,-532.39 741,-513.39 649,-513.39"/>
<text text-anchor="middle" x="695" y="-520.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::min_element</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node14 -->
<g id="edge13" class="edge">
<title>Node10&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M596.57,-570.33C610.29,-562.33 630.66,-550.82 649,-541.89 652.77,-540.05 656.77,-538.22 660.76,-536.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="662.17,-539.65 669.97,-532.48 659.4,-533.23 662.17,-539.65"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="394,-374.39 394,-393.39 498,-393.39 498,-374.39 394,-374.39"/>
<text text-anchor="middle" x="446" y="-381.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node19 -->
<g id="edge19" class="edge">
<title>Node18&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M305.14,-393.35C327.96,-391.8 357.62,-389.8 383.75,-388.03"/>
<polygon fill="midnightblue" stroke="midnightblue" points="384.2,-391.51 393.94,-387.34 383.73,-384.52 384.2,-391.51"/>
</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/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="389,-412.39 389,-431.39 503,-431.39 503,-412.39 389,-412.39"/>
<text text-anchor="middle" x="446" y="-419.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node20 -->
<g id="edge20" class="edge">
<title>Node18&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M305.14,-401.4C326.52,-404.54 353.9,-408.55 378.75,-412.19"/>
<polygon fill="midnightblue" stroke="midnightblue" points="378.46,-415.68 388.86,-413.67 379.47,-408.75 378.46,-415.68"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="395.5,-450.39 395.5,-469.39 496.5,-469.39 496.5,-450.39 395.5,-450.39"/>
<text text-anchor="middle" x="446" y="-457.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::open</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node21 -->
<g id="edge21" class="edge">
<title>Node18&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M305.23,-401.93C318.5,-404.84 333.26,-409.03 346,-414.89 363.93,-423.14 364.31,-432.14 382,-440.89 386.56,-443.14 391.43,-445.19 396.38,-447.03"/>
<polygon fill="midnightblue" stroke="midnightblue" points="395.31,-450.36 405.91,-450.31 397.59,-443.74 395.31,-450.36"/>
</g>
<!-- Node22&#45;&gt;Node17 -->
<g id="edge27" class="edge">
<title>Node22&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M326.19,-347.25C376.17,-345.12 449.32,-346.35 510,-364.89 527.66,-370.29 545.5,-381.17 558.54,-390.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="556.61,-393.3 566.74,-396.38 560.74,-387.65 556.61,-393.3"/>
</g>
<!-- Node22&#45;&gt;Node19 -->
<g id="edge23" class="edge">
<title>Node22&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M326.11,-362.46C344.69,-365.81 365.26,-369.51 384,-372.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="383.44,-376.35 393.9,-374.68 384.68,-369.46 383.44,-376.35"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/perror.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="415.5,-260.39 415.5,-279.39 476.5,-279.39 476.5,-260.39 415.5,-260.39"/>
<text text-anchor="middle" x="446" y="-267.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::perror</text>
</a>
</g>
</g>
<!-- Node22&#45;&gt;Node23 -->
<g id="edge24" class="edge">
<title>Node22&#45;&gt;Node23</title>
<path fill="none" stroke="midnightblue" d="M315.77,-336.73C326.1,-332.6 336.69,-327.64 346,-321.89 364.46,-310.48 363.14,-299.63 382,-288.89 389.27,-284.75 397.54,-281.43 405.63,-278.79"/>
<polygon fill="midnightblue" stroke="midnightblue" points="406.76,-282.11 415.35,-275.9 404.76,-275.4 406.76,-282.11"/>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<title>Node24</title>
<g id="a_node24"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/pow.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="419,-222.39 419,-241.39 473,-241.39 473,-222.39 419,-222.39"/>
<text text-anchor="middle" x="446" y="-229.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::pow</text>
</a>
</g>
</g>
<!-- Node22&#45;&gt;Node24 -->
<g id="edge25" class="edge">
<title>Node22&#45;&gt;Node24</title>
<path fill="none" stroke="midnightblue" d="M322.84,-336.75C331.21,-332.83 339.28,-327.94 346,-321.89 372.29,-298.21 354.88,-273.61 382,-250.89 389.67,-244.47 399.47,-240.21 409.03,-237.4"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.97,-240.77 418.83,-234.96 408.28,-233.98 409.97,-240.77"/>
</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/io/c/fprintf.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="412,-298.39 412,-317.39 480,-317.39 480,-298.39 412,-298.39"/>
<text text-anchor="middle" x="446" y="-305.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::snprintf</text>
</a>
</g>
</g>
<!-- Node22&#45;&gt;Node25 -->
<g id="edge26" class="edge">
<title>Node22&#45;&gt;Node25</title>
<path fill="none" stroke="midnightblue" d="M326.11,-337.36C350.92,-331.21 379.29,-324.18 402.09,-318.53"/>
<polygon fill="midnightblue" stroke="midnightblue" points="402.96,-321.92 411.82,-316.12 401.27,-315.12 402.96,-321.92"/>
</g>
<!-- Node26&#45;&gt;Node6 -->
<g id="edge29" class="edge">
<title>Node26&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M310.92,-222.59C340.99,-216.16 380.56,-207.69 408.9,-201.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.75,-205.02 418.8,-199.5 408.29,-198.17 409.75,-205.02"/>
</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/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="418.5,-146.39 418.5,-165.39 473.5,-165.39 473.5,-146.39 418.5,-146.39"/>
<text text-anchor="middle" x="446" y="-153.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node26&#45;&gt;Node27 -->
<g id="edge30" class="edge">
<title>Node26&#45;&gt;Node27</title>
<path fill="none" stroke="midnightblue" d="M310.75,-226.07C322.71,-223.25 335.32,-219.07 346,-212.89 366.13,-201.23 362.2,-187.1 382,-174.89 390.07,-169.91 399.53,-166.17 408.62,-163.38"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.57,-166.75 418.27,-160.71 407.7,-160 409.57,-166.75"/>
</g>
<!-- Node28&#45;&gt;Node6 -->
<g id="edge32" class="edge">
<title>Node28&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M131.77,-288.94C138.58,-285.95 145.89,-281.7 151,-275.89 182.5,-240.13 148.05,-202.35 187,-174.89 221.77,-150.37 346.38,-172.55 408.81,-185.74"/>
<polygon fill="midnightblue" stroke="midnightblue" points="408.12,-189.17 418.63,-187.85 409.59,-182.32 408.12,-189.17"/>
</g>
<!-- Node28&#45;&gt;Node7 -->
<g id="edge33" class="edge">
<title>Node28&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M131.77,-300.84C138.58,-303.83 145.89,-308.09 151,-313.89 182.5,-349.65 151.58,-383.01 187,-414.89 188.74,-416.45 190.58,-417.89 192.51,-419.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="191.02,-422.4 201.44,-424.34 194.5,-416.33 191.02,-422.4"/>
</g>
<!-- Node28&#45;&gt;Node15 -->
<g id="edge34" class="edge">
<title>Node28&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M131.53,-289.7C138.64,-286.77 146.23,-282.35 151,-275.89 207.23,-199.7 114.6,-126.93 187,-65.89 296.75,26.65 392.39,16.43 510,-65.89 565.81,-104.95 576.31,-194.49 578.17,-234.25"/>
<polygon fill="midnightblue" stroke="midnightblue" points="574.67,-234.38 578.5,-244.26 581.67,-234.15 574.67,-234.38"/>
</g>
<!-- Node28&#45;&gt;Node18 -->
<g id="edge35" class="edge">
<title>Node28&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M131.64,-301.5C138.28,-304.54 145.5,-308.66 151,-313.89 174.37,-336.11 161.22,-357.51 187,-376.89 195.92,-383.6 206.89,-387.97 217.77,-390.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="217.15,-394.26 227.67,-393.02 218.67,-387.43 217.15,-394.26"/>
</g>
<!-- Node28&#45;&gt;Node22 -->
<g id="edge36" class="edge">
<title>Node28&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M131.53,-301.65C152.16,-309.39 186.82,-322.39 215.72,-333.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="214.68,-336.57 225.27,-336.8 217.14,-330.02 214.68,-336.57"/>
</g>
<!-- Node29 -->
<g id="node29" class="node">
<title>Node29</title>
<g id="a_node29"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="220,-108.39 220,-127.39 313,-127.39 313,-108.39 220,-108.39"/>
<text text-anchor="middle" x="266.5" y="-115.39" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes1</text>
</a>
</g>
</g>
<!-- Node28&#45;&gt;Node29 -->
<g id="edge37" class="edge">
<title>Node28&#45;&gt;Node29</title>
<path fill="none" stroke="midnightblue" d="M131.63,-289.32C138.58,-286.35 146.03,-282.01 151,-275.89 189.88,-228.02 144.15,-186.24 187,-141.89 193.4,-135.27 201.57,-130.46 210.21,-126.97"/>
<polygon fill="midnightblue" stroke="midnightblue" points="211.41,-130.26 219.71,-123.68 209.12,-123.65 211.41,-130.26"/>
</g>
<!-- Node29&#45;&gt;Node6 -->
<g id="edge38" class="edge">
<title>Node29&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M310.89,-127.41C322.72,-130.99 335.24,-135.74 346,-141.89 364.84,-152.66 363.14,-164.15 382,-174.89 390.31,-179.62 399.93,-183.29 409.1,-186.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="408.23,-189.48 418.8,-188.78 410.1,-182.73 408.23,-189.48"/>
</g>
<!-- Node29&#45;&gt;Node27 -->
<g id="edge39" class="edge">
<title>Node29&#45;&gt;Node27</title>
<path fill="none" stroke="midnightblue" d="M312.29,-127.48C341.98,-133.84 380.45,-142.07 408.32,-148.04"/>
<polygon fill="midnightblue" stroke="midnightblue" points="407.93,-151.53 418.44,-150.2 409.39,-144.69 407.93,-151.53"/>
</g>
<!-- Node30&#45;&gt;Node6 -->
<g id="edge41" class="edge">
<title>Node30&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M131.5,-323.94C137.71,-320.81 144.68,-317.24 151,-313.89 167.17,-305.31 170.04,-300.77 187,-293.89 254.83,-266.36 283.15,-288.42 346,-250.89 365.97,-238.96 362.2,-225.1 382,-212.89 390.21,-207.83 399.86,-204.03 409.11,-201.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="410.17,-204.57 418.89,-198.56 408.33,-197.81 410.17,-204.57"/>
</g>
<!-- Node30&#45;&gt;Node7 -->
<g id="edge42" class="edge">
<title>Node30&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M131.64,-339.5C138.28,-342.54 145.5,-346.66 151,-351.89 174.37,-374.11 161.22,-395.51 187,-414.89 189.5,-416.77 192.15,-418.46 194.93,-419.99"/>
<polygon fill="midnightblue" stroke="midnightblue" points="193.57,-423.22 204.1,-424.33 196.56,-416.89 193.57,-423.22"/>
</g>
<!-- Node30&#45;&gt;Node15 -->
<g id="edge43" class="edge">
<title>Node30&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M131.54,-327.71C138.65,-324.78 146.25,-320.36 151,-313.89 208.38,-235.83 113.05,-161.49 187,-98.89 242.16,-52.2 451.79,-94.05 510,-136.89 543.66,-161.66 563.58,-208.35 572.63,-234.64"/>
<polygon fill="midnightblue" stroke="midnightblue" points="569.33,-235.81 575.75,-244.23 575.98,-233.64 569.33,-235.81"/>
</g>
<!-- Node30&#45;&gt;Node18 -->
<g id="edge44" class="edge">
<title>Node30&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M131.7,-341.48C137.92,-344.58 144.86,-348.23 151,-351.89 167.73,-361.87 169.23,-368.91 187,-376.89 196.69,-381.25 207.53,-384.69 217.97,-387.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="217.29,-390.81 227.83,-389.72 218.91,-384 217.29,-390.81"/>
</g>
<!-- Node30&#45;&gt;Node22 -->
<g id="edge45" class="edge">
<title>Node30&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M131.53,-335.14C147.77,-337.17 172.7,-340.29 196.68,-343.29"/>
<polygon fill="midnightblue" stroke="midnightblue" points="196.51,-346.79 206.86,-344.56 197.37,-339.85 196.51,-346.79"/>
</g>
<!-- Node31 -->
<g id="node31" class="node">
<title>Node31</title>
<g id="a_node31"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="220,-184.39 220,-203.39 313,-203.39 313,-184.39 220,-184.39"/>
<text text-anchor="middle" x="266.5" y="-191.39" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes2</text>
</a>
</g>
</g>
<!-- Node30&#45;&gt;Node31 -->
<g id="edge46" class="edge">
<title>Node30&#45;&gt;Node31</title>
<path fill="none" stroke="midnightblue" d="M131.77,-326.94C138.58,-323.95 145.89,-319.7 151,-313.89 182.5,-278.13 151.58,-244.77 187,-212.89 193.59,-206.96 201.71,-202.8 210.2,-199.9"/>
<polygon fill="midnightblue" stroke="midnightblue" points="211.24,-203.24 219.89,-197.13 209.31,-196.51 211.24,-203.24"/>
</g>
<!-- Node31&#45;&gt;Node6 -->
<g id="edge47" class="edge">
<title>Node31&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M313.21,-193.89C342.99,-193.89 381.31,-193.89 408.94,-193.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="408.97,-197.39 418.97,-193.89 408.97,-190.39 408.97,-197.39"/>
</g>
<!-- Node31&#45;&gt;Node27 -->
<g id="edge48" class="edge">
<title>Node31&#45;&gt;Node27</title>
<path fill="none" stroke="midnightblue" d="M312.29,-184.3C341.98,-177.95 380.45,-169.71 408.32,-163.74"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.39,-167.09 418.44,-161.58 407.93,-160.25 409.39,-167.09"/>
</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="kohonen__som__topology_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: 37 KiB

View File

@@ -0,0 +1,597 @@
<?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="749pt" height="655pt"
viewBox="0.00 0.00 749.00 654.89" 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 650.89)">
<title>main</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-650.89 745,-650.89 745,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,-361.39 0,-380.39 38,-380.39 38,-361.39 0,-361.39"/>
<text text-anchor="middle" x="19" y="-368.39" 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 target="_blank" xlink:href="http://en.cppreference.com/w/cpp/chrono/c/clock.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="83,-475.39 83,-494.39 142,-494.39 142,-475.39 83,-475.39"/>
<text text-anchor="middle" x="112.5" y="-482.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::clock</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="M23.28,-380.44C30.08,-399.03 47.36,-440.5 74,-465.89 75.47,-467.29 77.05,-468.61 78.72,-469.84"/>
<polygon fill="midnightblue" stroke="midnightblue" points="77.19,-473.02 87.52,-475.39 80.92,-467.09 77.19,-473.02"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a2256c10b16edba377b64a44b6c656908" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-437.39 74,-456.39 151,-456.39 151,-437.39 74,-437.39"/>
<text text-anchor="middle" x="112.5" y="-444.39" font-family="Helvetica,sans-Serif" font-size="10.00">get_clock_diff</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="M27.56,-380.75C37.29,-392.96 55.2,-413.88 74,-427.89 76.05,-429.42 78.24,-430.88 80.49,-432.27"/>
<polygon fill="midnightblue" stroke="midnightblue" points="78.9,-435.4 89.33,-437.25 82.33,-429.29 78.9,-435.4"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/srand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="82.5,-399.39 82.5,-418.39 142.5,-418.39 142.5,-399.39 82.5,-399.39"/>
<text text-anchor="middle" x="112.5" y="-406.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::srand</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="M38.08,-378.4C49.73,-383.24 65.21,-389.67 78.96,-395.38"/>
<polygon fill="midnightblue" stroke="midnightblue" points="78,-398.77 88.58,-399.37 80.69,-392.3 78,-398.77"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a1440a7779ac56f47a3f355ce4a8c7da0" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="93.5,-361.39 93.5,-380.39 131.5,-380.39 131.5,-361.39 93.5,-361.39"/>
<text text-anchor="middle" x="112.5" y="-368.39" font-family="Helvetica,sans-Serif" font-size="10.00">test1</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="M38.08,-370.89C50.99,-370.89 68.6,-370.89 83.34,-370.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="83.46,-374.39 93.46,-370.89 83.46,-367.39 83.46,-374.39"/>
</g>
<!-- Node28 -->
<g id="node28" class="node">
<title>Node28</title>
<g id="a_node28"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a0283886819c7c140a023582b7269e2d0" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="93.5,-285.39 93.5,-304.39 131.5,-304.39 131.5,-285.39 93.5,-285.39"/>
<text text-anchor="middle" x="112.5" y="-292.39" font-family="Helvetica,sans-Serif" font-size="10.00">test2</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node28 -->
<g id="edge31" class="edge">
<title>Node1&#45;&gt;Node28</title>
<path fill="none" stroke="midnightblue" d="M27.56,-361.03C37.29,-348.82 55.2,-327.91 74,-313.89 77.2,-311.5 80.74,-309.27 84.34,-307.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="85.97,-310.33 93.21,-302.6 82.73,-304.13 85.97,-310.33"/>
</g>
<!-- Node30 -->
<g id="node30" class="node">
<title>Node30</title>
<g id="a_node30"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a6d0455dd5c30adda100e95f0423c786e" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="93.5,-323.39 93.5,-342.39 131.5,-342.39 131.5,-323.39 93.5,-323.39"/>
<text text-anchor="middle" x="112.5" y="-330.39" font-family="Helvetica,sans-Serif" font-size="10.00">test3</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node30 -->
<g id="edge40" class="edge">
<title>Node1&#45;&gt;Node30</title>
<path fill="none" stroke="midnightblue" d="M38.08,-363.38C51.24,-357.92 69.29,-350.42 84.2,-344.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="85.57,-347.45 93.46,-340.38 82.88,-340.99 85.57,-347.45"/>
</g>
<!-- Node32 -->
<g id="node32" class="node">
<title>Node32</title>
<g id="a_node32"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/chrono/c/time.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="85,-247.39 85,-266.39 140,-266.39 140,-247.39 85,-247.39"/>
<text text-anchor="middle" x="112.5" y="-254.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::time</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node32 -->
<g id="edge49" class="edge">
<title>Node1&#45;&gt;Node32</title>
<path fill="none" stroke="midnightblue" d="M23.28,-361.34C30.08,-342.75 47.36,-301.28 74,-275.89 75.47,-274.49 77.05,-273.18 78.72,-271.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="80.92,-274.69 87.52,-266.4 77.19,-268.77 80.92,-274.69"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="419,-184.39 419,-203.39 473,-203.39 473,-184.39 419,-184.39"/>
<text text-anchor="middle" x="446" y="-191.39" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M131.66,-362.23C137.88,-359.13 144.82,-355.5 151,-351.89 167.61,-342.19 169.47,-335.79 187,-327.89 253.64,-297.88 289.42,-332.16 346,-285.89 374,-262.99 354.4,-236.27 382,-212.89 389.63,-206.42 399.42,-202.16 408.99,-199.34"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.92,-202.72 418.78,-196.91 408.23,-195.93 409.92,-202.72"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="187,-424.39 187,-443.39 346,-443.39 346,-424.39 187,-424.39"/>
<text text-anchor="middle" x="266.5" y="-431.39" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::kohonen_som</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="M131.7,-379.48C137.92,-382.58 144.86,-386.23 151,-389.89 167.73,-399.87 169.23,-406.91 187,-414.89 192.41,-417.32 198.17,-419.47 204.02,-421.35"/>
<polygon fill="midnightblue" stroke="midnightblue" points="203.33,-424.8 213.91,-424.3 205.33,-418.09 203.33,-424.8"/>
</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/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="552,-244.39 552,-263.39 607,-263.39 607,-244.39 552,-244.39"/>
<text text-anchor="middle" x="579.5" y="-251.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node15 -->
<g id="edge17" class="edge">
<title>Node5&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M131.64,-377.5C138.28,-380.54 145.5,-384.66 151,-389.89 174.37,-412.11 160.24,-434.89 187,-452.89 246.75,-493.08 452.14,-521.76 510,-478.89 527.04,-466.27 561.54,-325.95 573.93,-273.51"/>
<polygon fill="midnightblue" stroke="midnightblue" points="577.41,-274 576.29,-263.47 570.6,-272.4 577.41,-274"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="228,-386.39 228,-405.39 305,-405.39 305,-386.39 228,-386.39"/>
<text text-anchor="middle" x="266.5" y="-393.39" font-family="Helvetica,sans-Serif" font-size="10.00">save_2d_data</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node5&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M131.53,-373.86C152.64,-377.33 188.42,-383.21 217.7,-388.03"/>
<polygon fill="midnightblue" stroke="midnightblue" points="217.31,-391.51 227.75,-389.68 218.45,-384.61 217.31,-391.51"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="207,-336.89 207,-366.89 326,-366.89 326,-336.89 207,-336.89"/>
<text text-anchor="start" x="215" y="-354.89" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::save</text>
<text text-anchor="middle" x="266.5" y="-343.89" font-family="Helvetica,sans-Serif" font-size="10.00">_u_matrix</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node22 -->
<g id="edge22" class="edge">
<title>Node5&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M131.53,-368.64C147.77,-366.61 172.7,-363.49 196.68,-360.49"/>
<polygon fill="midnightblue" stroke="midnightblue" points="197.37,-363.93 206.86,-359.22 196.51,-356.99 197.37,-363.93"/>
</g>
<!-- Node26 -->
<g id="node26" class="node">
<title>Node26</title>
<g id="a_node26"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a6b5e744876fd980a3451cbb385d4e755" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="222.5,-222.39 222.5,-241.39 310.5,-241.39 310.5,-222.39 222.5,-222.39"/>
<text text-anchor="middle" x="266.5" y="-229.39" font-family="Helvetica,sans-Serif" font-size="10.00">test_2d_classes</text>
</a>
</g>
</g>
<!-- Node5&#45;&gt;Node26 -->
<g id="edge28" class="edge">
<title>Node5&#45;&gt;Node26</title>
<path fill="none" stroke="midnightblue" d="M131.55,-364.18C138.17,-361.12 145.41,-357.02 151,-351.89 173.36,-331.39 166.79,-316.52 187,-293.89 203.2,-275.75 225.17,-258.9 241.75,-247.36"/>
<polygon fill="midnightblue" stroke="midnightblue" points="244.03,-250.04 250.33,-241.52 240.1,-244.25 244.03,-250.04"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="../../d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="382,-526.89 382,-556.89 510,-556.89 510,-526.89 382,-526.89"/>
<text text-anchor="start" x="390" y="-544.89" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::update</text>
<text text-anchor="middle" x="446" y="-533.89" font-family="Helvetica,sans-Serif" font-size="10.00">_weights</text>
</a>
</g>
</g>
<!-- Node7&#45;&gt;Node8 -->
<g id="edge7" class="edge">
<title>Node7&#45;&gt;Node8</title>
<path fill="none" stroke="midnightblue" d="M283.25,-443.47C311.92,-460.92 373.2,-498.21 411.56,-521.54"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.95,-524.66 420.32,-526.87 413.59,-518.68 409.95,-524.66"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/exp.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="553.5,-494.39 553.5,-513.39 605.5,-513.39 605.5,-494.39 553.5,-494.39"/>
<text text-anchor="middle" x="579.5" y="-501.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::exp</text>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node8&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M498.97,-526.87C513.85,-522.57 529.71,-517.99 543.32,-514.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="544.6,-517.33 553.23,-511.19 542.65,-510.61 544.6,-517.33"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="../../d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="546,-570.39 546,-589.39 613,-589.39 613,-570.39 546,-570.39"/>
<text text-anchor="middle" x="579.5" y="-577.39" font-family="Helvetica,sans-Serif" font-size="10.00">get_min_2d</text>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node8&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M498.97,-556.91C511.31,-560.47 524.33,-564.24 536.18,-567.66"/>
<polygon fill="midnightblue" stroke="midnightblue" points="535.24,-571.03 545.81,-570.45 537.18,-564.31 535.24,-571.03"/>
</g>
<!-- Node8&#45;&gt;Node15 -->
<g id="edge14" class="edge">
<title>Node8&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M491.48,-526.83C498.43,-522.86 504.97,-517.95 510,-511.89 517.84,-502.45 559.61,-331.96 573.79,-273.42"/>
<polygon fill="midnightblue" stroke="midnightblue" points="577.22,-274.12 576.17,-263.58 570.42,-272.47 577.22,-274.12"/>
</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/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="553.5,-532.39 553.5,-551.39 605.5,-551.39 605.5,-532.39 553.5,-532.39"/>
<text text-anchor="middle" x="579.5" y="-539.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node16 -->
<g id="edge15" class="edge">
<title>Node8&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M510.05,-541.89C521.4,-541.89 532.86,-541.89 543.07,-541.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="543.2,-545.39 553.2,-541.89 543.2,-538.39 543.2,-545.39"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="553,-396.39 553,-415.39 606,-415.39 606,-396.39 553,-396.39"/>
<text text-anchor="middle" x="579.5" y="-403.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::sqrt</text>
</a>
</g>
</g>
<!-- Node8&#45;&gt;Node17 -->
<g id="edge16" class="edge">
<title>Node8&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M487.37,-526.76C495.38,-522.67 503.36,-517.73 510,-511.89 538.25,-487.08 559.41,-447.9 570.29,-424.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="573.48,-426.2 574.43,-415.65 567.11,-423.3 573.48,-426.2"/>
</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/iterator/begin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="665.5,-627.39 665.5,-646.39 724.5,-646.39 724.5,-627.39 665.5,-627.39"/>
<text text-anchor="middle" x="695" y="-634.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::begin</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node11 -->
<g id="edge10" class="edge">
<title>Node10&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M596.57,-589.45C610.29,-597.45 630.66,-608.96 649,-617.89 652.77,-619.73 656.77,-621.56 660.76,-623.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="659.4,-626.56 669.97,-627.3 662.17,-620.13 659.4,-626.56"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/iterator/distance.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="658.5,-589.39 658.5,-608.39 731.5,-608.39 731.5,-589.39 658.5,-589.39"/>
<text text-anchor="middle" x="695" y="-596.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::distance</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node12 -->
<g id="edge11" class="edge">
<title>Node10&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M613.02,-585.34C623.97,-587.17 636.39,-589.25 648.16,-591.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="647.85,-594.71 658.29,-592.91 649,-587.81 647.85,-594.71"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/iterator/end.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="669,-551.39 669,-570.39 721,-570.39 721,-551.39 669,-551.39"/>
<text text-anchor="middle" x="695" y="-558.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::end</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node13 -->
<g id="edge12" class="edge">
<title>Node10&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M613.02,-574.45C627.26,-572.06 643.99,-569.26 658.54,-566.83"/>
<polygon fill="midnightblue" stroke="midnightblue" points="659.4,-570.23 668.68,-565.13 658.24,-563.33 659.4,-570.23"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min_element.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="649,-513.39 649,-532.39 741,-532.39 741,-513.39 649,-513.39"/>
<text text-anchor="middle" x="695" y="-520.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::min_element</text>
</a>
</g>
</g>
<!-- Node10&#45;&gt;Node14 -->
<g id="edge13" class="edge">
<title>Node10&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M596.57,-570.33C610.29,-562.33 630.66,-550.82 649,-541.89 652.77,-540.05 656.77,-538.22 660.76,-536.45"/>
<polygon fill="midnightblue" stroke="midnightblue" points="662.17,-539.65 669.97,-532.48 659.4,-533.23 662.17,-539.65"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="394,-374.39 394,-393.39 498,-393.39 498,-374.39 394,-374.39"/>
<text text-anchor="middle" x="446" y="-381.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node19 -->
<g id="edge19" class="edge">
<title>Node18&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M305.14,-393.35C327.96,-391.8 357.62,-389.8 383.75,-388.03"/>
<polygon fill="midnightblue" stroke="midnightblue" points="384.2,-391.51 393.94,-387.34 383.73,-384.52 384.2,-391.51"/>
</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/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="389,-412.39 389,-431.39 503,-431.39 503,-412.39 389,-412.39"/>
<text text-anchor="middle" x="446" y="-419.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node20 -->
<g id="edge20" class="edge">
<title>Node18&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M305.14,-401.4C326.52,-404.54 353.9,-408.55 378.75,-412.19"/>
<polygon fill="midnightblue" stroke="midnightblue" points="378.46,-415.68 388.86,-413.67 379.47,-408.75 378.46,-415.68"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="395.5,-450.39 395.5,-469.39 496.5,-469.39 496.5,-450.39 395.5,-450.39"/>
<text text-anchor="middle" x="446" y="-457.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::open</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node21 -->
<g id="edge21" class="edge">
<title>Node18&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M305.23,-401.93C318.5,-404.84 333.26,-409.03 346,-414.89 363.93,-423.14 364.31,-432.14 382,-440.89 386.56,-443.14 391.43,-445.19 396.38,-447.03"/>
<polygon fill="midnightblue" stroke="midnightblue" points="395.31,-450.36 405.91,-450.31 397.59,-443.74 395.31,-450.36"/>
</g>
<!-- Node22&#45;&gt;Node17 -->
<g id="edge27" class="edge">
<title>Node22&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M326.19,-347.25C376.17,-345.12 449.32,-346.35 510,-364.89 527.66,-370.29 545.5,-381.17 558.54,-390.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="556.61,-393.3 566.74,-396.38 560.74,-387.65 556.61,-393.3"/>
</g>
<!-- Node22&#45;&gt;Node19 -->
<g id="edge23" class="edge">
<title>Node22&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M326.11,-362.46C344.69,-365.81 365.26,-369.51 384,-372.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="383.44,-376.35 393.9,-374.68 384.68,-369.46 383.44,-376.35"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/perror.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="415.5,-260.39 415.5,-279.39 476.5,-279.39 476.5,-260.39 415.5,-260.39"/>
<text text-anchor="middle" x="446" y="-267.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::perror</text>
</a>
</g>
</g>
<!-- Node22&#45;&gt;Node23 -->
<g id="edge24" class="edge">
<title>Node22&#45;&gt;Node23</title>
<path fill="none" stroke="midnightblue" d="M315.77,-336.73C326.1,-332.6 336.69,-327.64 346,-321.89 364.46,-310.48 363.14,-299.63 382,-288.89 389.27,-284.75 397.54,-281.43 405.63,-278.79"/>
<polygon fill="midnightblue" stroke="midnightblue" points="406.76,-282.11 415.35,-275.9 404.76,-275.4 406.76,-282.11"/>
</g>
<!-- Node24 -->
<g id="node24" class="node">
<title>Node24</title>
<g id="a_node24"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/pow.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="419,-222.39 419,-241.39 473,-241.39 473,-222.39 419,-222.39"/>
<text text-anchor="middle" x="446" y="-229.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::pow</text>
</a>
</g>
</g>
<!-- Node22&#45;&gt;Node24 -->
<g id="edge25" class="edge">
<title>Node22&#45;&gt;Node24</title>
<path fill="none" stroke="midnightblue" d="M322.84,-336.75C331.21,-332.83 339.28,-327.94 346,-321.89 372.29,-298.21 354.88,-273.61 382,-250.89 389.67,-244.47 399.47,-240.21 409.03,-237.4"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.97,-240.77 418.83,-234.96 408.28,-233.98 409.97,-240.77"/>
</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/io/c/fprintf.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="412,-298.39 412,-317.39 480,-317.39 480,-298.39 412,-298.39"/>
<text text-anchor="middle" x="446" y="-305.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::snprintf</text>
</a>
</g>
</g>
<!-- Node22&#45;&gt;Node25 -->
<g id="edge26" class="edge">
<title>Node22&#45;&gt;Node25</title>
<path fill="none" stroke="midnightblue" d="M326.11,-337.36C350.92,-331.21 379.29,-324.18 402.09,-318.53"/>
<polygon fill="midnightblue" stroke="midnightblue" points="402.96,-321.92 411.82,-316.12 401.27,-315.12 402.96,-321.92"/>
</g>
<!-- Node26&#45;&gt;Node6 -->
<g id="edge29" class="edge">
<title>Node26&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M310.92,-222.59C340.99,-216.16 380.56,-207.69 408.9,-201.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.75,-205.02 418.8,-199.5 408.29,-198.17 409.75,-205.02"/>
</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/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="418.5,-146.39 418.5,-165.39 473.5,-165.39 473.5,-146.39 418.5,-146.39"/>
<text text-anchor="middle" x="446" y="-153.39" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</text>
</a>
</g>
</g>
<!-- Node26&#45;&gt;Node27 -->
<g id="edge30" class="edge">
<title>Node26&#45;&gt;Node27</title>
<path fill="none" stroke="midnightblue" d="M310.75,-226.07C322.71,-223.25 335.32,-219.07 346,-212.89 366.13,-201.23 362.2,-187.1 382,-174.89 390.07,-169.91 399.53,-166.17 408.62,-163.38"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.57,-166.75 418.27,-160.71 407.7,-160 409.57,-166.75"/>
</g>
<!-- Node28&#45;&gt;Node6 -->
<g id="edge32" class="edge">
<title>Node28&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M131.77,-288.94C138.58,-285.95 145.89,-281.7 151,-275.89 182.5,-240.13 148.05,-202.35 187,-174.89 221.77,-150.37 346.38,-172.55 408.81,-185.74"/>
<polygon fill="midnightblue" stroke="midnightblue" points="408.12,-189.17 418.63,-187.85 409.59,-182.32 408.12,-189.17"/>
</g>
<!-- Node28&#45;&gt;Node7 -->
<g id="edge33" class="edge">
<title>Node28&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M131.77,-300.84C138.58,-303.83 145.89,-308.09 151,-313.89 182.5,-349.65 151.58,-383.01 187,-414.89 188.74,-416.45 190.58,-417.89 192.51,-419.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="191.02,-422.4 201.44,-424.34 194.5,-416.33 191.02,-422.4"/>
</g>
<!-- Node28&#45;&gt;Node15 -->
<g id="edge34" class="edge">
<title>Node28&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M131.53,-289.7C138.64,-286.77 146.23,-282.35 151,-275.89 207.23,-199.7 114.6,-126.93 187,-65.89 296.75,26.65 392.39,16.43 510,-65.89 565.81,-104.95 576.31,-194.49 578.17,-234.25"/>
<polygon fill="midnightblue" stroke="midnightblue" points="574.67,-234.38 578.5,-244.26 581.67,-234.15 574.67,-234.38"/>
</g>
<!-- Node28&#45;&gt;Node18 -->
<g id="edge35" class="edge">
<title>Node28&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M131.64,-301.5C138.28,-304.54 145.5,-308.66 151,-313.89 174.37,-336.11 161.22,-357.51 187,-376.89 195.92,-383.6 206.89,-387.97 217.77,-390.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="217.15,-394.26 227.67,-393.02 218.67,-387.43 217.15,-394.26"/>
</g>
<!-- Node28&#45;&gt;Node22 -->
<g id="edge36" class="edge">
<title>Node28&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M131.53,-301.65C152.16,-309.39 186.82,-322.39 215.72,-333.22"/>
<polygon fill="midnightblue" stroke="midnightblue" points="214.68,-336.57 225.27,-336.8 217.14,-330.02 214.68,-336.57"/>
</g>
<!-- Node29 -->
<g id="node29" class="node">
<title>Node29</title>
<g id="a_node29"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#ab3081e021270ba21a9fd88646f6a6e26" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="220,-108.39 220,-127.39 313,-127.39 313,-108.39 220,-108.39"/>
<text text-anchor="middle" x="266.5" y="-115.39" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes1</text>
</a>
</g>
</g>
<!-- Node28&#45;&gt;Node29 -->
<g id="edge37" class="edge">
<title>Node28&#45;&gt;Node29</title>
<path fill="none" stroke="midnightblue" d="M131.63,-289.32C138.58,-286.35 146.03,-282.01 151,-275.89 189.88,-228.02 144.15,-186.24 187,-141.89 193.4,-135.27 201.57,-130.46 210.21,-126.97"/>
<polygon fill="midnightblue" stroke="midnightblue" points="211.41,-130.26 219.71,-123.68 209.12,-123.65 211.41,-130.26"/>
</g>
<!-- Node29&#45;&gt;Node6 -->
<g id="edge38" class="edge">
<title>Node29&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M310.89,-127.41C322.72,-130.99 335.24,-135.74 346,-141.89 364.84,-152.66 363.14,-164.15 382,-174.89 390.31,-179.62 399.93,-183.29 409.1,-186.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="408.23,-189.48 418.8,-188.78 410.1,-182.73 408.23,-189.48"/>
</g>
<!-- Node29&#45;&gt;Node27 -->
<g id="edge39" class="edge">
<title>Node29&#45;&gt;Node27</title>
<path fill="none" stroke="midnightblue" d="M312.29,-127.48C341.98,-133.84 380.45,-142.07 408.32,-148.04"/>
<polygon fill="midnightblue" stroke="midnightblue" points="407.93,-151.53 418.44,-150.2 409.39,-144.69 407.93,-151.53"/>
</g>
<!-- Node30&#45;&gt;Node6 -->
<g id="edge41" class="edge">
<title>Node30&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M131.5,-323.94C137.71,-320.81 144.68,-317.24 151,-313.89 167.17,-305.31 170.04,-300.77 187,-293.89 254.83,-266.36 283.15,-288.42 346,-250.89 365.97,-238.96 362.2,-225.1 382,-212.89 390.21,-207.83 399.86,-204.03 409.11,-201.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="410.17,-204.57 418.89,-198.56 408.33,-197.81 410.17,-204.57"/>
</g>
<!-- Node30&#45;&gt;Node7 -->
<g id="edge42" class="edge">
<title>Node30&#45;&gt;Node7</title>
<path fill="none" stroke="midnightblue" d="M131.64,-339.5C138.28,-342.54 145.5,-346.66 151,-351.89 174.37,-374.11 161.22,-395.51 187,-414.89 189.5,-416.77 192.15,-418.46 194.93,-419.99"/>
<polygon fill="midnightblue" stroke="midnightblue" points="193.57,-423.22 204.1,-424.33 196.56,-416.89 193.57,-423.22"/>
</g>
<!-- Node30&#45;&gt;Node15 -->
<g id="edge43" class="edge">
<title>Node30&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M131.54,-327.71C138.65,-324.78 146.25,-320.36 151,-313.89 208.38,-235.83 113.05,-161.49 187,-98.89 242.16,-52.2 451.79,-94.05 510,-136.89 543.66,-161.66 563.58,-208.35 572.63,-234.64"/>
<polygon fill="midnightblue" stroke="midnightblue" points="569.33,-235.81 575.75,-244.23 575.98,-233.64 569.33,-235.81"/>
</g>
<!-- Node30&#45;&gt;Node18 -->
<g id="edge44" class="edge">
<title>Node30&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M131.7,-341.48C137.92,-344.58 144.86,-348.23 151,-351.89 167.73,-361.87 169.23,-368.91 187,-376.89 196.69,-381.25 207.53,-384.69 217.97,-387.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="217.29,-390.81 227.83,-389.72 218.91,-384 217.29,-390.81"/>
</g>
<!-- Node30&#45;&gt;Node22 -->
<g id="edge45" class="edge">
<title>Node30&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M131.53,-335.14C147.77,-337.17 172.7,-340.29 196.68,-343.29"/>
<polygon fill="midnightblue" stroke="midnightblue" points="196.51,-346.79 206.86,-344.56 197.37,-339.85 196.51,-346.79"/>
</g>
<!-- Node31 -->
<g id="node31" class="node">
<title>Node31</title>
<g id="a_node31"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="220,-184.39 220,-203.39 313,-203.39 313,-184.39 220,-184.39"/>
<text text-anchor="middle" x="266.5" y="-191.39" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes2</text>
</a>
</g>
</g>
<!-- Node30&#45;&gt;Node31 -->
<g id="edge46" class="edge">
<title>Node30&#45;&gt;Node31</title>
<path fill="none" stroke="midnightblue" d="M131.77,-326.94C138.58,-323.95 145.89,-319.7 151,-313.89 182.5,-278.13 151.58,-244.77 187,-212.89 193.59,-206.96 201.71,-202.8 210.2,-199.9"/>
<polygon fill="midnightblue" stroke="midnightblue" points="211.24,-203.24 219.89,-197.13 209.31,-196.51 211.24,-203.24"/>
</g>
<!-- Node31&#45;&gt;Node6 -->
<g id="edge47" class="edge">
<title>Node31&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M313.21,-193.89C342.99,-193.89 381.31,-193.89 408.94,-193.89"/>
<polygon fill="midnightblue" stroke="midnightblue" points="408.97,-197.39 418.97,-193.89 408.97,-190.39 408.97,-197.39"/>
</g>
<!-- Node31&#45;&gt;Node27 -->
<g id="edge48" class="edge">
<title>Node31&#45;&gt;Node27</title>
<path fill="none" stroke="midnightblue" d="M312.29,-184.3C341.98,-177.95 380.45,-169.71 408.32,-163.74"/>
<polygon fill="midnightblue" stroke="midnightblue" points="409.39,-167.09 418.44,-161.58 407.93,-160.25 409.39,-167.09"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -0,0 +1,5 @@
<map id="test_2d_classes" name="test_2d_classes">
<area shape="rect" id="node1" title=" " alt="" coords="5,31,123,57"/>
<area shape="rect" id="node2" href="$d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" title=" " alt="" coords="171,5,243,32"/>
<area shape="rect" id="node3" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="171,56,244,83"/>
</map>

View File

@@ -0,0 +1 @@
3e030538f835f5236201c24a8ade6fc1

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: test_2d_classes Pages: 1 -->
<svg width="187pt" height="66pt"
viewBox="0.00 0.00 187.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>test_2d_classes</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-62 183,-62 183,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 88,-38.5 88,-19.5 0,-19.5"/>
<text text-anchor="middle" x="44" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">test_2d_classes</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="124.5,-38.5 124.5,-57.5 178.5,-57.5 178.5,-38.5 124.5,-38.5"/>
<text text-anchor="middle" x="151.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M88.22,-36.78C96.95,-38.36 106.05,-40 114.51,-41.52"/>
<polygon fill="midnightblue" stroke="midnightblue" points="113.98,-44.98 124.44,-43.31 115.22,-38.09 113.98,-44.98"/>
</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/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="124,-0.5 124,-19.5 179,-19.5 179,-0.5 124,-0.5"/>
<text text-anchor="middle" x="151.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</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="M88.22,-21.22C96.7,-19.69 105.52,-18.1 113.77,-16.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="114.61,-20.02 123.83,-14.8 113.37,-13.13 114.61,-20.02"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,25 @@
<map id="test3" name="test3">
<area shape="rect" id="node1" title=" " alt="" coords="5,153,56,180"/>
<area shape="rect" id="node2" href="$d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" title=" " alt="" coords="413,15,485,41"/>
<area shape="rect" id="node3" href="$d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" title=" " alt="" coords="104,128,316,155"/>
<area shape="rect" id="node11" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/max.html#" title=" " alt="" coords="591,183,664,209"/>
<area shape="rect" id="node14" href="$d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" title=" " alt="" coords="159,259,261,285"/>
<area shape="rect" id="node18" href="$d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" title=" " alt="" coords="131,403,289,445"/>
<area shape="rect" id="node22" href="$d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0" title=" " alt="" coords="148,65,272,92"/>
<area shape="rect" id="node4" href="$d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" title=" " alt="" coords="364,117,535,158"/>
<area shape="rect" id="node5" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/exp.html#" title=" " alt="" coords="593,31,662,57"/>
<area shape="rect" id="node6" href="$d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" title=" " alt="" coords="583,81,672,108"/>
<area shape="rect" id="node12" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min.html#" title=" " alt="" coords="593,132,662,159"/>
<area shape="rect" id="node13" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/sqrt.html#" title=" " alt="" coords="592,335,663,361"/>
<area shape="rect" id="node7" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/begin.html#" title=" " alt="" coords="742,5,821,32"/>
<area shape="rect" id="node8" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/distance.html#" title=" " alt="" coords="733,56,830,83"/>
<area shape="rect" id="node9" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/iterator/end.html#" title=" " alt="" coords="747,107,816,133"/>
<area shape="rect" id="node10" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/algorithm/min_element.html#" title=" " alt="" coords="720,157,843,184"/>
<area shape="rect" id="node15" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/close.html#" title=" " alt="" coords="380,335,519,361"/>
<area shape="rect" id="node16" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/is_open.html#" title=" " alt="" coords="373,284,525,311"/>
<area shape="rect" id="node17" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/basic_ofstream/open.html#" title=" " alt="" coords="382,233,517,260"/>
<area shape="rect" id="node19" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/c/perror.html#" title=" " alt="" coords="409,487,490,513"/>
<area shape="rect" id="node20" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/math/pow.html#" title=" " alt="" coords="413,537,485,564"/>
<area shape="rect" id="node21" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/io/c/fprintf.html#" title=" " alt="" coords="404,385,495,412"/>
<area shape="rect" id="node23" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="413,65,486,92"/>
</map>

View File

@@ -0,0 +1 @@
2dd729dcb1c0d3d338426f92d735d1e9

View File

@@ -0,0 +1,466 @@
<?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: test3 Pages: 1 -->
<!--zoomable 427 -->
<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 = 636;
var viewHeight = 427;
var sectionId = 'dynsection-4';
</script>
<script xlink:href="../../svgpan.js"/>
<svg id="graph" class="graph">
<g id="viewport">
<title>test3</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-423 632,-423 632,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,-288.5 0,-307.5 38,-307.5 38,-288.5 0,-288.5"/>
<text text-anchor="middle" x="19" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">test3</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-392.5 306,-411.5 360,-411.5 360,-392.5 306,-392.5"/>
<text text-anchor="middle" x="333" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M22.94,-307.76C29.06,-326.16 45.04,-365.68 74,-383 143.56,-424.61 243.26,-417 296.04,-408.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="296.64,-412.33 305.95,-407.27 295.51,-405.42 296.64,-412.33"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-307.5 74,-326.5 233,-326.5 233,-307.5 74,-307.5"/>
<text text-anchor="middle" x="153.5" y="-314.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::kohonen_som</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="M38.15,-300.6C48.4,-302.07 61.98,-304.02 76.2,-306.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="75.71,-309.52 86.11,-307.48 76.7,-302.6 75.71,-309.52"/>
</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/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="439,-266.5 439,-285.5 494,-285.5 494,-266.5 439,-266.5"/>
<text text-anchor="middle" x="466.5" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<title>Node1&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M38.02,-297.11C104.64,-293.82 337.93,-282.3 428.84,-277.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="429.13,-281.3 438.95,-277.31 428.79,-274.31 429.13,-281.3"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="115,-209.5 115,-228.5 192,-228.5 192,-209.5 115,-209.5"/>
<text text-anchor="middle" x="153.5" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">save_2d_data</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node14 -->
<g id="edge14" class="edge">
<title>Node1&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M33.55,-288.49C44.34,-281.03 59.93,-270.52 74,-262 90.62,-251.93 109.73,-241.44 124.94,-233.34"/>
<polygon fill="midnightblue" stroke="midnightblue" points="126.64,-236.4 133.84,-228.63 123.37,-230.21 126.64,-236.4"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="94,-90 94,-120 213,-120 213,-90 94,-90"/>
<text text-anchor="start" x="102" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::save</text>
<text text-anchor="middle" x="153.5" y="-97" font-family="Helvetica,sans-Serif" font-size="10.00">_u_matrix</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node1&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M24.51,-288.47C33.14,-270.55 53.03,-230.84 74,-200 91.71,-173.95 115.01,-146.45 131.62,-127.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="134.43,-129.88 138.51,-120.1 129.22,-125.2 134.43,-129.88"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="107,-354.5 107,-373.5 200,-373.5 200,-354.5 107,-354.5"/>
<text text-anchor="middle" x="153.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes2</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node22 -->
<g id="edge24" class="edge">
<title>Node1&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M31.83,-307.75C42.39,-316.09 58.53,-327.99 74,-336 85.24,-341.82 97.97,-346.94 109.85,-351.15"/>
<polygon fill="midnightblue" stroke="midnightblue" points="108.99,-354.55 119.59,-354.46 111.25,-347.92 108.99,-354.55"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="269,-305 269,-335 397,-335 397,-305 269,-305"/>
<text text-anchor="start" x="277" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::update</text>
<text text-anchor="middle" x="333" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">_weights</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M233.13,-318.33C241.63,-318.47 250.26,-318.62 258.7,-318.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="258.82,-322.26 268.88,-318.93 258.94,-315.26 258.82,-322.26"/>
</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/numeric/math/exp.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-380.5 440.5,-399.5 492.5,-399.5 492.5,-380.5 440.5,-380.5"/>
<text text-anchor="middle" x="466.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exp</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M376.35,-335.12C383.38,-338.11 390.5,-341.44 397,-345 414.31,-354.49 416.46,-360.23 433,-371 435.16,-372.4 437.42,-373.83 439.7,-375.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="438.06,-378.32 448.44,-380.44 441.65,-372.31 438.06,-378.32"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="433,-342.5 433,-361.5 500,-361.5 500,-342.5 433,-342.5"/>
<text text-anchor="middle" x="466.5" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00">get_min_2d</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M395.9,-335.06C405.09,-337.3 414.39,-339.56 423.06,-341.67"/>
<polygon fill="midnightblue" stroke="midnightblue" points="422.37,-345.11 432.91,-344.07 424.02,-338.3 422.37,-345.11"/>
</g>
<!-- Node4&#45;&gt;Node11 -->
<g id="edge10" class="edge">
<title>Node4&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M378.89,-304.98C395.24,-299.51 413.52,-293.39 429.06,-288.19"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.45,-291.42 438.82,-284.93 428.23,-284.78 430.45,-291.42"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-304.5 440.5,-323.5 492.5,-323.5 492.5,-304.5 440.5,-304.5"/>
<text text-anchor="middle" x="466.5" y="-311.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node12 -->
<g id="edge11" class="edge">
<title>Node4&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M397.05,-317.12C408.4,-316.61 419.86,-316.08 430.07,-315.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.37,-319.11 440.2,-315.15 430.05,-312.11 430.37,-319.11"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440,-152.5 440,-171.5 493,-171.5 493,-152.5 440,-152.5"/>
<text text-anchor="middle" x="466.5" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sqrt</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node13 -->
<g id="edge12" class="edge">
<title>Node4&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M350.52,-304.88C363.68,-292.52 382.26,-274.32 397,-257 418.63,-231.58 440.68,-199.7 453.73,-180.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="456.78,-181.82 459.36,-171.54 450.94,-177.97 456.78,-181.82"/>
</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/iterator/begin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="552.5,-399.5 552.5,-418.5 611.5,-418.5 611.5,-399.5 552.5,-399.5"/>
<text text-anchor="middle" x="582" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::begin</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="M483.57,-361.56C497.29,-369.56 517.66,-381.07 536,-390 539.77,-391.84 543.77,-393.67 547.76,-395.44"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-398.66 556.97,-399.41 549.17,-392.24 546.4,-398.66"/>
</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/iterator/distance.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="545.5,-361.5 545.5,-380.5 618.5,-380.5 618.5,-361.5 545.5,-361.5"/>
<text text-anchor="middle" x="582" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::distance</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="M500.02,-357.44C510.97,-359.28 523.39,-361.36 535.16,-363.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="534.85,-366.82 545.29,-365.02 536,-359.92 534.85,-366.82"/>
</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/iterator/end.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="556,-323.5 556,-342.5 608,-342.5 608,-323.5 556,-323.5"/>
<text text-anchor="middle" x="582" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::end</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M500.02,-346.56C514.26,-344.17 530.99,-341.37 545.54,-338.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-342.34 555.68,-337.24 545.24,-335.44 546.4,-342.34"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min_element.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="536,-285.5 536,-304.5 628,-304.5 628,-285.5 536,-285.5"/>
<text text-anchor="middle" x="582" y="-292.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min_element</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node6&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M483.57,-342.44C497.29,-334.44 517.66,-322.93 536,-314 539.77,-312.16 543.77,-310.33 547.76,-308.56"/>
<polygon fill="midnightblue" stroke="midnightblue" points="549.17,-311.76 556.97,-304.59 546.4,-305.34 549.17,-311.76"/>
</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/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="281,-152.5 281,-171.5 385,-171.5 385,-152.5 281,-152.5"/>
<text text-anchor="middle" x="333" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</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="M182.66,-209.41C205.8,-201.6 239.45,-190.36 269,-181 275.66,-178.89 282.73,-176.71 289.64,-174.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="291.02,-177.84 299.57,-171.59 288.99,-171.14 291.02,-177.84"/>
</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/io/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="276,-190.5 276,-209.5 390,-209.5 390,-190.5 276,-190.5"/>
<text text-anchor="middle" x="333" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node16 -->
<g id="edge16" class="edge">
<title>Node14&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M192.14,-214.97C213.52,-212.68 240.9,-209.75 265.75,-207.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="266.29,-210.55 275.86,-206.01 265.54,-203.59 266.29,-210.55"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="282.5,-228.5 282.5,-247.5 383.5,-247.5 383.5,-228.5 282.5,-228.5"/>
<text text-anchor="middle" x="333" y="-235.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node17 -->
<g id="edge17" class="edge">
<title>Node14&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M192.14,-223.03C215.42,-225.52 245.82,-228.78 272.33,-231.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="271.96,-235.09 282.28,-232.68 272.71,-228.13 271.96,-235.09"/>
</g>
<!-- Node18&#45;&gt;Node13 -->
<g id="edge23" class="edge">
<title>Node18&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M213.25,-94.09C263.59,-87.26 337.22,-83.38 397,-105 418.69,-112.84 438.34,-130.88 450.98,-144.58"/>
<polygon fill="midnightblue" stroke="midnightblue" points="448.66,-147.23 457.9,-152.42 453.91,-142.6 448.66,-147.23"/>
</g>
<!-- Node18&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<title>Node18&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M199,-120.08C220.16,-127.18 245.84,-135.67 269,-143 275.66,-145.11 282.73,-147.29 289.64,-149.4"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.99,-152.86 299.57,-152.41 291.02,-146.16 288.99,-152.86"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/perror.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="302.5,-38.5 302.5,-57.5 363.5,-57.5 363.5,-38.5 302.5,-38.5"/>
<text text-anchor="middle" x="333" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::perror</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node19 -->
<g id="edge20" class="edge">
<title>Node18&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M201.6,-89.87C229.92,-80.78 265.57,-69.33 292.43,-60.71"/>
<polygon fill="midnightblue" stroke="midnightblue" points="293.81,-63.94 302.26,-57.55 291.67,-57.28 293.81,-63.94"/>
</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/numeric/math/pow.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-0.5 306,-19.5 360,-19.5 360,-0.5 306,-0.5"/>
<text text-anchor="middle" x="333" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::pow</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node20 -->
<g id="edge21" class="edge">
<title>Node18&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M173.32,-89.98C195.2,-73.13 232.94,-45.95 269,-29 277.49,-25.01 287.01,-21.62 296.03,-18.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="297.28,-22.15 305.92,-16.02 295.35,-15.42 297.28,-22.15"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/fprintf.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="299,-114.5 299,-133.5 367,-133.5 367,-114.5 299,-114.5"/>
<text text-anchor="middle" x="333" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::snprintf</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node21 -->
<g id="edge22" class="edge">
<title>Node18&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M213.11,-111.27C237.81,-113.92 266.03,-116.94 288.78,-119.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.5,-122.86 298.82,-120.45 289.25,-115.9 288.5,-122.86"/>
</g>
<!-- Node22&#45;&gt;Node2 -->
<g id="edge25" class="edge">
<title>Node22&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M199.29,-373.59C229.16,-379.98 267.92,-388.28 295.83,-394.26"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.44,-397.75 305.95,-396.42 296.91,-390.91 295.44,-397.75"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="305.5,-354.5 305.5,-373.5 360.5,-373.5 360.5,-354.5 305.5,-354.5"/>
<text text-anchor="middle" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</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="M200.21,-364C229.81,-364 267.84,-364 295.44,-364"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.46,-367.5 305.46,-364 295.46,-360.5 295.46,-367.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="kohonen__som__topology_8cpp_a6d0455dd5c30adda100e95f0423c786e_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: 24 KiB

View File

@@ -0,0 +1,378 @@
<?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: test3 Pages: 1 -->
<svg width="636pt" height="427pt"
viewBox="0.00 0.00 636.00 427.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 423)">
<title>test3</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-423 632,-423 632,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,-288.5 0,-307.5 38,-307.5 38,-288.5 0,-288.5"/>
<text text-anchor="middle" x="19" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">test3</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-392.5 306,-411.5 360,-411.5 360,-392.5 306,-392.5"/>
<text text-anchor="middle" x="333" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M22.94,-307.76C29.06,-326.16 45.04,-365.68 74,-383 143.56,-424.61 243.26,-417 296.04,-408.88"/>
<polygon fill="midnightblue" stroke="midnightblue" points="296.64,-412.33 305.95,-407.27 295.51,-405.42 296.64,-412.33"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="../../d8/d77/namespacemachine__learning.html#adc731720947b4bc2ab047c141e7d0299" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="74,-307.5 74,-326.5 233,-326.5 233,-307.5 74,-307.5"/>
<text text-anchor="middle" x="153.5" y="-314.5" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::kohonen_som</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="M38.15,-300.6C48.4,-302.07 61.98,-304.02 76.2,-306.06"/>
<polygon fill="midnightblue" stroke="midnightblue" points="75.71,-309.52 86.11,-307.48 76.7,-302.6 75.71,-309.52"/>
</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/algorithm/max.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="439,-266.5 439,-285.5 494,-285.5 494,-266.5 439,-266.5"/>
<text text-anchor="middle" x="466.5" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::max</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node11 -->
<g id="edge13" class="edge">
<title>Node1&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M38.02,-297.11C104.64,-293.82 337.93,-282.3 428.84,-277.81"/>
<polygon fill="midnightblue" stroke="midnightblue" points="429.13,-281.3 438.95,-277.31 428.79,-274.31 429.13,-281.3"/>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="../../d9/d66/group__machine__learning.html#ga6c606bc85a3e9fd9d010f874ad760336" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="115,-209.5 115,-228.5 192,-228.5 192,-209.5 115,-209.5"/>
<text text-anchor="middle" x="153.5" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">save_2d_data</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node14 -->
<g id="edge14" class="edge">
<title>Node1&#45;&gt;Node14</title>
<path fill="none" stroke="midnightblue" d="M33.55,-288.49C44.34,-281.03 59.93,-270.52 74,-262 90.62,-251.93 109.73,-241.44 124.94,-233.34"/>
<polygon fill="midnightblue" stroke="midnightblue" points="126.64,-236.4 133.84,-228.63 123.37,-230.21 126.64,-236.4"/>
</g>
<!-- Node18 -->
<g id="node18" class="node">
<title>Node18</title>
<g id="a_node18"><a xlink:href="../../d8/d77/namespacemachine__learning.html#a1d577f5d95b774ae97eb6838852d0df5" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="94,-90 94,-120 213,-120 213,-90 94,-90"/>
<text text-anchor="start" x="102" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::save</text>
<text text-anchor="middle" x="153.5" y="-97" font-family="Helvetica,sans-Serif" font-size="10.00">_u_matrix</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node18 -->
<g id="edge18" class="edge">
<title>Node1&#45;&gt;Node18</title>
<path fill="none" stroke="midnightblue" d="M24.51,-288.47C33.14,-270.55 53.03,-230.84 74,-200 91.71,-173.95 115.01,-146.45 131.62,-127.77"/>
<polygon fill="midnightblue" stroke="midnightblue" points="134.43,-129.88 138.51,-120.1 129.22,-125.2 134.43,-129.88"/>
</g>
<!-- Node22 -->
<g id="node22" class="node">
<title>Node22</title>
<g id="a_node22"><a xlink:href="../../d4/def/kohonen__som__topology_8cpp.html#a0e7435446ed7c763f7de79a468add2e0" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="107,-354.5 107,-373.5 200,-373.5 200,-354.5 107,-354.5"/>
<text text-anchor="middle" x="153.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes2</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node22 -->
<g id="edge24" class="edge">
<title>Node1&#45;&gt;Node22</title>
<path fill="none" stroke="midnightblue" d="M31.83,-307.75C42.39,-316.09 58.53,-327.99 74,-336 85.24,-341.82 97.97,-346.94 109.85,-351.15"/>
<polygon fill="midnightblue" stroke="midnightblue" points="108.99,-354.55 119.59,-354.46 111.25,-347.92 108.99,-354.55"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="../../d8/d77/namespacemachine__learning.html#ac4010fe3a52a74e8b5b1aaadfe38b46f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="269,-305 269,-335 397,-335 397,-305 269,-305"/>
<text text-anchor="start" x="277" y="-323" font-family="Helvetica,sans-Serif" font-size="10.00">machine_learning::update</text>
<text text-anchor="middle" x="333" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">_weights</text>
</a>
</g>
</g>
<!-- Node3&#45;&gt;Node4 -->
<g id="edge3" class="edge">
<title>Node3&#45;&gt;Node4</title>
<path fill="none" stroke="midnightblue" d="M233.13,-318.33C241.63,-318.47 250.26,-318.62 258.7,-318.76"/>
<polygon fill="midnightblue" stroke="midnightblue" points="258.82,-322.26 268.88,-318.93 258.94,-315.26 258.82,-322.26"/>
</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/numeric/math/exp.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-380.5 440.5,-399.5 492.5,-399.5 492.5,-380.5 440.5,-380.5"/>
<text text-anchor="middle" x="466.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::exp</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node5 -->
<g id="edge4" class="edge">
<title>Node4&#45;&gt;Node5</title>
<path fill="none" stroke="midnightblue" d="M376.35,-335.12C383.38,-338.11 390.5,-341.44 397,-345 414.31,-354.49 416.46,-360.23 433,-371 435.16,-372.4 437.42,-373.83 439.7,-375.23"/>
<polygon fill="midnightblue" stroke="midnightblue" points="438.06,-378.32 448.44,-380.44 441.65,-372.31 438.06,-378.32"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="../../d9/d66/group__machine__learning.html#gab53c14440b2b2dd3172c66afc5c2f63f" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="433,-342.5 433,-361.5 500,-361.5 500,-342.5 433,-342.5"/>
<text text-anchor="middle" x="466.5" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00">get_min_2d</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node6 -->
<g id="edge5" class="edge">
<title>Node4&#45;&gt;Node6</title>
<path fill="none" stroke="midnightblue" d="M395.9,-335.06C405.09,-337.3 414.39,-339.56 423.06,-341.67"/>
<polygon fill="midnightblue" stroke="midnightblue" points="422.37,-345.11 432.91,-344.07 424.02,-338.3 422.37,-345.11"/>
</g>
<!-- Node4&#45;&gt;Node11 -->
<g id="edge10" class="edge">
<title>Node4&#45;&gt;Node11</title>
<path fill="none" stroke="midnightblue" d="M378.89,-304.98C395.24,-299.51 413.52,-293.39 429.06,-288.19"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.45,-291.42 438.82,-284.93 428.23,-284.78 430.45,-291.42"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440.5,-304.5 440.5,-323.5 492.5,-323.5 492.5,-304.5 440.5,-304.5"/>
<text text-anchor="middle" x="466.5" y="-311.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node12 -->
<g id="edge11" class="edge">
<title>Node4&#45;&gt;Node12</title>
<path fill="none" stroke="midnightblue" d="M397.05,-317.12C408.4,-316.61 419.86,-316.08 430.07,-315.62"/>
<polygon fill="midnightblue" stroke="midnightblue" points="430.37,-319.11 440.2,-315.15 430.05,-312.11 430.37,-319.11"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/math/sqrt.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="440,-152.5 440,-171.5 493,-171.5 493,-152.5 440,-152.5"/>
<text text-anchor="middle" x="466.5" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::sqrt</text>
</a>
</g>
</g>
<!-- Node4&#45;&gt;Node13 -->
<g id="edge12" class="edge">
<title>Node4&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M350.52,-304.88C363.68,-292.52 382.26,-274.32 397,-257 418.63,-231.58 440.68,-199.7 453.73,-180.1"/>
<polygon fill="midnightblue" stroke="midnightblue" points="456.78,-181.82 459.36,-171.54 450.94,-177.97 456.78,-181.82"/>
</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/iterator/begin.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="552.5,-399.5 552.5,-418.5 611.5,-418.5 611.5,-399.5 552.5,-399.5"/>
<text text-anchor="middle" x="582" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::begin</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="M483.57,-361.56C497.29,-369.56 517.66,-381.07 536,-390 539.77,-391.84 543.77,-393.67 547.76,-395.44"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-398.66 556.97,-399.41 549.17,-392.24 546.4,-398.66"/>
</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/iterator/distance.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="545.5,-361.5 545.5,-380.5 618.5,-380.5 618.5,-361.5 545.5,-361.5"/>
<text text-anchor="middle" x="582" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::distance</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="M500.02,-357.44C510.97,-359.28 523.39,-361.36 535.16,-363.33"/>
<polygon fill="midnightblue" stroke="midnightblue" points="534.85,-366.82 545.29,-365.02 536,-359.92 534.85,-366.82"/>
</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/iterator/end.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="556,-323.5 556,-342.5 608,-342.5 608,-323.5 556,-323.5"/>
<text text-anchor="middle" x="582" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::end</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node6&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M500.02,-346.56C514.26,-344.17 530.99,-341.37 545.54,-338.94"/>
<polygon fill="midnightblue" stroke="midnightblue" points="546.4,-342.34 555.68,-337.24 545.24,-335.44 546.4,-342.34"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/algorithm/min_element.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="536,-285.5 536,-304.5 628,-304.5 628,-285.5 536,-285.5"/>
<text text-anchor="middle" x="582" y="-292.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::min_element</text>
</a>
</g>
</g>
<!-- Node6&#45;&gt;Node10 -->
<g id="edge9" class="edge">
<title>Node6&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M483.57,-342.44C497.29,-334.44 517.66,-322.93 536,-314 539.77,-312.16 543.77,-310.33 547.76,-308.56"/>
<polygon fill="midnightblue" stroke="midnightblue" points="549.17,-311.76 556.97,-304.59 546.4,-305.34 549.17,-311.76"/>
</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/io/basic_ofstream/close.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="281,-152.5 281,-171.5 385,-171.5 385,-152.5 281,-152.5"/>
<text text-anchor="middle" x="333" y="-159.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::close</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="M182.66,-209.41C205.8,-201.6 239.45,-190.36 269,-181 275.66,-178.89 282.73,-176.71 289.64,-174.6"/>
<polygon fill="midnightblue" stroke="midnightblue" points="291.02,-177.84 299.57,-171.59 288.99,-171.14 291.02,-177.84"/>
</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/io/basic_ofstream/is_open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="276,-190.5 276,-209.5 390,-209.5 390,-190.5 276,-190.5"/>
<text text-anchor="middle" x="333" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::is_open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node16 -->
<g id="edge16" class="edge">
<title>Node14&#45;&gt;Node16</title>
<path fill="none" stroke="midnightblue" d="M192.14,-214.97C213.52,-212.68 240.9,-209.75 265.75,-207.09"/>
<polygon fill="midnightblue" stroke="midnightblue" points="266.29,-210.55 275.86,-206.01 265.54,-203.59 266.29,-210.55"/>
</g>
<!-- Node17 -->
<g id="node17" class="node">
<title>Node17</title>
<g id="a_node17"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="282.5,-228.5 282.5,-247.5 383.5,-247.5 383.5,-228.5 282.5,-228.5"/>
<text text-anchor="middle" x="333" y="-235.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::ofstream::open</text>
</a>
</g>
</g>
<!-- Node14&#45;&gt;Node17 -->
<g id="edge17" class="edge">
<title>Node14&#45;&gt;Node17</title>
<path fill="none" stroke="midnightblue" d="M192.14,-223.03C215.42,-225.52 245.82,-228.78 272.33,-231.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="271.96,-235.09 282.28,-232.68 272.71,-228.13 271.96,-235.09"/>
</g>
<!-- Node18&#45;&gt;Node13 -->
<g id="edge23" class="edge">
<title>Node18&#45;&gt;Node13</title>
<path fill="none" stroke="midnightblue" d="M213.25,-94.09C263.59,-87.26 337.22,-83.38 397,-105 418.69,-112.84 438.34,-130.88 450.98,-144.58"/>
<polygon fill="midnightblue" stroke="midnightblue" points="448.66,-147.23 457.9,-152.42 453.91,-142.6 448.66,-147.23"/>
</g>
<!-- Node18&#45;&gt;Node15 -->
<g id="edge19" class="edge">
<title>Node18&#45;&gt;Node15</title>
<path fill="none" stroke="midnightblue" d="M199,-120.08C220.16,-127.18 245.84,-135.67 269,-143 275.66,-145.11 282.73,-147.29 289.64,-149.4"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.99,-152.86 299.57,-152.41 291.02,-146.16 288.99,-152.86"/>
</g>
<!-- Node19 -->
<g id="node19" class="node">
<title>Node19</title>
<g id="a_node19"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/perror.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="302.5,-38.5 302.5,-57.5 363.5,-57.5 363.5,-38.5 302.5,-38.5"/>
<text text-anchor="middle" x="333" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::perror</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node19 -->
<g id="edge20" class="edge">
<title>Node18&#45;&gt;Node19</title>
<path fill="none" stroke="midnightblue" d="M201.6,-89.87C229.92,-80.78 265.57,-69.33 292.43,-60.71"/>
<polygon fill="midnightblue" stroke="midnightblue" points="293.81,-63.94 302.26,-57.55 291.67,-57.28 293.81,-63.94"/>
</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/numeric/math/pow.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="306,-0.5 306,-19.5 360,-19.5 360,-0.5 306,-0.5"/>
<text text-anchor="middle" x="333" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::pow</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node20 -->
<g id="edge21" class="edge">
<title>Node18&#45;&gt;Node20</title>
<path fill="none" stroke="midnightblue" d="M173.32,-89.98C195.2,-73.13 232.94,-45.95 269,-29 277.49,-25.01 287.01,-21.62 296.03,-18.87"/>
<polygon fill="midnightblue" stroke="midnightblue" points="297.28,-22.15 305.92,-16.02 295.35,-15.42 297.28,-22.15"/>
</g>
<!-- Node21 -->
<g id="node21" class="node">
<title>Node21</title>
<g id="a_node21"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/io/c/fprintf.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="299,-114.5 299,-133.5 367,-133.5 367,-114.5 299,-114.5"/>
<text text-anchor="middle" x="333" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::snprintf</text>
</a>
</g>
</g>
<!-- Node18&#45;&gt;Node21 -->
<g id="edge22" class="edge">
<title>Node18&#45;&gt;Node21</title>
<path fill="none" stroke="midnightblue" d="M213.11,-111.27C237.81,-113.92 266.03,-116.94 288.78,-119.37"/>
<polygon fill="midnightblue" stroke="midnightblue" points="288.5,-122.86 298.82,-120.45 289.25,-115.9 288.5,-122.86"/>
</g>
<!-- Node22&#45;&gt;Node2 -->
<g id="edge25" class="edge">
<title>Node22&#45;&gt;Node2</title>
<path fill="none" stroke="midnightblue" d="M199.29,-373.59C229.16,-379.98 267.92,-388.28 295.83,-394.26"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.44,-397.75 305.95,-396.42 296.91,-390.91 295.44,-397.75"/>
</g>
<!-- Node23 -->
<g id="node23" class="node">
<title>Node23</title>
<g id="a_node23"><a target="_blank" xlink:href="http://en.cppreference.com/w/cpp/numeric/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="305.5,-354.5 305.5,-373.5 360.5,-373.5 360.5,-354.5 305.5,-354.5"/>
<text text-anchor="middle" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</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="M200.21,-364C229.81,-364 267.84,-364 295.44,-364"/>
<polygon fill="midnightblue" stroke="midnightblue" points="295.46,-367.5 305.46,-364 295.46,-360.5 295.46,-367.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,5 @@
<map id="test_3d_classes1" name="test_3d_classes1">
<area shape="rect" id="node1" title=" " alt="" coords="5,31,129,57"/>
<area shape="rect" id="node2" href="$d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" title=" " alt="" coords="178,5,250,32"/>
<area shape="rect" id="node3" href="/Users/runner/runners/2.263.0/work/C-Plus-Plus/C-Plus-Plus/doc/cppreference-doxygen-web.tag.xml$cpp/numeric/random/rand.html#" title=" " alt="" coords="177,56,251,83"/>
</map>

View File

@@ -0,0 +1 @@
246e70d9ccd7a6bbfdd3e197979233e9

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: test_3d_classes1 Pages: 1 -->
<svg width="192pt" height="66pt"
viewBox="0.00 0.00 192.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>test_3d_classes1</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-62 188,-62 188,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 93,-38.5 93,-19.5 0,-19.5"/>
<text text-anchor="middle" x="46.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00">test_3d_classes1</text>
</a>
</g>
</g>
<!-- Node2 -->
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="../../d9/d66/group__machine__learning.html#gaf5ce14f026d6d231bef29161bac2b485" target="_top" xlink:title=" ">
<polygon fill="white" stroke="black" points="129.5,-38.5 129.5,-57.5 183.5,-57.5 183.5,-38.5 129.5,-38.5"/>
<text text-anchor="middle" x="156.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">_random</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="M93.3,-37.06C101.95,-38.58 110.89,-40.15 119.2,-41.61"/>
<polygon fill="midnightblue" stroke="midnightblue" points="118.86,-45.11 129.32,-43.39 120.08,-38.21 118.86,-45.11"/>
</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/random/rand.html#" xlink:title=" ">
<polygon fill="white" stroke="black" points="129,-0.5 129,-19.5 184,-19.5 184,-0.5 129,-0.5"/>
<text text-anchor="middle" x="156.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">std::rand</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="M93.3,-20.94C101.79,-19.45 110.56,-17.91 118.73,-16.47"/>
<polygon fill="midnightblue" stroke="midnightblue" points="119.47,-19.89 128.71,-14.71 118.25,-13 119.47,-19.89"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB